의 내부 요즘 나 자신과 비슷한 수업을 많이 쓰는 발견했습니다액세스 "이"정적 codeblocks
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; }
}
}
당신은 내가 특별히 내가 안으로 해요 비록 typeof(MyTypeCodes)
을 할 필요가 new Lazy<IEnumerable<MyTypeCode>>(() =>
의 내부에 통지하는 경우 MyTypeCodes 클래스 특히 내가 특별히 내부에있는 클래스에 대해 typeof()
으로 전화 할 필요가 없어도 이것을 쓸 수있는 방법이 있습니까? 이것이 정상적인 방법이라면 나는 this.GetType()
이 될 것입니다. 어떤 이유로 든 통계적으로 작동하지 않습니다.
참고 - 당신은 ... 여기에'IEnumerable' 순서에()''ToList를 사용해야합니다 그렇지 않으면, 모든 호출을 다시 반사를 통해 실행됩니다. –