【发布时间】:2017-08-15 11:08:45
【问题描述】:
我看到这段代码是用java输入的。
PersonInfo result = personInfoBuilder
.setName("MISTAKE")
.setAge(20)
.setFavoriteAnimal("cat")
.setFavoriteColor("black")
.setName("JDM")
.setFavoriteNumber(7)
.build();
我在 C# 中尝试过这种方式。
public class PersonInfo
{
public int Age { get; set; }
public string Name { get; set; }
}
public class PersonBuilder
{
private PersonInfo _personElement = null;
private int age;
private string name;
public void SetAge(int age)
{
this.age = age;
}
public void SetName(string name)
{
this.name = name;
}
public PersonInfo GetPerson()
{
_personElement = _personElement ?? new PersonInfo();
_personElement.Age = age;
_personElement.Name = name;
return _personElement;
}
}
class Program
{
static void Main(string[] args)
{
PersonBuilder builder = new PersonBuilder();
builder.SetName("he")
.SetAge(20);
}
}
我有一个错误 [资源不可用于匿名访问。需要客户端身份验证。],
如何像 Java 一样在 C# 中连续调用方法?
【问题讨论】:
-
你是怎么尝试的?
-
“我看到一辆摩托车偷工减料,我用我的车试了一下,但没用”
-
创建一个类
PersonInfoBuilder,初始化一个实例,让每个方法都返回这个实例,然后就可以链接了。Build-方法返回具有指定属性的PersonInfo实例。 -
要搜索的关键字是fluent api或fluent interface。见en.wikipedia.org/wiki/Fluent_interface 和martinfowler.com/bliki/FluentInterface.html
-
你可以通过使用 c# 扩展方法来实现它,虽然我不明白为什么你需要像这个 java 例子那样做
标签: c#