日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 结构体

發布時間:2025/3/18 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 结构体 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C# 結構體

1,結構體不能出現在繼承關系中,除了繼承接口。

  結構體不能繼承類或結構,也不能被類或結構繼承,只可以繼承接口

2,struct不能定義默認構造函數(無參構造函數),也不能定義析構函數。class對這兩點都無限制。

3,如果struct提供了帶參構造函數,則它的所有字段(變量)都必須在構造函數中初始化,否則編譯報錯。class對此無限制。

4,成員默認修飾符都是private,在C++中則默認為public

5,結構體成員變量不能在聲明時初始化,即不能帶有初始值。class對此無限制

using System; delegate string DTE(int x, string s);class MYTestX {struct ST{//public int x = 3; //錯誤,不能在結構體中這樣初始化變量 public int x;public int y;//結構體有默認構造函數,我們不能定義它//ST()//錯誤,結構體不能有無參構造函數//{//}//若定義了有參構造函數,則必須在此初始化全部成員變量 ST(int x, int y){this.x = x;this.y = y;}}class CTEST{}static void Main(string[] args){ST ot = new ST(); //調用默認構造函數,將所有成員置為默認值 int x = ot.x;Console.WriteLine(x);ST otx;//在棧上為結構體otx分配空間,大小為兩個int(若有其它類型注意字節對齊問題) otx.x = 20;//c#中,任何未初始化的值或類型都不能被使用,其值是未知的 int yt;string s0;CTEST otest;//在棧上為otest變量本身分配4或8字節內存(相當于C++的指針),32位機是4字節,64位機是8字節
            //此時并未給otest在堆上分配內存,只有等到new CTEST()時才分配堆內存 Console.WriteLine(otx.x);
//編譯錯誤otx.x = 2; //可以,這是賦值操作Console.WriteLine(yt);//編譯錯誤Console.WriteLine(s0);//編譯錯誤Console.WriteLine(otest);//編譯錯誤 }}

?

?

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

posted on 2016-10-02 11:47 時空觀察者9號 閱讀(...) 評論(...) 編輯 收藏

總結

以上是生活随笔為你收集整理的C# 结构体的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。