C#結構體構造函數(shù)的實例簡析
C#結構體構造函數(shù)的應用是如何的呢?
C#結構體構造函數(shù)的實例1、
- /// ﹤summary﹥
- /// 啟動服務端的參數(shù)結構
- /// ﹤/summary﹥
- public struct SERVER_VIDEOINFO
- {
- /// ﹤summary﹥
- /// 通道數(shù)據(jù)類型,是否支持電話線連接
- /// ﹤/summary﹥
- byte[] m_datatype;
- /// ﹤summary﹥
- /// 系統(tǒng)的通道個數(shù)
- /// ﹤/summary﹥
- byte m_channum;
- /// ﹤summary﹥
- /// 超時等待時間,1-300,單位:分鐘
- /// 用來設置超時等待時間,
- ///如果m_waittime沒有收到某個用戶的應答信號,切斷和該用戶的連接。
- /// ﹤/summary﹥
- uint m_waittime;
- /// ﹤summary﹥
- /// 目前沒有使用
- /// ﹤/summary﹥
- uint m_bufnum;
- public SERVER_VIDEOINFO(byte channum, uint waittime, uint bufnum)
- {
- this.m_channum = channum;
- this.m_waittime = waittime;
- this.m_bufnum = bufnum;
- this.m_datatype = new byte[64];
- }
- };
C#結構體構造函數(shù)的實例2.
- /// ﹤summary﹥
- /// 啟動服務端的參數(shù)結構
- /// ﹤/summary﹥
- public unsafe struct SERVER_VIDEOINFO
- {
- /// ﹤summary﹥
- /// 通道數(shù)據(jù)類型,是否支持電話線連接
- /// ﹤/summary﹥
- fixed byte m_datatype[64];
- /// ﹤summary﹥
- /// 系統(tǒng)的通道個數(shù)
- /// ﹤/summary﹥
- byte m_channum;
- /// ﹤summary﹥
- /// 超時等待時間,1-300,單位:分鐘
- /// 用來設置超時等待時間,
- ////如果m_waittime沒有收到某個用戶的應答信號,切斷和該用戶的連接。
- /// ﹤/summary﹥
- uint m_waittime;
- /// ﹤summary﹥
- /// 目前沒有使用
- /// ﹤/summary﹥
- uint m_bufnum;
- };
- /*
- 說明:C#中結構都有一個默認的不帶參數(shù)的構造函數(shù), 用于對結構的字段進行初始化,并且結構的默認構造函數(shù)不能被重寫。
- 結構體之中定義的數(shù)組還可以通過構造函數(shù)傳參數(shù)進行初始化操作!
- 1和2的作用相同,但是用2的方式定義的話需要選中 “項目屬性/生成/允許不安全代碼"。
- */
C#結構體構造函數(shù)的概念來自MSDN的資料:
對于C#結構體,結構與類共享大多數(shù)相同的語法,但結構比類受到的限制更多:
在結構聲明中,除非字段被聲明為 const 或 static,否則無法初始化。
結構不能聲明默認構造函數(shù)(沒有參數(shù)的構造函數(shù))或析構函數(shù)。
由于結構的副本由編譯器自動創(chuàng)建和銷毀,因此不需要使用默認構造函數(shù)和析構函數(shù)。實際上,編譯器通過為所有字段賦予默認值(參見默認值表(C# 參考))來實現(xiàn)默認構造函數(shù)。結構不能從類或其他結構繼承。
結構是值類型。如果從結構創(chuàng)建一個對象并將該對象賦給某個變量,則該變量包含結構的全部值。復制包含結構的變量時,將復制所有數(shù)據(jù),對新副本所做的任何修改都不會改變舊副本的數(shù)據(jù)。由于結構不使用引用,因此結構沒有標識;無法區(qū)分具有相同數(shù)據(jù)的兩個值類型實例。C# 中的所有值類型都繼承自 ValueType,后者繼承自 Object。
C#結構體構造函數(shù)的應用方面具有以下特點:
結構是值類型,而類是引用類型。
與類不同,結構的實例化可以不使用 new 運算符。
結構可以聲明構造函數(shù),但它們必須帶參數(shù)。
一個結構不能從另一個結構或類繼承,而且不能作為一個類的基。所有結構都直接繼承自 System.ValueType,后者繼承自 System.Object。
結構可以實現(xiàn)接口。
結構可用作可為 null 的類型,因而可向其賦 null 值。
C#結構體構造函數(shù)的實例的相關內容就向你介紹到這里,希望對你學習和了解C#結構體構造函數(shù)的應用有所幫助。
【編輯推薦】