我正在尝试将vb .net代码转换为c#,但我遇到以下代码问题:
Dim MI_Display_Channel As New MethodInvoker(AddressOf display_channel)
Private Sub display_channel()
TextBox1.Text = fv_channel
End Sub
如何将这段代码转换为c#?
答案 0 :(得分:4)
我看到机器翻译了两个答案,显然,实例字段的字段初始化程序引用了该类的实例成员。这是不允许的。
明确:
class Xxx
{
MethodInvoker MI_Display_Channel = display_channel; // compile-time error!
void display_channel()
{
TextBox1.Text = fv_channel;
}
}
不会编译。在字段初始值设定项中不允许字段初始化时,请使用构造函数:
class Xxx
{
public Xxx() // other instance constructors may want to chain : this()
{
MI_Display_Channel = display_channel; // fine
}
MethodInvoker MI_Display_Channel; // no initializer here
void display_channel()
{
TextBox1.Text = fv_channel;
}
}
答案 1 :(得分:1)
从here,你得到了这个:
MethodInvoker MI_Display_Channel = new MethodInvoker(display_channel);
private void display_channel()
{
TextBox1.Text = fv_channel;
}
我不确定为什么这很难。