2012-02-18 9 views
1

私のプログラムのコンストラクタのプロパティ/アクセサメソッドで、このようなものがあります。C#で空白または空文字列の値を置き換える/変更する

using System; 


namespace BusinessTrips 
{ 
    public class Expense 
    { 
     private string paymentMethod; 


     public Expense() 
     { 
     } 
     public Expense(string pmtMthd) 
     {    
      paymentMethod = pmtMthd; 


     } 


     //This is where things get problematic 
     public string PaymentMethod 
     { 
      get  
      { 
       return paymentMethod; 
      } 
      set 
      { 
       if (string.IsNullOrWhiteSpace(" ")) 
        paymentMethod = "~~unspecified~~"; 
       else paymentMethod = value; 
      } 
     } 



    } 
} 

新しい属性が入力されると、PaymentMethod(nullまたは空白)に対して、これは明らかに機能しません。何か案は?

+0

あなたは、コンストラクタ内であなたのビジネスロジック」を表現したい場合は、単に直接フィールドの値を書き換えます( ' trip = ')プロパティ設定ツールコール(' Trip = ') – Mikant

答えて

5

string.IsNullOrWhiteSpace(" ")string.IsNullOrWhiteSpace(value)に置き換えてください。

あなたの投稿コードから

、あなたが呼び出す必要があります:

this.PaymentMethod = pmtMthd; 

代わりの

paymentMethod = pmtMthd; 

資本Pは直接文字列の代わりにあなたのプロパティを使用します。このため、クラス変数にアクセスするときはthis.を使用することをお勧めします。この場合、それは資本ない違いthis.だが、私はthis.

+0

私はそれを試しましたが、ダイスはありませんでした。 – user1200789

+0

@ user1200789:コードをもっと見る必要があります。問題が何であるか教えてくれる十分な情報がここにありません。それがうまくいかないことはどうやって分かりますか?あなたはデバッガを使って値をチェックしていますか?それともコンソールに書いていますか? – mpen

+0

コンソールから実行して、私はすべてを追加しました。 – user1200789

1

ジャン・バーナードPellerinの答えが正しい使用の習慣を身に取得したいです。

ここでは、LinqPadでテストした完全なコードを示します。コンソールから

void Main() 
{ 
    var f = new Foo(); 
    f.PaymentMethod = ""; 
    Console.WriteLine(f.PaymentMethod); 
    f.PaymentMethod = " "; 
    Console.WriteLine(f.PaymentMethod); 
    f.PaymentMethod = "FooBar"; 
    Console.WriteLine(f.PaymentMethod); 
} 

出力::のメインで

public class Foo { 
     private string _paymentMethod = "~~unspecified~~"; 
     public string PaymentMethod 
     { 
      get  
      { 
       return _paymentMethod; 
      } 
      set 
      { 
       if (string.IsNullOrWhiteSpace(value)) 
        _paymentMethod = "~~unspecified~~"; 
       else _paymentMethod = value; 
      } 
     } 
} 

​​
関連する問題