13

私はクラスを拡張するために以下を行うことができることを知っています。拡張したい静的クラスがあります。どうすればいいですか?書きたいClassName.MyFunc()

static public class SomeName
{
    static public int HelperFunction(this SomeClass v)
4

3 に答える 3

15

拡張メソッドはインスタンス化可能な型にのみ適用可能であり、静的クラスはインスタンス化できないため、静的クラスに拡張メソッドを設定することはできません。

このコードを確認してください。

    public static bool IsEmail(this string email)
    {
        if (email != null)
        {
            return Regex.IsMatch(email, "EmailPattern");
        }

        return false;
    }

IsEmail()の最初のパラメーターは、型自体ではなく、拡張型インスタンスです。静的型のインスタンスを持つことはできません。

于 2010-01-05T06:06:17.630 に答える
10

C#で静的クラスを拡張することはできません。拡張メソッドは、あるタイプのインスタンスメソッドとして表示される静的メソッドを定義することによって機能します。静的クラスを拡張する拡張メソッドを定義することはできません。

于 2010-01-05T06:01:50.697 に答える
0

静的クラスをシングルトンに変えたいと思うかもしれません。その場合、クラスのインスタンスは1つだけになります。また、インスタンスであるため、拡張メソッドを使用できます。

これは、クラスのソースコードにアクセスできる場合に提供されます。

于 2010-01-05T06:07:10.670 に答える