最近我发现自己写了很多类似于:
public class MyTypeCodes
{
public static MyTypeCode E = new MyTypeCode{ Desc= "EEE", Value = "E" };
public static MyTypeCode I = new MyTypeCode { Desc= "III", Value = "I" };
private static readonly Lazy<IEnumerable<MyTypeCode>> AllMyTypeCodes =
new Lazy<IEnumerable<MyTypeCode>>(() =>
{
var typeCodes = typeof(MyTypeCodes)
.GetFields(BindingFlags.Static | BindingFlags.Public)
.Where(x => x.FieldType == typeof (MyTypeCode))
.Select(x => (MyTypeCode) x.GetValue(null))
.ToList();
return typeCodes;
});
public static IEnumerable<MyTypeCode> All
{
get { return AllMyTypeCodes.Value; }
}
}
如果您注意到其中的内容 ,即使我在 MyTypeCodes 类中new Lazy<IEnumerable<MyTypeCode>>(() =>
,我也特别需要这样做。typeof(MyTypeCodes)
有没有什么方法可以写这个而不需要特别调用typeof()
我所在的类?如果这是一种常规方法,我会this.GetType()
(由于某种原因)显然不适用于静力学。