Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#中连续调用该方法?_C# - Fatal编程技术网

如何在C#中连续调用该方法?

如何在C#中连续调用该方法?,c#,C#,我看到这段代码是用java输入的 PersonInfo result = personInfoBuilder .setName("MISTAKE") .setAge(20) .setFavoriteAnimal("cat") .setFavoriteColor("black") .setName("JDM") .setFavoriteNumber(7)

我看到这段代码是用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语言中连续调用该方法?

您建议的代码称为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示例中这样做