成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# Attribute的概念與使用淺析

開發 后端
C# Attribute是什么呢?在C#實際開發中我們是如何展現C# Attribute的作用呢?那么本文就向你詳細介紹這一概念,希望對你有所幫助。

C# Attribute的概念是什么呢?我們經常在C#實際開發中遇到C# Attribute的使用,那么對于這一具體的細節我們需要知道什么才能掌握好C# Attribute呢?那么下面我們來具體的看看。

C# Attribute的概念

C# Attribute是一種嶄新的聲明性信息。我們不僅可以通過特性來定義設計層面的信息(例如help file, URL for documentation)以及運行時(run-time)信息(例如使XML與class相聯系),而且我們還可以利用特性建立自描述(self-describing)組件。在這篇教程中,我們將會看到如何建立和添加特性到各種程序實體以及如何在運行時環境中獲取特性信息。

C# Attribute的定義

MSDN中所描述的:“特性是被指定給某一聲明的一則附加的聲明性信息。”

C# Attribute的定義之使用預定義(Pre-defined)特性 
  
在C#中,有一個小的預定義特性集合。在學習如何建立我們自己的定制特性(custom attributes)之前,我們先來看看在我們的代碼中如何使用預定義特性。

  1. using System;   
  2.   public class AnyClass   
  3.   {   
  4.    [Obsolete("Don't use Old method, use New method"true)]   
  5.    static void Old( ) { }   
  6.      
  7.    static void New( ) { }   
  8.      
  9.    public static void Main( )   
  10.    {   
  11.    Old( );   
  12.    }   
  13.   } 

我們先來看一下上面這個例子,在這個例子中我們使用了Obsolete特性,它標記了一個不應該再被使用的程序實體。第一個參數是一個字符串,它解釋了為什么該實體是過時的以及應該用什么實體來代替它。實際上,你可以在這里寫任何文本。第二個參數告訴編譯器應該把使用這個過時的程序實體當作一種錯誤。它的默認值是false,也就是說編譯器對此會產生一個警告。
  
當我們嘗試編譯上面這段程序的時候,我們將會得到一個錯誤: 

  1. AnyClass.Old()' is obsolete: 'Don't use Old method, use New method'  

C# Attribute的定義開發定制特性(custom attributes) 
  
現在讓我們來看看如何開發我們自己的特性,首先我們要從System.Attribute派生出我們自己的特性類(一個從System.Attribute抽象類繼承而來的類,不管是直接還是間接繼承,都會成為一個特性類。特性類的聲明定義了一種可以被放置在聲明之上新的特性)。 

  1. using System;   
  2. public class HelpAttribute : Attribute   
  3. {   

不管你是否相信,我們已經建立了一個定制特性,現在我們可以用它來裝飾現有的類就好像上面我們使用Obsolete attribute一樣。 

  1. [Help()]   
  2. public class AnyClass   
  3. {   

注意:對一個特性類名使用Attribute后綴是一個慣例。然而,當我們把特性添加到一個程序實體,是否包括Attribute后綴是我們的自由。編譯器會首先在System.Attribute的派生類中查找被添加的特性類。如果沒有找到,那么編譯器會添加Attribute后綴繼續查找。

到目前為止,這個特性還沒有起到什么作用。下面我們來添加些東西給它使它更有用些。 

  1. using System;   
  2. public class HelpAttribute : Attribute   
  3. {   
  4.  public HelpAttribute(String Descrition_in)   
  5.  {   
  6.  this.description = Description_in;   
  7.  }   
  8.  protected String description;   
  9.  public String Description   
  10.  {   
  11.  get   
  12.  {   
  13.  return this.description;   
  14.    
  15.  }   
  16.  }   
  17. }   
  18. [Help("this is a do-nothing class")]   
  19. public class AnyClass   
  20. {   

在上面的例子中,我們給HelpAttribute特性類添加了一個屬性并且在后續的部分中我們會在運行時環境中查尋它。

C# Attribute的相關內容就向你介紹到這里,希望對你了解和學習C# Attribute有所幫助。

【編輯推薦】

  1. 簡析散列算法在C# 加密中的應用
  2. RSA實現C# 加密詳解
  3. 詳解TripleDES實現C# 加密操作
  4. 淺析C# WinForm控件開發前期準備
  5. 詳解C# WinForm自定義控件的使用和調試
責任編輯:仲衡 來源: 百度空間
相關推薦

2009-09-11 11:33:58

C# WinForm控Attribute

2009-09-02 10:58:02

C#動態數組

2009-09-14 13:44:14

Lambda ExprC# Lambda

2009-08-24 15:28:19

C# 泛型方法

2009-08-26 14:16:17

C# FrameWor

2009-08-27 17:11:44

C# Fluent I

2009-09-09 16:46:59

C# XmlSeria

2009-08-04 14:25:09

學習C#Attribute與P

2009-09-11 11:27:38

AttributeUsC# Attribut

2009-08-24 14:26:42

C# 泛型類

2009-08-14 15:23:10

C#使用ErrorPr

2009-08-20 18:47:19

C#異步通信

2009-08-18 09:51:18

C#枚舉類型

2009-09-09 10:47:29

C# CheckBox

2009-09-04 15:45:29

C#緩存流

2009-08-18 09:37:14

C#枚舉類型

2009-08-25 15:59:28

C#串口操作

2009-09-01 16:10:28

C#單元測試

2009-09-02 13:41:57

C#字符串操作

2009-08-13 13:29:04

C#結構體使用
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美激情国产精品 | 国产三级精品视频 | 天天看天天操 | 久久精品国产99国产精品 | 成人av免费在线观看 | 国产一级免费视频 | 综合久久综合久久 | 91九色婷婷 | 欧美日韩精品中文字幕 | 欧美午夜视频 | 国产成人a亚洲精品 | 国产精品美女久久久久久免费 | 国产高清av免费观看 | 国产一区二区视频在线 | 免费高清av| 精品国产欧美 | 国产精品高 | 国产一区二区三区视频在线观看 | 久久亚洲视频 | 精品影院 | 激情一区二区三区 | 嫩草懂你的影院入口 | 精品欧美一区二区三区精品久久 | 97色免费视频 | av网站免费 | 一区二区三区在线播放 | caoporn免费 | 亚洲成人国产 | 三级特黄特色视频 | 波多野结衣电影一区 | 在线中文字幕第一页 | 国产真实乱全部视频 | 久久久国产精品 | 色婷婷综合久久久中文字幕 | 国产乱人伦精品一区二区 | 99成人| 一区二区在线免费播放 | 亚洲区一区二 | 黑人精品欧美一区二区蜜桃 | 日韩理论电影在线观看 | 中文字幕亚洲精品在线观看 |