2011-11-09 11 views
1

私自身の関数と変数を既存の文字列変数に追加できます。文字列変数に関数または変数メソッドを追加する

私はちょうどisnulloremptyを返すのisEmptyのgetでこの

if(mystring.isEmpty == false) 

を行うなどの代わりに、

if(string.IsNullOrEmpty(mystring) == false) 

()。 これは、高速化のためにこの変数に追加する必要がある多くの機能の1つに過ぎません。

ノート*文字列でない文字列

+4

「スピードアップ」?真剣に? – BoltClock

+0

@BoltClock:入力をスピードアップしますか? :shrug: – siride

+0

@BoltClock私が要求しているのは文字列変数だけではなく、differnt既存のクラスに対しても複数の変更が必要です。 – Drake

答えて

2

あなたはextension methodsを使用したいと思います。しかし、通常の方法とは異なるように行動させないように注意してください。

+0

私はこれを尋ねる前にこれをチェックしましたが、これは変数の追加方法、機能だけを示すものではありません。 – Drake

+0

@Drake:特定の変数にメソッドを追加することはできません(たとえば、JavaScriptのように)。 – siride

2

拡張メソッドを使用します。静的クラスを作成し、同様に、文字列の静的メソッド(拡張メソッド)を宣言 この

//これは、文字列クラスのメソッドを拡張している

public static bool isEmpty(this string input) 
{ 
    //your logic 
} 

すべてのLINQクエリは、拡張メソッドとして実装されているを示しています

0

あなたは以下のような拡張メソッドを実装する必要があります。

public static bool isEmpty(this string value) 
{ 
    return string.IsNullOrEmpty(value); 
} 
0

あなたはすべてのタイプのワットを高めることができますi番目の拡張メソッド。しかし残念なことにメソッドを書くことしかできませんプロパティはタイプに追加できません。だからあなたのサンプルのif(mystring.isEmpty == false)はこれだけif(mystring.IsEmpty() == false)

0
  1. 厥ていない機能のような方法で取り組んでいる、あなたは文字列のための新しい拡張メソッドを作成することができますプロパティ
  2. のthatsが、C#での拡張プロパティがアレント4
  3. あなたが書くべき
  4. 代わりif (someBool == false)を書くの大文字で始めるでしょう。ネットの世界のisEmptyで文字列と文字列
  5. の間に違いはありませんif (!someBool)
  6. 私はあなたがここで見ることを望む速度の改善について非常に疑問を持っています。 VSにはIntelliSenseの優れた機能があります。
関連する問題