2016-05-31 91 views
0

我有一個問題,我想在公共課程中做一個公共布爾,並將其視爲無效。撥打公共布爾作爲公共空白

我想檢查第二課的布爾是否爲真。

舉例來說,在我的第一類:

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

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

,第二個:

public Form1() 
{ [...] 

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

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

Obvisouly這是行不通的,因爲myprogram1.checkwindow它說:

不能轉換方法組'checkwindow'到非委託類型bool

「操作員‘==’不能被施加到型‘基團的方法’和‘布爾’

由於myprogram1.checkwindow == true的操作數。

所以它似乎死了這樣做,但我不知道如何以不同的方式做到這一點! (我需要我的getwindow類)。

+0

你需要'如果(myprogram1.checkwindow()= = true)'。請注意額外的一對括號。 –

+1

你忘了括號'()'我認爲:'myprogram1.checkwindow()== true' – Ian

回答

4

爲了調用在C#中的方法,你需要的方法名稱後加括號,即使該方法不指望參數:

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

此外,爲了評估你不需要與文字true比較的布爾值。你可以寫:

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

好吧,當他們說「不要忘記括號,我沒有想到這些。謝謝! – jsls

1

我會刪除無用的屬性,並將參數傳遞給checkwindow方法。喜歡的東西

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

優化稱之爲:

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

} 

和CAL它:

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

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