我像这样初始化bool变量
bool isActionAt= true;
但是当我尝试访问时,我得到了不同的错误。
参数类型'bool'未赋值给参数类型'int'
当我给bool isActionAt= "1";
然后我收到了这个错误
无法将源类型字符串转换为目标类型bool
答案 0 :(得分:4)
嗯,你没有表明你是如何尝试将它用作int
的,但这显然是错误的:
bool isActionAt = "1";
bool
变量的值只能为true
或false
。 “1”不是其中一个值,并且从字符串到bool
没有隐式转换。
您可能习惯于非常动态类型的语言,它会隐式转换不同类型的数据:C#往往会回避这种情况。当有可用的转换不会丢失信息时,通常会进行隐式转换,例如
short x = 10;
int y = x;
(某些浮点转换可以丢失信息,但是......)
如果信息可能丢失,您通常必须使用显式转换:
int x = 100;
short y = (short) x; // short has a smaller range than int
但是对于string
和bool
,语言中没有任何转换,因此您必须编写自己的转换,指定应该使用哪些字符串值被视为真实,哪些应被视为虚假。
如果您可以尝试解释您尝试实现的内容而不是您尝试实现的代码,我们可能会帮助您。目前,我们所知道的是您的代码无效。
答案 1 :(得分:0)
如果您想要做的是将一个布尔值赋给一个int变量,那么您可以做的是条件,声明如果该变量的值为'1',则将bool设为'true',或者为false除此以外。
您也可以尝试将整数转换为布尔值。我似乎记得,它也会像你想要的那样工作。