将公共布尔称为公共空白

时间:2016-05-31 09:34:48

标签: c#

我有一个问题,我想在公共课上做一个公共布尔并将其称为无效。

我想检查第二类中的bool是否为真。

例如在我的第一堂课:

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*/}
}
  

显然它不起作用,因为myprogram1.checkwindow它说:

     

无法将方法组'checkwindow'转换为非委托类型bool

“运算符'=='不能应用于'方法组'和'bool'类型的操作数

由于myprogram1.checkwindow == true

所以这样做似乎已经死了,但我不知道如何以不同的方式做到这一点! (我需要我的getwindow课程。)

3 个答案:

答案 0 :(得分:4)

为了在C#中调用方法,您需要在方法名称后添加括号,即使方法不期望参数:

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

另外,要评估布尔值,您不需要与文字true进行比较。你可以写:

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

答案 1 :(得分: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*/}
}

答案 2 :(得分:0)

优化:

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

}

并且说:

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

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