• 扩展接口


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace WebApp2010
    {
    public class UserProfilerService : IUserProfiler
    {
    public string GetUserProfiler(string UserId)
    {
    if (UserId == "fasdfasdfasdfas")
    return "到北京";
    else return string.Empty;
    }
    }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    namespace WebApp2010
    {
    public static class Extensions
    {
    public static string MyProfiler(this IUserProfiler iup)
    {
    string username = iup.GetUserProfiler("fasdfasdfasdfas");
    return "Welcome, " + username + "!";
    }
    }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace WebApp2010
    {
    public interface IUserProfiler
    {
    string GetUserProfiler(string UserId);
    }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Security.Cryptography;
    using System.Text;
    using System.Threading.Tasks;
    using WebApp2010;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    IUserProfiler iup = new UserProfilerService();
    string name = iup.MyProfiler();
    Console.Write(name);
    string name1 = iup.GetUserProfiler("fasdfasdfasdfas");
    Console.Write(name1);
    string str1 = Console.ReadLine();

     假设有一种场景是我我无法修改接口和他的实现类,因为在某种情况下,如果接口的实现类很多的话,那么你就要一一修改实现类里面的代码。这个时候我们只需要扩展接口就可以很轻松的解决这件事情。

  • 相关阅读:
    python迭代器与iter()函数实例教程
    手动安装python后,交互模式下退格键乱码
    find参数exec、管道符|、xargs的区别
    比较好的网址收集
    sed小知识总结
    irc操作小记
    irssi忽略退出,加入消息
    Web自动化简介
    android&ios区别
    移动自动化应用展望
  • 原文地址:https://www.cnblogs.com/BoYu045535/p/3683115.html
Copyright © 2020-2023  润新知