在 C# 中使用表达式主体声明静态 class 或结构方法
Declare static class or struct method using expression body in C#
我一直使用不可变的 readonly
字段和 public
Expression<Func<>>
吸气剂,如下所示。
public class Person
{
public static Person Named(string surname, string given) { return new Person(surname, given); } // ugly!
protected Person(string surname, string given) { _surname = surname; _given = given; }
private readonly string _surname;
private readonly string _given;
public string Name => _given + _surname; // cool!
}
我真的很希望能够像上面那样使用静态方法来做到这一点。
我尝试了不同的语法,但 none 有效,即:
public static Person Named => x,y => new Person(x,y);
public static Person Named = (x,y) => new Person(x,y);
public static Person Named => ((x,y) => new Person(x,y));
正确的做法如下
public static Person Named(string surname, string given) => new Person(surname, given);
值得一提的是,instance 和 static 在语法上没有区别 properties/methods。
我一直使用不可变的 readonly
字段和 public
Expression<Func<>>
吸气剂,如下所示。
public class Person
{
public static Person Named(string surname, string given) { return new Person(surname, given); } // ugly!
protected Person(string surname, string given) { _surname = surname; _given = given; }
private readonly string _surname;
private readonly string _given;
public string Name => _given + _surname; // cool!
}
我真的很希望能够像上面那样使用静态方法来做到这一点。
我尝试了不同的语法,但 none 有效,即:
public static Person Named => x,y => new Person(x,y);
public static Person Named = (x,y) => new Person(x,y);
public static Person Named => ((x,y) => new Person(x,y));
正确的做法如下
public static Person Named(string surname, string given) => new Person(surname, given);
值得一提的是,instance 和 static 在语法上没有区别 properties/methods。