struct的创建
本文實例分析了C#中結構(struct)的部分初始化和完全初始化,分享給大家供大家參考。具體分析如下:
假設有這樣一個值類型struct,如下所示:
?| 1 2 3 4 5 6 7 8 9 | public struct Size { ????public int Length; ????public int Width; ????public int Area() ????{ ??????return Length*Width; ????} } | 
一、客戶端,給所有struct字段初始化后調用方法
?| 1 2 3 4 5 6 7 8 9 10 11 | class Program { ????static void Main(string[] args) ????{ ??????Size size; ??????size.Length = 10; ??????size.Width = 5; ??????Console.WriteLine(size.Area()); ??????Console.ReadKey(); ????} } | 
結果:50
二、客戶端,給部分struct字段初始化
?| 1 2 3 4 5 6 7 8 9 10 | class Program { ????static void Main(string[] args) ????{ ??????Size size; ??????size.Length = 10; ??????Console.WriteLine(size.Area()); ??????Console.ReadKey(); ????} } | 
結果:報錯,使用了未賦值的局部變量。? 
 可見:如果想調用struct實例的任何方法,需要給struct的所有字段初始化。
三、客戶端,通過構造函數初始化struct
?| 1 2 3 4 5 6 7 8 9 | class Program { ????static void Main(string[] args) ????{ ??????Size size = new Size(); ??????Console.WriteLine(size.Area()); ??????Console.ReadKey(); ????} } | 
結果:0
 在這里:通過struct構造函數創建實例,實際上是給struct的所有字段賦上了初值0。
總結:
在調用struct實例方法之前,必須給struct的所有字段賦上初值,即要求完全初始化,部分初始化是不允許的。要么通過"struct實例.字段名"給所有字段顯式賦值,要么通過struct構造函數,給所有字段賦上默認值。
希望本文所述分析對大家C#程序設計的學習有所幫助。
總結