对一个现有的类进行方法的扩展
using System;
namespace PureCSharpTest
{
public class Rubbish
{
public void Say()
{
Console.Write("Hello");
}
}
public static class RubbishExtensions
{
public static void Say(this Rubbish argRubbish, string argString)
{
Console.Write(argString);
}
public static void Hello(this Rubbish rubbish)
{
Console.WriteLine("extension hello");
}
}
class Program
{
static void Main(string[] args)
{
Rubbish theRubbish = new Rubbish();
theRubbish.Say("Hey");
theRubbish.Hello();
theRubbish.OtherFileTestHello();
Console.ReadKey(false);
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace PureCSharpTest
{
public static class extensionOtherFileTest
{
public static void OtherFileTestHello(this Rubbish rubbish)
{
Console.WriteLine("other file extension hello");
}
}
}
可见,这种方法扩展方式,只要访问权限考虑到,就可以进行多态和扩展方法,并且只需要在同一命名空间下即可