参数类型'bool'未赋值给参数类型'int'

时间:2012-08-21 06:05:49

标签: c#

我像这样初始化bool变量

 bool isActionAt= true;

但是当我尝试访问时,我得到了不同的错误。

  

参数类型'bool'未赋值给参数类型'int'

当我给bool isActionAt= "1";

然后我收到了这个错误

  

无法将源类型字符串转换为目标类型bool

2 个答案:

答案 0 :(得分:4)

嗯,你没有表明你是如何尝试将它用作int的,但这显然是错误的:

bool isActionAt = "1";

bool变量的值只能为truefalse。 “1”不是其中一个值,并且从字符串到bool没有隐式转换

您可能习惯于非常动态类型的语言,它会隐式转换不同类型的数据:C#往往会回避这种情况。当有可用的转换不会丢失信息时,通常会进行隐式转换,例如

short x = 10;
int y = x;

(某些浮点转换可以丢失信息,但是......)

如果信息可能丢失,您通常必须使用显式转换:

int x = 100;
short y = (short) x; // short has a smaller range than int

但是对于stringbool,语言中没有任何转换,因此您必须编写自己的转换,指定应该使用哪些字符串值被视为真实,哪些应被视为虚假。

如果您可以尝试解释您尝试实现的内容而不是您尝试实现的代码,我们可能会帮助您。目前,我们所知道的是您的代码无效。

答案 1 :(得分:0)

如果您想要做的是将一个布尔值赋给一个int变量,那么您可以做的是条件,声明如果该变量的值为'1',则将bool设为'true',或者为false除此以外。

您也可以尝试将整数转换为布尔值。我似乎记得,它也会像你想要的那样工作。