- 601 名前:デフォルトの名無しさん mailto:sage [2008/01/27(日) 13:28:42 ]
- struct EnumWrapper<T> where T : struct {
private T value; public T Value { get { return value; } } public EnumWrapper(T value) { this.value = value; } public static explicit operator T(EnumWrapper<T> value) { return value.Value; } public static explicit operator EnumWrapper<T>(T value) { return new EnumWrapper<T>(value); } public override string ToString(){ ToStringAttribute[] attr = (ToStringAttribute[])typeof(T) .GetField(Value.ToString()).GetCustomAttributes(typeof(ToStringAttribute), false); return (attr.Length != 0) ? return attr[0].String : Value.ToString();}} [AttributeUsage(AttributeTargets.Field)]class ToStringAttribute : Attribute { public string String { get; private set; } public ToStringAttribute(string str) { this.String = str; }} enum MyEnum { [ToString("いちばん")]One, [ToString("二番")]Two, } こんな風にするとか
|

|