2016-04-06 3 views
1

私は今、むしろ愚かな質問をしておりませんことを願っていますに変換できません。私はGoogleでかなりの時間を捜しましたが、私は答えを見つけられないようです - あるいは、それがどのように機能するかの理解が不足しているかもしれません。は、暗黙的に型「無効」から「ブール」

私はこのエラーが発生する理由を誰かが私に説明できることを願っていますか?私はエラーが発生し続けます: "暗黙のうちに型 'void'から 'bool'に変換できません。

これはコードです:

class User 
{ 
    public string FirstName 
    { 
     get { return _FirstName; } 
     set 
     { 
       // the error occurs on the line below 
      if((ArgChecker.ThrowOnStringNullOrWhiteSpace(_FirstName))) 
      { 
       Console.WriteLine("something1"); 
      } 
      else { _FirstName = value; } 
     } 
    } 
    private string _FirstName; 
} 


class ArgChecker 
{ 
    public static void ThrowOnStringNullOrWhiteSpace(string arg) 
    { 
     if (string.IsNullOrWhiteSpace(arg)) 
     { 
      throw new ArgumentNullException("something2"); 
     } 
    } 
} 
+3

'if'の必要はありません。' ArgChecker.ThrowOnStringNullOrWhiteSpace(_FirstName) 'を呼び出すだけです。 – Eser

+0

[void](https://msdn.microsoft.com/en-us/library/yah0tteb.aspx)言語リファレンスを参照してください。 'void'はあなたのメソッドから戻るものです。 'if'ステートメントは常に'ブール '(true/false)をチェックする必要があります。 'void'は暗黙的にまたは明示的に' boolean'に変換できません。したがって、エラーです。 – Igor

+0

何が原因でエラーが発生したのかを確認していただきありがとうございます。それは有り難いです!あなたはおそらく例を作るために気になり – Araine

答えて

1

あなたはあなたの財産を

public string FirstName 
{ 
    get { return _FirstName; } 
    set 
    { 
     ArgChecker.ThrowOnStringNullOrWhiteSpace(value); 
     _FirstName = value; 
    } 
} 
+0

'ArgChecker.ThrowOnStringNullOrWhiteSpace(_FirstName);'はArgChecker.ThrowOnStringNullOrWhiteSpace(値)でなければなりません。 – Igor

+0

@Igorはい、修正済み... – Eser

+0

ああ、ありがとう!私は今眠る必要があると思う。これはちょうど愚かだった... – Araine

0

はあなたThrowOnStringNullOrWhiteSpaceにを渡してしてはいけませんのようなものでなければなりません代わりに、BOOLする空変換することはできません。関数(_FirstNameの代わりに)?

+0

私は本当に、はいする必要があります。愚かな間違い。ありがとうございました! – Araine

関連する問題