我们可以在 Getters 中使用委托吗

Arn*_*Das 3 c# class getter-setter

我们知道,可以将 Lambda 函数用作 getter,例如,

private string _name;
public string Name
{
    get => _name;
}
Run Code Online (Sandbox Code Playgroud)

但是,我们可以使用匿名函数和委托作为 getter,例如,

private string _name;
public string Name
{
    get => delegate { return _name; };
}
Run Code Online (Sandbox Code Playgroud)

它收到编译错误。

AAA*_*ddd 6

委托只不过是指向方法的指针(过于简化,但是您可以在此处找到详细信息Using Delegates)。所以答案是肯定的。

您可以使用委托动作函数等。

我给你举个世界上最人为的例子:

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);
}
Run Code Online (Sandbox Code Playgroud)