0

我像这样初始化了布尔变量

 bool isActionAt= true;

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

参数类型“bool”未分配给参数类型“int”

当我给bool isActionAt= "1";

然后我得到了这个错误

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

4

2 回答 2

4

好吧,您还没有展示如何尝试将其用作int,但这显然是错误的:

bool isActionAt = "1";

变量的bool值只能为trueor false。"1" 不是这些值之一,并且没有从 string 到 a的隐式转换bool

您可能习惯于非常动态类型的语言,它为您隐式转换不同类型的数据:C# 倾向于回避这一点。当有一个不会丢失信息的转换可用时,通常会有一个隐式转换,例如

short x = 10;
int y = x;

(一些浮点转换可能会丢失信息,但是......)

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

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

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

如果您可以尝试解释您想要实现的目标,而不是您用来尝试实现目标的代码,我们或许可以为您提供帮助。目前我们只知道您的代码无效。

于 2012-08-21T06:07:57.340 回答
0

如果您想要做的是将 int 变量的值分配给布尔值,那么您可以做的是有条件的,说明如果变量的值为“1”,则将布尔值设为“真”,否则为假。

您也可以尝试将整数转换为布尔值。我似乎记得这也将与您尝试做的类似。

于 2012-08-21T06:22:11.200 回答