我希望实现一个接口,自动清除所有本地字段,目前我已经有了以下代码:
// 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);
我该如何设置最后一步,以便在字段上保存默认值?
this = new StructName()
。 - leppieLdfld
似乎不合逻辑。 - leppiedefault(T)
,但在这种情况下,你需要明确说明你的意思。 - svick