C#中結(jié)構(gòu)(struct)的部分初始化和完全初始化實(shí)例分析
本文實(shí)例分析了C#中結(jié)構(gòu)(struct)的部分初始化和完全初始化,分享給大家供大家參考。具體分析如下:
假設(shè)有這樣一個(gè)值類型struct,如下所示:
public struct Size { public int Length; public int Width; public int Area() { return Length*Width; } }
一、客戶端,給所有struct字段初始化后調(diào)用方法
class Program { static void Main(string[] args) { Size size; size.Length = 10; size.Width = 5; Console.WriteLine(size.Area()); Console.ReadKey(); } }
結(jié)果:50
二、客戶端,給部分struct字段初始化
class Program { static void Main(string[] args) { Size size; size.Length = 10; Console.WriteLine(size.Area()); Console.ReadKey(); } }
結(jié)果:報(bào)錯(cuò),使用了未賦值的局部變量。
可見:如果想調(diào)用struct實(shí)例的任何方法,需要給struct的所有字段初始化。
三、客戶端,通過構(gòu)造函數(shù)初始化struct
class Program { static void Main(string[] args) { Size size = new Size(); Console.WriteLine(size.Area()); Console.ReadKey(); } }
結(jié)果:0
在這里:通過struct構(gòu)造函數(shù)創(chuàng)建實(shí)例,實(shí)際上是給struct的所有字段賦上了初值0。
總結(jié):
在調(diào)用struct實(shí)例方法之前,必須給struct的所有字段賦上初值,即要求完全初始化,部分初始化是不允許的。要么通過"struct實(shí)例.字段名"給所有字段顯式賦值,要么通過struct構(gòu)造函數(shù),給所有字段賦上默認(rèn)值。
希望本文所述分析對大家C#程序設(shè)計(jì)的學(xué)習(xí)有所幫助。
- C#調(diào)用C類型dll入?yún)閟truct的問題詳解
- C#使用struct直接轉(zhuǎn)換下位機(jī)數(shù)據(jù)的示例代碼
- C#中的只讀結(jié)構(gòu)體(readonly struct)詳解
- 區(qū)分C# 中的 Struct 和 Class
- 淺析C# 結(jié)構(gòu)體struct
- C#如何從byte[]中直接讀取Structure實(shí)例詳解
- 深入解析C#編程中struct所定義的結(jié)構(gòu)
- C#中struct和class的區(qū)別詳解
- C# Struct的內(nèi)存布局問題解答
- 深入探討C#中的結(jié)構(gòu)struct
- c# Struct的一些問題分析
相關(guān)文章
C#實(shí)現(xiàn)簡單的3DES加密解密功能示例
這篇文章主要介紹了C#實(shí)現(xiàn)簡單的3DES加密解密功能,結(jié)合實(shí)例形式分析了C#實(shí)現(xiàn)3DES加密解密的定義、使用等具體步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-08-08C#科學(xué)繪圖之使用scottPlot繪制多個(gè)圖像
ScottPlot是基于.Net的一款開源免費(fèi)的交互式可視化庫,支持Winform和WPF等UI框架,本文主要為大家詳細(xì)介紹了如何使用scottPlot實(shí)現(xiàn)繪制多個(gè)圖像,需要的可以參考下2023-12-12總結(jié)C#動(dòng)態(tài)調(diào)用WCF接口的兩種方法
這篇文章給大家總結(jié)了C#動(dòng)態(tài)調(diào)用WCF接口的兩種方法,大家可以根據(jù)自己的需求選擇對應(yīng)的方式,下面來一起看看。2016-09-09Unity實(shí)現(xiàn)簡單換裝系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)簡單換裝系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04C#動(dòng)態(tài)生成DropDownList執(zhí)行失敗原因分析
這篇文章主要介紹了C#動(dòng)態(tài)生成DropDownList執(zhí)行失敗原因分析,以一個(gè)實(shí)例形式分析了C#動(dòng)態(tài)生成DropDownList的相關(guān)注意要點(diǎn)與使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03