Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.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#,我想知道我是否可以无序地调用方法或函数 例如: public static class Employee { int s=0; public int addOne() { return s++ ; } } 现在我需要做的是: int sum = Employee.addOne() .addOne() .addOne(); 链接调用(也称为“flue

我想知道我是否可以无序地调用方法或函数

例如:

public static class Employee
{
    int s=0;

    public int addOne()
    {
        return s++ ;
    }
}
现在我需要做的是:

int sum = Employee.addOne()
                  .addOne()
                  .addOne();
           
链接调用(也称为“fluent语法”或“fluent接口”)在C#中并不少见:事实上,LINQ是.NET库的重要组成部分。 它需要一个不同的方法签名:您需要返回
Employee
,而不是返回
int
。以下是一个例子:

public class Employee // You cannot do this with a static class
{
    public int S {get; private set;}

    public Employee addOne()
    {
        S++ ;
        return this;
    }
}
显然,您需要设置一些访问
s
值的替代方法,因此调用如下所示:

var employee = new Employee();
int sum = employee.addOne()
              .addOne()
              .addOne()
              .S; // <<== Here is the change
var employee=新员工();
int sum=employee.addOne()
.addOne()
.addOne()

.S;//你试过了吗?结果是什么?不管怎样,静态类不能让实例方法或variablesTry先编译代码,修复它的所有错误。“无序”是什么意思?我想你要做的是称为Fluent interface。