日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#泛型應用中屬性淺析

C# 泛型應用中屬性學習之前讓我們來看看什么是C# 屬性:它們提供靈活的機制來讀取、編寫或計算私有字段的值??梢韵袷褂霉矓?shù)據(jù)成員一樣使用屬性,但實際上它們是稱為“訪問器”的特殊方法。這使得數(shù)據(jù)在可被輕松訪問的同時,仍能提供方法的安全性和靈活性。在本示例中,類 TimePeriod 存儲了一個時間段。類內(nèi)部以秒為單位存儲時間,但提供一個稱為 Hours 的屬性,它允許客戶端指定以小時為單位的時間。Hours 屬性的訪問器執(zhí)行小時和秒之間的轉(zhuǎn)換。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名與空間、網(wǎng)站空間、營銷軟件、網(wǎng)站建設、長樂網(wǎng)站維護、網(wǎng)站推廣。

C# 屬性示例代碼

 
 
 
  1. class TimePeriod
  2. {
  3.     private double seconds;
  4.     public double Hours
  5.     {
  6. get { return seconds / 3600; }
  7. set { seconds = value * 3600; }
  8.     }
  9. }
  10. class Program
  11. {
  12.     static void Main()
  13.     {
  14. TimePeriod t = new TimePeriod();
  15. // Assigning the Hours property causes 
  16. //the 'set' accessor to be called.
  17. t.Hours = 24;
  18. // Evaluating the Hours property causes 
  19. //the 'get' accessor to be called.
  20. System.Console.WriteLine("Time in hours: " + t.Hours);
  21.     }
  22. }

輸出

 
 
 
  1. Time in hours: 24 

C# 屬性特點

◆屬性使類能夠以一種公開的方法獲取和設置值,同時隱藏實現(xiàn)或驗證代碼。

◆get屬性訪問器用于返回屬性值,而 set 訪問器用于分配新值。這些訪問器可以有不同的訪問級別。有關更多信息,請參見 訪問器可訪問性。

◆value關鍵字用于定義由 set 索引器分配的值。

◆不實現(xiàn) set 方法的屬性是只讀的。

C# 泛型應用中屬性:

屬性可以應用于泛型類型中,方式與應用于非泛型類型相同。

自定義屬性只允許引用開放泛型類型(未提供類型參數(shù)的泛型類型)和封閉構(gòu)造泛型類型(為所有類型參數(shù)提供參數(shù))。

下面的C# 屬性在泛型的應用示例使用此自定義屬性:

 
 
 
  1. class CustomAttribute : System.Attribute
  2. {
  3.     public System.Object info;
  4. }

屬性可以引用開放式C# 泛型類型:

 
 
 
  1. public class GenericClass1 { }
  2. [CustomAttribute(info = typeof(GenericClass1<>))]
  3. class ClassA { }

使用數(shù)目適當?shù)娜舾蓚€逗號指定多個類型參數(shù)。

在此示例中,GenericClass2 有兩個類型參數(shù):

 
 
 
  1. public class GenericClass2 { }
  2. [CustomAttribute(info = typeof(GenericClass2<,>))]
  3. class ClassB { }

屬性可以引用封閉式構(gòu)造C# 泛型類型:

 
 
 
  1. public class GenericClass3 { }
  2. [CustomAttribute(info = typeof(GenericClass3))]
  3. class ClassC { }

引用泛型類型參數(shù)的屬性將導致編譯時錯誤:

 
 
 
  1. //[CustomAttribute(info = typeof(GenericClass3))]  //Error
  2. class ClassD { }

不能從 Attribute 繼承泛型類型:

 
 
 
  1. //public class CustomAtt : System.Attribute {}  //Error

若要在運行時獲得有關泛型類型或類型參數(shù)的信息,可以使用 System.Reflection 的方法。

C# 泛型應用中屬性的基本內(nèi)容就向你介紹到這里,希望對你了解和學習使用C# 泛型應用中屬性的操作有所幫助。


網(wǎng)站欄目:C#泛型應用中屬性淺析
本文來源:http://m.5511xx.com/article/djoposc.html