問題

C#.Netでプロトタイプメソッドを作成するにはどうすればよいですか?

JavaScriptでは、文字列オブジェクトのトリムメソッドを作成するために次のことができます。

 String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}
 

C#.Netでこれを行うにはどうすればいいですか?

  ベストアンサー

そのクラスのソースを変更することを除いて、.NETの既存のオブジェクトまたはクラスにメソッドを動的に追加することはできません。

しかし、C#3.0では、拡張メソッドを使用することができます。これは新しいメソッドのように見えますが、コンパイル時のマジックです。

あなたのコードのためにこれを行うには:

 public static class StringExtensions
{
    public static String trim(this String s)
    {
        return s.Trim();
    }
}
 

それを使用するには:

 String s = "  Test  ";
s = s.trim();
 

これは新しいメソッドのように見えますが、このコードとまったく同じ方法でコンパイルされます:

 String s = "  Test  ";
s = StringExtensions.trim(s);
 

あなたは何を達成しようとしていますか?おそらく、あなたが望むことをするより良い方法がありますか?

  同じタグがついた質問を見る

c#.net