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();
假设有一种场景是我我无法修改接口和他的实现类,因为在某种情况下,如果接口的实现类很多的话,那么你就要一一修改实现类里面的代码。这个时候我们只需要扩展接口就可以很轻松的解决这件事情。
原文:http://www.cnblogs.com/BoYu045535/p/3683115.html