我们可以在 Getters 中使用委托吗
Can we use Delegates in Getters
我们知道,可以像这样使用 Lambda 函数作为 getter,
private string _name;
public string Name
{
get => _name;
}
但是,我们可以使用带有委托的匿名函数作为 getter,例如,
private string _name;
public string Name
{
get => delegate { return _name; };
}
出现编译错误。
委托只是指向方法的指针(过于简单,但是您可以在此处找到详细信息Using Delegates)。所以答案是肯定的。
您可以使用 delegates、actions、funcs 等
我给你举个世界上最人为的例子:
private static string _name = "bob";
public delegate string Del(string message);
public static string DoSomething(string message) => message + "1";
private static readonly Del Handler = DoSomething;
public string Name
{
get => Handler(_name);
}
我们知道,可以像这样使用 Lambda 函数作为 getter,
private string _name;
public string Name
{
get => _name;
}
但是,我们可以使用带有委托的匿名函数作为 getter,例如,
private string _name;
public string Name
{
get => delegate { return _name; };
}
出现编译错误。
委托只是指向方法的指针(过于简单,但是您可以在此处找到详细信息Using Delegates)。所以答案是肯定的。
您可以使用 delegates、actions、funcs 等
我给你举个世界上最人为的例子:
private static string _name = "bob";
public delegate string Del(string message);
public static string DoSomething(string message) => message + "1";
private static readonly Del Handler = DoSomething;
public string Name
{
get => Handler(_name);
}