我有一个问题,我想在公共课上做一个公共布尔并将其称为无效。
我想检查第二类中的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课程。)
答案 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*/}
}