假設 外語老師 是乙個類,
那麼 外語老師 應該具有這樣的特性:會說外語
並且 會說外語 這一特性又包含一些資訊,比如:外語種類、外語水平、其它資訊。
按照這樣的理解,應該有下面的實現。
using system;得到的執行結果如下圖:using system.reflection;
namespace test_console
public canspeakforeignlanguage(string languagetype, int languagelevel)
//定義屬性
//特性和屬性不是一回事
public string languagetype
}public int languagelevel
}public string languageinfo
set
}//定義方法
public void canspeak()
.", _languagetype == null ? "chinese only" : _languagetype);}}
//定義乙個類,languageteacher ,這個類具有 canspeakforeignlanguage 特性
[canspeakforeignlanguage("english", 8, languageinfo = "this is us english, but not england english.")]
public class languageteacher
}//主程式
class program
console.writeline();
//反射建立 languageteacher 物件,執行它的 sayhello 方法
object obj = activator.createinstance(type);
methodinfo mi = type.getmethod("sayhello");
mi.invoke(obj, null);}}
}
自定義特性
1.指定attributeusage特性 特性 attribute 類本身用乙個特性 system.attributeusage特性來標記。attributeusage主要用於標識自定義特性可以應用到哪些型別的程式元素上。這些資訊由它的第一引數給出,改引數是必選的,其型別是列舉型別的attribut...
C 自定義特性
code1 using system using system.collections.generic using system.linq using system.text namespace mylibrary.attributeclass 對於位置引數,通常只提供get訪問器 public s...
編寫自定義特性
自定義特性一般標註在作用的程式元素的上方 編譯器首先組合特性名稱和attribute,然後尋找該組合名,所以特性名為fieldname和fieldnameattribute的兩個特性沒有區別 編譯器將尋找包含有這個名稱的類,它直接或者間接的派生資system.attribute 編寫自定義類的步驟 ...