使用C 的屬性

2021-04-06 12:48:42 字數 1706 閱讀 8444

c#

相對於c++

的好處之一是:有屬性這個東西,直接能夠讓你使用,而且得到語法的支援,首先我們來看看

c#中如何表示乙個屬性,例如:

class myclass

set

}

}

好了,現在我們可以使用如下的方法來訪問屬性:

myclass myclass;

myclass.myname ="dddd";

這是最普通的方式,另外一種方式就是使用

attributeusage

來定義乙個屬性類,就象系統裡面提供的屬性一樣。

定義自己的屬性類需要從

system.attribute

這個類繼承,然後使用上面的方法來定義屬性,例如:

[attributeusage(attributetargets.property, inherited = true, allowmultiple = true)]

class myattribute:attribute

private string myname = string.empty;

public myname

set }}

這個屬性的使用不同於上面,首先我們需要定義乙個類,例如:

[myattribute (「myname is test」)]

class myclass

[myattribute (「myname is test」)]

實際上構造乙個屬性,

myname

是指定的內容;但這個屬性並不執行,而是在有**呼叫

myclass

的gettype

的getcustomattribute

的時候才真正的建立**。

其實這種屬性是使用反射機制,為類在執行時儲存一些資訊,下面是乙個使用自定義屬性的例子:

using system;

[attributeusage(attributetargets.class|attributetargets.struct,

allowmultiple=true)]

public class author : attribute

public double version;

string name;

public string getname()

}

[author("h. ackerman")]

class firstclass

class secondclass//

沒有定義

author

屬性

[author("h. ackerman"), author("m. knott", version=1.1)]

class steerage

class authorinfo

public static void printauthorinfo(type t)

", t);

attribute attrs = attribute.getcustomattributes(t);

foreach(attribute attr in attrs)

, version ",

a.getname(), a.version);

}

}

}

}

C 使用屬性

我們通常把字段定義為私有的,屬性定義為公共的,通過屬性訪問字段。定義乙個屬性時,型別必須和它所訪問的字段一致。例如 姓名 name為string型別,那麼它對應的屬性name也一定是string型別。屬性本質上是方法,只是與方法不同。可以例項化物件後給屬性賦值,也可以取值,只呼叫屬性即可。不需要訪問...

C 中使用屬性

使用屬性,避免將資料成員直接暴露給外界 item always use properties instead of accessible data members.學習研究.net的早期,經常碰到一些學習c net的朋友問,要屬性這種華而不實的東西做什麼?後來做專案時也時常接到team裡的人的抱怨反...

C 中屬性PropertyInfo的使用

昨天程式設計遇到乙個問題兩個類字段都是二十多個,其中有十多個是相同的,需要將乙個類的字段賦值給另外乙個類,開始的自己想手動的乙個個去賦值,後來想來一下c 基礎知識,用propertyinfo就可以解決類似的問題,寫部落格需要內容詳實,我還是慢慢的c 屬性從頭寫起,先看下屬性的定義吧 屬性定義 它提供...