欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入了解c# 匿名類型

 更新時(shí)間:2020年07月17日 10:31:18   作者:a  
這篇文章主要介紹了c# 匿名類型的相關(guān)資料,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下

一、什么叫做匿名類?

  匿名類就是沒有名字的類。匿名類不能被引用,只能再創(chuàng)建的時(shí)候用new語句來聲明。

二、匿名類的優(yōu)勢以及應(yīng)用場景;

  1、匿名類型提供了一種方便的方法,可以用來將一組只讀屬性封裝到單個(gè)的對(duì)象中,而且并不需要首先顯示定義一個(gè)類型。

  2、類型名由編譯器生成,并且不能在源代碼級(jí)使用。每個(gè)屬性的類型由編譯器推斷。

  3、可通過是用new運(yùn)算符和對(duì)象初始值創(chuàng)建匿名類型。

  4、匿名類型通常用在查詢表達(dá)式的 Select 子句中,以便返回原序列中每個(gè)對(duì)象的屬性子集(Linq 中使用的比較多)。

三、匿名類的應(yīng)用; 

//匿名類型
var news = new {title="冰紅茶",day="2019-4-10",author="康師傅"};
showInfo(news);  
//
static void ShowInfo<T>(T news)
{
  dynamic d = news;
  Console.WriteLine(d.title);
  Console.WriteLine(d.day);
  Console.WriteLine(d.author);
}

四、var隱式類型;

  隱式類型var,聲明變量是無需指定數(shù)據(jù)類型的,編譯器會(huì)根據(jù)賦值判斷其類型的一種機(jī)制,它的優(yōu)勢就在于,通過var這個(gè)隱式類型,可以提高開發(fā)人員的開發(fā)效率,很多時(shí)候可以不考慮對(duì)象的類型。

五、var 的使用規(guī)則;

  1、var 類型會(huì)被編譯器根據(jù)初始值的類型推斷出具體的類型;

  2、var 類型的局部變量必須賦予初始值;

  3、無法將null賦值給隱式類型的局部變量;

  4、var 類型變量的定義必須是在方法中或者在屬性get、set 訪問器中;

  5、var 不能做方法的參數(shù);

  6、不能當(dāng)作返回值類型;

  7、語句中只能聲明一次變量,聲明后不能更改類型;

六、匿名方法;

  匿名方法是C#2.0引入的一個(gè)新的特性,它允許開發(fā)者內(nèi)聯(lián)(inline)聲明自己的函數(shù)代碼而無須使用委托函數(shù)(delegate function)。

  匿名方法的應(yīng)用場景:

            1、需要一個(gè)臨時(shí)方法,這個(gè)方法使用次數(shù)極少;

            2、這個(gè)方法的代碼很短,甚至可能比方法聲明都短的情況下使用;

七、匿名方法的實(shí)例:

/*匿名方法的演化過程*/MySumHandler m1 = new MySumHandler(Sum);
m1(2,3);
MySumHandler m2 = Sum;
m2(3,4);


//匿名方法,C#2.0
MySumHandler m3 = delegate(int i, int j){Console.WriteLine("{0}+{1}={2}",i,j,(i+j));};
m3(5,6);

//lambda,表達(dá)式C#3.0
MySumHandler m4 = (i,j)=>{Console.WriteLine("{0}+{1}={2}",i,j,(i+j));};

八、Func和Action的使用:

  Func<TResult>和Action<T>是.NET的內(nèi)置委托。Func<TResult>要求由返回值。Action<T>要求無返回值。

  在使用時(shí),F(xiàn)unc<T1,T2,……,T16,TResult>中尖括號(hào)中的最后一個(gè)類型就是返回值。

  Action<T1,T2,……,T16>,T1 至 T16 是參數(shù)。

以上就是深入了解c# 匿名類型的詳細(xì)內(nèi)容,更多關(guān)于C# 匿名類型的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Unity3D實(shí)現(xiàn)攻擊范圍檢測

    Unity3D實(shí)現(xiàn)攻擊范圍檢測

    這篇文章主要為大家詳細(xì)介紹了Unity3D實(shí)現(xiàn)攻擊范圍檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C#?Chart控件標(biāo)記問題詳解

    C#?Chart控件標(biāo)記問題詳解

    這篇文章主要介紹了C#?Chart控件標(biāo)記問題詳解,在做項(xiàng)目的時(shí)候,遇到一個(gè)需求,需要我對(duì)Chart圖標(biāo)標(biāo)記數(shù)據(jù)正在運(yùn)行,實(shí)現(xiàn)數(shù)據(jù)可視化,文章通過圍繞主題展開詳情,需要的朋友可以參考一下
    2022-08-08
  • C#實(shí)現(xiàn)文件與字符串互轉(zhuǎn)的方法詳解

    C#實(shí)現(xiàn)文件與字符串互轉(zhuǎn)的方法詳解

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)文件與字符串互轉(zhuǎn)效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定幫助,需要的可以參考一下
    2022-08-08
  • C#判斷三角形的類型

    C#判斷三角形的類型

    這篇文章主要介紹了C#判斷三角形的類型的方法,通過輸入三角形的三條邊長,判斷是否能構(gòu)成一個(gè)三角形,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 通過特性(attribute)為枚舉添加更多信息示例

    通過特性(attribute)為枚舉添加更多信息示例

    這篇文章主要介紹了通過特性(Attribute)為枚舉添加更多的信息,大家參考使用吧
    2014-01-01
  • C#使用HttpClient對(duì)大文件進(jìn)行斷點(diǎn)上傳和下載

    C#使用HttpClient對(duì)大文件進(jìn)行斷點(diǎn)上傳和下載

    這篇文章主要介紹了C#如何使用HttpClient對(duì)大文件進(jìn)行斷點(diǎn)上傳和下載,文章通過代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-06-06
  • C#使用自定義的泛型節(jié)點(diǎn)類實(shí)現(xiàn)二叉樹類

    C#使用自定義的泛型節(jié)點(diǎn)類實(shí)現(xiàn)二叉樹類

    這篇文章主要為大家詳細(xì)介紹了C#如何使用自定義的泛型節(jié)點(diǎn)類 Node<T>實(shí)現(xiàn)二叉樹類BinaryTree<T>及其方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#實(shí)現(xiàn)的JS操作類實(shí)例

    C#實(shí)現(xiàn)的JS操作類實(shí)例

    這篇文章主要介紹了C#實(shí)現(xiàn)的JS操作類,封裝了C#關(guān)于javascript的彈出對(duì)話框、返回上一頁、跳轉(zhuǎn)等常用操作,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C#啟動(dòng)windows服務(wù)方法的相關(guān)問題分析

    C#啟動(dòng)windows服務(wù)方法的相關(guān)問題分析

    C#啟動(dòng)windows服務(wù)的方法都是什么呢?C#啟動(dòng)服務(wù)類型為Disabled的windows服務(wù)會(huì)遇到什么樣的問題呢?那么本文就向你介紹C#啟動(dòng)windows服務(wù)的方法的相關(guān)內(nèi)容
    2012-12-12
  • C#中ToString數(shù)據(jù)類型格式大全(千分符)

    C#中ToString數(shù)據(jù)類型格式大全(千分符)

    這篇文章主要介紹了C#中ToString數(shù)據(jù)類型格式大全 千分符,需要的朋友可以參考下
    2017-02-02

最新評(píng)論