C 匿名型別

2021-09-08 19:17:22 字數 1030 閱讀 5960

當我們想要在**中建立乙個物件,需要用 new object()  來建立,如果這個物件裡面有一些 屬性我們想要在 new 時就初始化,那麼我們會重寫 乙個建構函式。

如果不想重寫乙個 建構函式 該如何做?

例子如下:

自定義乙個類 point.cs

class point

}

如果不想寫上面 帶初始化x,y的建構函式該如何做?

我們只需在 使用 point的地方,用下面的**即可:

point p = new point ;

//或 point p1 = new point ;

//或 point py = new point ;

是不是很方便,你可以在使用point的地方隨意初始化任何乙個屬性,而不用寫多個 建構函式。

1.如果在**中我們會經常呼叫一些 變數 的值,通常會 把它統一存在 乙個類中,然後把該變數的屬性設定為 static。但是我們可以建立乙個匿名型別,來簡化使用。

例子如下:

class help

使用時如下:

int z = help.zero;

double pi = help.pi;

用匿名型別簡化,不用多餘建立乙個類。

//不用給屬性設定型別,自動判斷屬性型別

//屬性的名稱就是匿名物件中屬性的名稱

//匿名物件的型別不知,只知道匿名物件的名稱是 nmbject

var nmbject = new ;

//呼叫 常用的值

double b = nmbject.pi;

= 2.1; 這個是錯的,匿名型別是唯讀的,所以想要修改屬性,就不能設為匿名型別

//匿名物件也可以為陣列

//屬性名稱必須完全一樣,才代表是同一種匿名型別

var nmbjectarray = new ,

new,

};

C 匿名型別

c 3.0引入了對匿名型別的支援。它們是由編譯器動態生成的資料型別,而不是通過顯示地類定義來宣告的。下面通過乙個例子介紹匿名型別的使用 示例 將匿名型別的例項賦給隱式型別的區域性變數 執行結果 注意 除非使用lambda表示式和查詢表示式關聯來自不同型別的資料,或者對資料進行水平投射 以減少乙個特定...

c 匿名型別

匿名型別 允許我們建立無名類型別的特性。匿名型別 anonymous type 經常用於linq查詢的結果中。第6章介紹了物件初始化語句,它允許我們在使用物件建立表示式時初始化新類例項的字段和屬性。提醒一下,這種形式的物件建立表示式由三部分組成 new關鍵字 類名或建構函式以及物件初始化語句。物件初...

C 匿名型別

一 什麼叫做匿名類?匿名類就是沒有名字的類。匿名類不能被引用,只能再建立的時候用new語句來宣告。二 匿名類的優勢以及應用場景 1 匿名型別提供了一種方便的方法,可以用來將一組唯讀屬性封裝到單個的物件中,而且並不需要首先顯示定義乙個型別。2 型別名由編譯器生成,並且不能在源 級使用。每個屬性的型別由...