DOBON.NET DOBON.NETプログラミング掲示板過去ログ

拡張メソッドについて

環境/言語:[C# .NET Framework 3.5]
分類:[.NET]

はじめまして。

staticメソッドとして拡張メソッドを定義することはできるものなのでしょうか。


例えば、

System.Math

に拡張メソッドを定義したいとして、

public static class SystemMathExtensions
{
public static float ExtensionMethod(this System.Math math)
{
return 0.0f;
}
}

としても、

System.Math.ExtensionMethod();

とアクセスする事はできないようです。
上記のような方法でアクセスする方法はあるのでしょうか。

自作のMathライブラリがあるのですが、プラットフォーム依存の拡張用のMathライブラリを別dllとして追加で
作成する必要が出てきてしまい、上記の方法がとれれば同じ方法でアクセスできるので便利だなと思い、
試行錯誤していました。

ご存じの方おられましたら、ご教授頂けませんでしょうか。
よろしくお願い致します。
無理です。

ちなみに、クラスライブラリ開発のデザインガイドラインには以下の項目があります。
> コア名前空間のガイドライン
> コア名前空間の型と競合する型の名前を割り当てないでください。
> たとえば、Directory を型名として使用しないでください。この名前を型名として使用すると、Directory 型と競合するからです。
http://msdn.microsoft.com/ja-jp/library/ms229026.aspx
Hongliang様 ご回答ありがとうございます。

なるほど、やはり無理ですか。
あきらめて別の方法で実装したいと思います。

名前の競合の件もわざわざありがとうございます。
注意して設計したいと思います。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板