我试图使用对象初始化程序声明和初始化变量,但是遇到了麻烦,但是Main()中的行给了我错误“在声明之前不能使用变量”。如果我删除它,它会抱怨说条件无处可寻。这可以使用对象初始化器吗?
class Program
{
static void Main()
{
var t = new Trigger<GameEvent>
{
Event = () => EventMessenger.Instance.AddListener<GameEvent>(t.Conditions)
};
}
}
public class Trigger<T>
{
public Action Event { get; set; }
public void Conditions() {}
}
答案 0 :(得分:2)
您不能在初始化程序中使用您声明的变量。
static void Main()
{
var t = new Trigger<GameEvent>(null);
t.eventX = () => EventMessenger.Instance.AddListener<GameEvent>(t.Conditions());
}
Conditions
也是一种方法,不是变量/属性,因此您必须使用t.Conditions()
引用它。