在 C# 中,我可以让 Visual Studio 保留委托的参数名称。
例如,如果我有:
public delegate void Blah(object myArg);
public event Blah Foo;
然后,当我向事件添加方法时,Visual Studio UI 会自动保留名称并创建方法:
void Form1_Foo(object myArg);
但是,如果我在 C++/CLI 中声明一个委托:
public:
delegate void Blah(Object^ myArg);
event Blah^ Foo;
它不保留名称并创建一个带有无意义名称的方法:
void Form1_Foo(object A_0)
如何在 C++/CLI 中为参数设置有意义的名称?
编辑(添加 ildasm 结果):
C++ CLI 事件:
.method public hidebysig specialname instance void
Invoke(object myArg) cil managed
{
} // end of method Blah::Invoke
C# 事件:
.method public hidebysig newslot virtual
instance void Invoke(object myArg) runtime managed
{
} // end of method Blah::Invoke