如何在下面的示例中使用对象初始值设定项来声明和初始化变量?

时间:2015-04-20 20:41:28

标签: c# variables delegates declaration

我试图使用对象初始化程序声明和初始化变量,但是遇到了麻烦,但是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() {} 
}

1 个答案:

答案 0 :(得分:2)

您不能在初始化程序中使用您声明的变量。

static void Main()
{
    var t = new Trigger<GameEvent>(null);
    t.eventX = () => EventMessenger.Instance.AddListener<GameEvent>(t.Conditions());
}

Conditions也是一种方法,不是变量/属性,因此您必须使用t.Conditions()引用它。