C#中關(guān)鍵字get、set、value、partial、where和yield怎么用

這篇文章主要介紹C#中關(guān)鍵字get、set、value、partial、where和yield怎么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、伊州ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的伊州網(wǎng)站制作公司

C#關(guān)鍵字——get、set、value

get 在屬性或索引器中定義“訪問(wèn)器”方法,以檢索該屬性或該索引器元素的值。

set 義屬性或索引器中的“訪問(wèn)器”方法,用于設(shè)置屬性或索引器元素的值。

value 隱式參數(shù),用于設(shè)置訪問(wèn)器以及添加或移除事件處理程序。

// 簡(jiǎn)單示例  class Employee  {  private string _name;  public string Name      {  get { return this._name;  }  set { this._name = value; }      }  }

注意:

get、set“訪問(wèn)器”,在默認(rèn)情況下具有相同的訪問(wèn)級(jí)別。但是有時(shí)鑒于對(duì)讀寫的考慮,通??梢韵拗苨et的訪問(wèn)級(jí)別。對(duì)屬性或索引器使用訪問(wèn)修飾符受以下條件的制約:

不能對(duì)接口或顯式接口成員實(shí)現(xiàn)使用訪問(wèn)器修飾符。

僅當(dāng)屬性或索引器同時(shí)具有 set 和 get 訪問(wèn)器時(shí),才能使用訪問(wèn)器修飾符。這種情況下,只允許對(duì)其中一個(gè)訪問(wèn)器使用修飾符。

如果屬性或索引器具有 override 修飾符,則訪問(wèn)器修飾符必須與重寫的訪問(wèn)器的訪問(wèn)器(如果有的話)匹配。

訪問(wèn)器的可訪問(wèn)性級(jí)別必須比屬性或索引器本身的可訪問(wèn)性級(jí)別具有更嚴(yán)格的限制。

C#關(guān)鍵字——partial

partial 分部類型定義允許將類、結(jié)構(gòu)或接口的定義拆分到多個(gè)文件中。

[modifiers] partial type

modifiers是可選的??梢允莂bstract、new、override、static、virtual、extern,以及訪問(wèn)修飾符中的一個(gè)。

type 可以是類、結(jié)構(gòu)和接口之一。

示例:

以下的部分類在編譯時(shí),將會(huì)合并,包括它的方法、類型特性等等。 

namespace Hunts.Keywords  {      [System.Serializable]      partial class Test      {          void Test1() { }      }      [Conditional("DEBUG")]      partial class Test      {          void Test2() { }      }  }

類相當(dāng)于:

namespace Hunts.Keywords  {      [System.Serializable]      [Conditional("DEBUG")]      class Test      {          void Test1() { }          void Test2() { }      }

關(guān)于部分(類、接口、結(jié)構(gòu))的詳細(xì)使用,可以參閱MSDN Library中的部分類。

C#關(guān)鍵字——where

where 子句用于指定類型約束,這些約束可以作為泛型聲明中定義的類型參數(shù)的變量。

之所以使用類型約束是因?yàn)槿绻獧z查泛型列表中的某個(gè)項(xiàng)以確定它是否有效,或者將它與其他某個(gè)項(xiàng)進(jìn)行比較,則編譯器必須在一定程度上保證它需要調(diào)用的運(yùn)算符或方法將受到客戶端代碼可能指定的任何類型參數(shù)的支持。這種保證是通過(guò)對(duì)泛型類定義應(yīng)用一個(gè)或多個(gè)約束獲得的。

// 句法  public class MyGenericClass< T> where T:something

something可以是:結(jié)構(gòu)、類、new()、< 基類名>或< 接口名稱>。

可以同時(shí)具有1中的多個(gè)約束,且約束自身也可以是泛型類型。

也可以將約束作用于泛型方法或委托。

要更深入的了解可以參閱MSDN Library中的“泛型編程”以及“類型參數(shù)的約束”這些內(nèi)容。

示例: 

 // keywords_where.cs      using System;   using System.Collections;      struct MyStruct   {       //...   }   interface IMyInterface  {      //...  }   class MyGenericClass< T1,T2>      where T1: IEnumerable, IMyInterface      where T2: MyStruct, new()  {      public void MyMethod(T1 t1, T2 t2)      {          //...      }  }

C#關(guān)鍵字——yield

yield 在迭代器塊中用于向枚舉數(shù)對(duì)象提供值或發(fā)出迭代結(jié)束信號(hào)。 

// expression 進(jìn)行計(jì)算并以枚舉數(shù)對(duì)象值的形式返回。expression 必須可以隱式轉(zhuǎn)換為迭代器的 yield 類型。  yield return expression;  yield break;

示例:

// keywords_yield.cs  using System;  using System.Collections;   namespace Hunts.Keywords  {      public class Employee      {          private string _name;         private int _id;          public string Name         {             get { return this._name; }             set { this._name = value; }         }          public int ID         {             get { return this._id; }             set { this._id = value; }         }          // 為給定數(shù)組中的人名進(jìn)行編號(hào)         public static IEnumerable SetIDs(string[] names)         {             int counter = 0;             Employee result = new Employee();             while (counter++ <  names.Length)             {                 result._id = counter;                 result._name = names[counter - 1];                 yield return result;             }         }     }      class EmployeeList     {         static void Main()         {             string[] names = { "Jones", "Carl", "Dennis", "Evan", "Hugo", "Ivan" };              // 顯示編號(hào)操作的結(jié)果             foreach (Employee e in Employee.SetIDs(names))             {                 Console.WriteLine("ID:{0} Name:{1}", e.ID,e.Name);             }              Console.Read();         }     }

注意:

yield 語(yǔ)句只能出現(xiàn)在 iterator 塊中,該塊可用作方法、運(yùn)算符或訪問(wèn)器的體。這類方法、運(yùn)算符或訪問(wèn)器的體受以下約束的控制:

不允許不安全塊。

方法、運(yùn)算符或訪問(wèn)器的參數(shù)不能是 ref 或 out。

yield 語(yǔ)句不能出現(xiàn)在匿名方法中。

當(dāng)和 expression 一起使用時(shí),yield return 語(yǔ)句不能出現(xiàn)在 catch 塊中或含有一個(gè)或多個(gè) catch 子句的 try 塊中。

以上是“C#中關(guān)鍵字get、set、value、partial、where和yield怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

文章名稱:C#中關(guān)鍵字get、set、value、partial、where和yield怎么用
當(dāng)前路徑:http://muchs.cn/article10/jchhgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、定制開發(fā)、虛擬主機(jī)電子商務(wù)、全網(wǎng)營(yíng)銷推廣網(wǎng)站營(yíng)銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)