美文网首页
{C#}流畅方法.接口

{C#}流畅方法.接口

作者: 码农猫爸 | 来源:发表于2021-08-14 06:32 被阅读0次

背景

  • 使用流畅方法后,能像lambda一样调用,是不是很神奇?
  • 诀窍:返回类型=容器类型

示例

using static System.Console;

namespace FluentInterface
{
    public interface IReporter
    {
        IReporter CreateHeader(); // 流畅方法=返回容器,下同
        IReporter CreateBody();
        IReporter CreateFooter();
    }

    public class Reporter : IReporter
    {
        public string Content { get; private set; } = "";

        public Reporter() { }

        public IReporter CreateHeader()
        {
            Content += "This is header.";
            return this;
        }

        public IReporter CreateBody()
        {
            Content += "\nThis is body.";
            return this;
        }

        public IReporter CreateFooter()
        {
            Content += "\nThis is footer.";
            return this;
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var report = new Reporter();
            report.CreateHeader()
                .CreateBody()
                .CreateFooter();

            WriteLine(report.Content);
            ReadKey();
        }
    }
}

相关文章

  • {C#}流畅方法.接口

    背景 使用流畅方法后,能像lambda一样调用,是不是很神奇? 诀窍:返回类型=容器类型 示例

  • {C#}流畅方法.门面

    背景 可以参考门面设计模式的思路,设计流畅方法 示例

  • 接口的作用

    C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,...

  • C# 8.0 中的新增功能

    C# 8.0 向 C# 语言添加了以下功能和增强功能: Readonly 成员 默认接口方法 模式匹配增强功能:S...

  • 2018年9月26日.NET笔试面试题

    C#中的接口和类有什么异同? 不同点 不能直接实例化接口。 接口不包含方法的实现。 接口可以多继承,类只能单继承。...

  • 如何判断类型实现了某个接口

    在C#中判断某个类是否实现了某个接口 使用Type.IsAssignableFrom方法: typeof(IFoo...

  • {C#}流畅方法.泛型递归

    背景 结合泛型和递归,也能实现流畅方法,但比较烧脑 实现Gx继承Gy或抽象类A(即递归),引入Gy

  • BHO开发,在js中调用c#接口

    BHO开发中, javascript中调用c#中方法 1.首先定义一个c#的接口给js调用 2.然后在BHO主类中...

  • C#语言中Linq扩展方法的使用

    C# Linq 任何来源于Ienumerable接口的数据结构都能访问这个方法 Where(x ...

  • Unity中C#和Java的相互调用

    1、通过C#调用Java的方法: 在C#中添加调用的一些代码,利用Unity提供的一些接口实现调用Java! 在j...

网友评论

      本文标题:{C#}流畅方法.接口

      本文链接:https://www.haomeiwen.com/subject/wlmcbltx.html