C 給列舉型別增加乙個備註特性

2022-01-14 12:31:00 字數 1604 閱讀 9507

/// /// 備註特性

///

public class remarkattribute : attribute

public remarkattribute(string remark)

}

/// /// 列舉擴充套件類

///

public static class enumextension

object attributes = fi.getcustomattributes(typeof(remarkattribute), false);

if (attributes.length > 0)

else

}public static string getenumdescription(this enum value)

else}}

var aaa = usertype.type1.getremark();

var aab = usertype.type2.getenumdescription();

列舉為我看日常開發的可讀性提供的非常好的支援,但是有時我們需要得到列舉值得描述資訊或者是注釋(備註)資訊

比如要獲得 testemun.aaa 屬性值得備註 aaa,比較不方便得到。

public enum testemun

如果要得到類似的效果,我們就需要修改一下**了,使用反射很容易得到這個結果。

using system;

using system.reflection;

namespace lib.datamodel.sysenum

///

/// 備註

///

public string remark

set

}///

/// 獲取列舉的備註資訊

///

/// 列舉值

///

public static string getenumremark(enum val)

return name;}}

///

/// 列舉擴充套件類

///

public static class enumextension

return name;}}

public class unittest

public void getenumname()

}

//獲取列舉的所有屬性名稱

var fields = typeof(myenum).getfields(bindingflags.static | bindingflags.public);

foreach (var fi in fields)

console.writeline(fi.name);

centos增加乙個使用者並給root許可權方法

開始 測試環境 centos 5.5 1 新增使用者,首先用adduser命令新增乙個普通使用者,命令如下 adduser tommy 新增乙個名為tommy的使用者 passwd tommy 修改密碼 changing password for user tommy.new unix passwo...

給乙個窗體增加快捷鍵

我們在使用乙個應用程式的時候,如果熟練運用一些快捷鍵的話,會大大增加效率,那麼使用swing程式設計該如何新增快捷鍵呢?下面就讓我們來實現他。首先來看一下可能遇到哪些問題。一般來講,快捷鍵一定是要被繫結到某乙個元件上面的,並且在這個元件擁有焦點的時候快捷鍵才有效。這就遇到問題了,並沒有哪乙個元件能夠...

C語言typedef 給型別起乙個別名

c語言允許為乙個資料型別起乙個新的別名,就像給人起 綽號 一樣。起別名的目的不是為了提高程式執行效率,而是為了編碼方便。例如有乙個結構體的名字是 stu,要想定義乙個結構體變數就得這樣寫 struct stu stu1 struct 看起來就是多餘的,但不寫又會報錯。如果為 struct stu 起...