【问题标题】:Using method unorderly [duplicate]使用方法无序[重复]
【发布时间】:2021-01-25 17:24:36
【问题描述】:

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

例如这样:

public static class Employee
{
    int s=0;

    public int addOne()
    {
        return s++ ;
    }
}

现在我需要做什么:

int sum = Employee.addOne()
                  .addOne()
                  .addOne();
           

【问题讨论】:

  • 你试过了吗?结果如何?
  • 反正静态类不能有实例方法或变量
  • 尝试先编译代码,修复所有错误。
  • “无序”是什么意思?
  • 我想你要做的就是所谓的Fluent interface。 en.wikipedia.org/wiki/Fluent_interface#C#

标签: c#


【解决方案1】:

链式调用(也称为“流式语法”或“流式接口”)在 C# 中并不少见:事实上,LINQ 是 .NET 库的重要组成部分,can be accessed using fluent syntax。 它需要不同的方法签名:您需要返回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

【讨论】:

    猜你喜欢
    • 2019-08-21
    • 1970-01-01
    • 2014-09-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    相关资源
    最近更新 更多