2016-05-31 4 views
0

私はpublicクラスでpublic boolを行いたいと思う問題があります。public boolをpublic voidとして呼び出す

2番目のクラスのboolが真であるかどうかを確認したいと思います。

public class GetWindow 
{ 
    public string Check { get; set; } 

    public bool checkwindow() 
    { 
     if (Listofwindows.Contains(Check)) 
     return true; 
     else 
     return false; 
    } 
} 

2つ目:私の最初のクラスで例えば

public Form1() 
{ [...] 

    GetWindow myprogram1 = new GetWindow(); 
    myprogram1.Check = "Kin"; 

    if (myprogram1.checkwindow == true) 
     {/*Do thing*/} 
} 

Obvisoulyそれが原因myprogram1.checkwindowでは動作しません、それは言う:

は変換できません。メソッドグループ 'checkwindow'から非代理人型bool

は、「演算子 『==』の型 『メソッドのグループ』と 『ブール』ためmyprogram1.checkwindow == true

のオペランドに適用することはできません。

このようにすると死んでしまったようですが、どうやって違うのか分かりません。に、

if (myprogram1.checkwindow() == true) 
{ 
     {/*Do thing*/} 
} 

また:(。私は私は、GetWindowクラスが必要)

+0

)= =真) '。ブラケットの余分なペアに注意してください。 –

+1

あなたが括弧を忘れてしまったと思う: 'myprogram1.checkwindow()== true' – Ian

答えて

4

C#でメソッドを呼び出すには、メソッドはパラメータを期待していない場合でも、メソッド名の後に括弧を追加する必要がありますリテラルtrueと比較する必要のないブール値を評価します。あなただけ書くことができます。

if (myprogram1.checkwindow()) 
{ 
     {/*Do thing*/} 
} 
+0

「括弧を忘れないでください。 – jsls

1

私は役に立たないプロパティを削除し、checkwindowメソッドにパラメータを渡します。

public class GetWindow 
{ 
    public string Check { get; set; } 
    public bool checkwindow() 
     { 
     return Listofwindows.Contains(Check); 
     } 

} 

そして、それをCAL:

public class GetWindow 
{ 

    public bool checkwindow(string check) 
    { 
     // Contains already returns true/false, no need of additional checks 
     return Listofwindows.Contains(check); 
    } 
} 

public Form1() 
{ [...] 

    GetWindow myprogram1 = new GetWindow(); 
    if (myprogram1.checkwindow("Kin")) 
    {/*Do thing*/} 
} 
0

最適化とそれを呼び出すような何かあなたが(myprogram1.checkwindow(場合 `必要

GetWindow myprogram1 = new GetWindow(); 
myprogram1.Check = "Kin"; 

if (myprogram1.checkwindow()) 
{ 
     {/*Do thing*/} 
} 
関連する問題