如何在C#中连续调用该方法?
我看到这段代码是用java输入的如何在C#中连续调用该方法?,c#,C#,我看到这段代码是用java输入的 PersonInfo result = personInfoBuilder .setName("MISTAKE") .setAge(20) .setFavoriteAnimal("cat") .setFavoriteColor("black") .setName("JDM") .setFavoriteNumber(7)
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语言中连续调用该方法?您建议的代码称为builder模式。下面是我如何在C代码中创建生成器模式 建筑工人阶级
class PersonInfo
{
private string name, animan, color;
private int age, num;
private PersonInfo() { }
public class Builder
{
PersonInfo info = new PersonInfo();
public Builder setName(string name) { info.name = name; return this; }
public Builder setAge(int age) { info.age = age; return this; }
public Builder setFavoriteAnimal(string animan) { info.animan = animan; return this; }
public Builder setFavoriteColor(string color) { info.color = color; return this; }
public Builder setFavoriteNumber(int num) { info.num = num; return this; }
public PersonInfo build()
{
return info;
}
}
}
下面是你如何使用它
PersonInfo.Builder personInfoBuilder = new PersonInfo.Builder();
PersonInfo result = personInfoBuilder
.setName("MISTAKE")
.setAge(20)
.setFavoriteAnimal("cat")
.setFavoriteColor("black")
.setName("JDM")
.setFavoriteNumber(7)
.build();
你是如何尝试的?“我看到一辆摩托车在偷工减料,我用我的车试了试,但没有成功”创建一个类
PersonInfoBuilder
,初始化一个实例,让每个方法都返回这个实例,然后你可以链接它。Build
-方法返回具有指定属性的PersonInfo
实例。要搜索的关键字是fluent api或fluent interface。请参阅,您可以通过使用c#扩展方法来实现它,尽管我无法理解为什么您需要像在这个java示例中这样做