5
Ben otomatik olarak tüm yerel alanları temizler bir arabirim uygulamak istiyoruz
, şimdiye kadar ben:Bir türün varsayılan değerini nasıl yayarsınız?
// Implement IClearable
dynamicType.AddInterfaceImplementation(typeof(IClearable));
MethodBuilder clearnMethodBuilder = dynamicType.DefineMethod("Clear", MethodAttributes.Public | MethodAttributes.Virtual, CallingConventions.Standard);
ILGenerator clearMethodILGen = clearnMethodBuilder.GetILGenerator();
foreach (FieldBuilder localField in fields)
{
clearMethodILGen.Emit(OpCodes.Ldarg_0);
clearMethodILGen.Emit(OpCodes.Ldfld, localField);
clearMethodILGen.Emit(OpCodes.??, Profit??);
}
clearMethodILGen.Emit(OpCodes.Ret);
nasıl alanın üzerine varsayılan değeri kaydetmek için son adımı ayarlarım? gibi
ilgi bu mu? http://stackoverflow.com/questions/10400358/how-to-translate-defaultsometype-from-c-sharp-to-cil –
Yup yardımcı olur. Aslında, doğru yöntemin Activator.CreateInstance (T) yaymak olduğunu söyleyebilirim. Bu, varsayılan nesneyi otomatik olarak başlatacağından. – sircodesalot
sınıf veya yapı? Eğer ikincisiyse, 'this = new StructName()' yapabileceksiniz. – leppie