既存のクラスのメソッドを拡張するには
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");
}
}
}
目に見える、同じ名前空間では、この方法は、限りアクセスを考慮に入れると、それは多形性と拡張方法することができ、拡張され、そしてあなただけができます