C# 結構體 struct 的基本知識


結構就是幾個數據組成的數據結構,它與類共享幾乎所有相同的語法,但結構比類受到的限制更多

結構是一種值的類型,通常用來封裝一組相關的變量,結構中可以包括構造函數、常量、字段、方法、屬性、運算符、事件和嵌套類型等。但如果要同時包括上述幾種成員,則應該考慮使用類。結構實際是將多個相關的變量包裝成為一個整體使用。在結構體中的變量,可以是相同、部分相同,或完全不同的數據類型。例如,把公司里的職員看作一個結構體,可以將個人信息放入結構體中,主要包含姓名、年齡、出生年月、性別、籍貫、婚否、職務。

在 C# 中的結構與傳統的 C 或 C++ 中的結構不同。結構具有以下特點:

  • 結構是的類型。
  • 向方法傳遞結構時,結構是通過傳值方式傳遞的,而不是作為引用傳遞的。
  • 結構的實例化可以不使用new運算符。結構可以聲明構造函數,但它們必須帶參數。當您使用 New 操作符創建一個結構對象時,會調用適當的構造函數來創建結構。
  • 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被賦值,對象才被使用。
  • 一個結構不能從另一個結構或類繼承。所有結構都直接繼承自System.ValueType,后者繼承自System.Object
  • 結構可以實現接口。接口可實現一個或多個接口。
  • 在結構中初始化實例字段是錯誤的。// 不能在結構中初始化字段。
  • 結構成員不能指定為 abstractvirtualprotected

說明:

在結構聲明中,除非字段被聲明為const或static,否則無法初始化。

實例:

class Program
{
    public struct Rect//定義一個矩形結構
    {
        public double width;//矩形的寬
        public double height;//矩形的高
        
        public Rect(double x, double y)
        {
            width = x;
            height = y;
        }
       
        public double Area()
        {
            return width * height;
        }
    }
    static void Main(string[] args)
    {
        Rect rect1;//創建矩形結構
        rect1.width = 5;//為矩形寬賦值
        rect1.height = 3;//為矩形高賦值
        Console.WriteLine("矩形面積為:" + rect1.Area());
        Rect rect2 = new Rect(6, 4);//使用構造函數實例化矩形結構
        Console.WriteLine("矩形面積為:" + rect2.Area());
    }

}

輸出:

矩形面積為:15
矩形面積為:24
請按任意鍵繼續. . .

結構有以下幾個基本的不同點:

  • 類是引用類型,結構是值類型。
  • 結構不支持繼承。
  • 結構不能聲明默認的構造函數。


參考:

  1. link-01 // 菜鳥教程
  2. 《C# 入門到精通》 -> P142


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM