gpt4 book ai didi

delegates - 使用非静态方法的委托(delegate)[没有选择的答案]

转载 作者:行者123 更新时间:2023-12-04 05:11:38 31 4
gpt4 key购买 nike

我非常有信心我应该能够使用非静态方法的委托(delegate),但下面给了我一个错误:

public class TestClass
{
private delegate void TestDelegate();
TestDelegate testDelegate = new TestDelegate(MyMethod);

private void MyMethod()
{
Console.WriteLine("Foobar");
}
}

我得到的错误是:

A field initializer cannot reference the non-static field, method, or property



如果我将 MyMethod 设为静态,则一切正常。我认为我可以使用非静态方法的委托(delegate)是不是完全错误(我确定我记得过去这样做过)。

最佳答案

回答这个问题,因为我必须“显示更多评论”并在我意识到实际答案之前做双重考虑。

错误:

A field initializer cannot reference the non-static field, method, or property



解决方案是在构造函数中初始化委托(delegate)。

我实际上无法在 C# 语言引用本身中找到它,而且很多库存示例都是静态方法。

IE。
public class TestClass
{
private delegate void TestDelegate();
TestDelegate testDelegate;

public TestClass()
{
testDelegate = new TestDelegate(MyMethod);
}

private void MyMethod()
{
Console.WriteLine("Foobar");
}
}

关于delegates - 使用非静态方法的委托(delegate)[没有选择的答案],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14860002/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com