C#中的結(jié)構(gòu)體要使用new來實例化嗎?還是直接聲明后直接使用?
3 回答

慕標5832272
TA貢獻1966條經(jīng)驗 獲得超4個贊
聲明結(jié)構(gòu)的默認(無參數(shù))構(gòu)造函數(shù)是錯誤的。總是提供默認構(gòu)造函數(shù)以將結(jié)構(gòu)成員初始化為它們的默認值。在結(jié)構(gòu)中初始化實例字段也是錯誤的。
如果使用 new 運算符創(chuàng)建結(jié)構(gòu)對象,則會創(chuàng)建該結(jié)構(gòu)對象,并調(diào)用適當?shù)臉?gòu)造函數(shù)。與類不同,結(jié)構(gòu)的實例化可以不使用 new 運算符。如果不使用 new,則在初始化所有字段之前,字段都保持未賦值狀態(tài)且對象不可用。

慕運維8079593
TA貢獻1876條經(jīng)驗 獲得超5個贊
結(jié)構(gòu)無需進行new,就可以直接使用
比如:
MyStruct struct;
struct.Method();
對于類的話,這是錯誤的
原因如下:
結(jié)構(gòu)為值類型,而new用于為引用類型(類、對象、接口等)分配引用(內(nèi)存地址),值類型存儲于堆中,無需使用new。
比如:
int x;和MyStruct struct;
是一樣的道理
這的x、struct都是值類型的
最后結(jié)構(gòu)可以用new 也可以不用new
- 3 回答
- 0 關(guān)注
- 1635 瀏覽
添加回答
舉報
0/150
提交
取消