public class Object
{
protected internal virtual bool Equals(object obj)
{
...
}
}
public static class ObjectExtension
{
public static bool Equals<T>(this T source, T obj)
{
if (source == null)
{
// return (obj == null); にするのも面白い
throw new NullReferenceException();
}
return source.Equals((object)obj);
}
}
あまり深く考えずに言っているので、なんらかの不都合が生じるかもしれないけど。。。
つか、拡張メソッドのサポートを全ての言語に強いることになるからダメかな。
つかつか、やっぱし自分自身の型を示すキーワードが欲しくなる。
トラックバックURL↓
http://csharper.blog57.fc2.com/tb.php/296-c112894e
もし拡張メソッドがあったら - 検証
C#と諸々 もし最初から拡張メソッドがあったらこんな感じ。class Hoge{}class Fuga : Hoge{}class Piyo : Hoge{}class Program{    static void Main(string[] args)    { ...
2011.03.05 23:38 | C#と諸々