匿名型別與匿名物件

2022-03-22 05:05:04 字數 1237 閱讀 9621

var匿名型別(推斷型別)

var可代替任何型別,編譯器會根據上下文來判斷你到底是想用什麼型別,類似 object,但是效率比object高點。

我們可以賦予區域性變數推斷「型別」var而不是顯式型別。var 關鍵字指示編譯器根據初始化語句右側的表示式推斷變數的型別。推斷型別可以是內建型別、匿名型別、使用者定義型別、.net framework 類庫中定義的型別或任何表示式。  

如:

var a =1 ;

//ide或編譯器會根據你給a 的值:1,來"推論,斷定"a是乙個整數型別.

//同理:

var b ="2";

//因為給b的值是"2"這樣乙個字串,所以,b就是string型別...

匿名型別在宣告之時必須初始化,不允許「var a」,,初始化之後的變數的型別不允許再進行修改;

匿名型別(物件)

匿名型別是指沒有型別名(型別一般是指類)的型別,因為沒有乙個關鍵字去記錄這個型別,所以匿名型別在宣告的同時就需要例項化

匿名型別純粹的c#的語言特性,不是執行時的新型別

格式1:

var v=new;

例如:

var v=new;

另外,匿名型別的成員還可以是已經宣告的變數或者其他物件的成員,

格式2:

var v=new;

這種方式的宣告會將變數名直接複製給匿名型別的成員名,例如:

var v=new;

var w=new;

這種宣告的方式完全等價於

var v=new;

var w=new;

用處:1、在乙個較大的程式程式中,只有一處或很少幾處(不超過3處)需要用到 某個或某些型別(如上 student),其他地方不再需要這些型別。單獨宣告乙個student型別,所需**量,可能超過使用該型別時的**量,投入產出比不划算。

最典型的例子就是linq語句中的select方法,返回任意t型別的集合,這裡就可以用到匿名型別,避免重新宣告類

2、在一處程式中,只需要某種型別物件的部分屬性或方法參與運算。在這種情況下將該型別物件臨時轉換為程式所需的部分屬性和方法的物件,可使程式更加精簡。

匿名物件和匿名類

一,匿名物件 匿名物件 沒有名字的物件 new car 匿名物件其實就是定義物件的簡寫格式。car c new car c.run 用匿名物件來書寫以上 new car run 匿名物件的使用方法 1 當物件對方法僅進行一次呼叫的時候,就可以簡化成匿名物件。如乙個 物件需要進行呼叫方法2次,用匿名物...

型別推理與匿名型別

我們知道c 是一種強型別化的語言,這表示每個變數都有固定的型別,只能用於接受該型別的 中。c 3.0 引入了新關鍵字var,格式如下 var 在這行 中,變數隱式地型別化為value 的型別。注意,型別的名稱並不是var。eg var myvar 5 myvar 是int 型別的變數,而不是var ...

匿名內部類與匿名物件的用法

類是乙個模板,乙個物件是乙個例項,正常情況下,類和物件都是有名字的,但是,在某些情況下,為了簡化,類和物件是不需要名字的,這就是匿名類與匿名物件。普通的類和物件,定義和呼叫方式如下,很簡單。類名 物件名 new 類名 物件名.方法名 引數 public class demo01 class test...