C# 参数类型';布尔';不是参数类型的赋值';int';

C# 参数类型';布尔';不是参数类型的赋值';int';,c#,C#,我像这样初始化bool变量 bool isActionAt= true; 但是当我尝试访问时,我得到了不同的错误 参数类型“bool”不是参数类型“int”的赋值 当我给出bool isaction=“1” 然后我犯了这个错误 无法将源类型字符串转换为目标类型布尔 您还没有演示如何将其用作int,但这显然是错误的: bool isActionAt = "1"; bool变量的值只能为true或false。“1”不是这些值之一,并且没有从字符串到bool的隐式转换 您可能习惯于非常动态类型化

我像这样初始化bool变量

 bool isActionAt= true;
但是当我尝试访问时,我得到了不同的错误

参数类型“bool”不是参数类型“int”的赋值

当我给出
bool isaction=“1”

然后我犯了这个错误

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


您还没有演示如何将其用作
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
,语言中没有任何转换,因此您必须编写自己的转换,指定哪些字符串值应视为真,哪些应视为假


如果你能试着解释你想要实现什么,而不是用代码来实现它,我们也许能帮助你。目前我们只知道您的代码是无效的。

您还没有展示如何将其用作
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
,语言中没有任何转换,因此您必须编写自己的转换,指定哪些字符串值应视为真,哪些应视为假


如果你能试着解释你想要实现什么,而不是用代码来实现它,我们也许能帮助你。目前我们所知道的是您的代码无效。

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


您还可以尝试将整数强制转换为布尔值。我似乎还记得,它的工作原理与您尝试的类似。

如果您想将int变量的值赋给一个布尔值,那么您可以做一个条件,说明如果变量的值为“1”,则将布尔值设为“真”,否则设为“假”


您还可以尝试将整数强制转换为布尔值。我似乎还记得,同样的,你也会努力工作。

你能不能再多发点代码?你不再是C++了,多萝西:-你能不能再多发点代码?你不再是C++了,多萝西:-看起来好像是从C的星球迁移过来的,“1”[0 ];尼曼塔普拉萨德:那你想做什么?你不能把C当作C来对待——它们有非常不同的习语,甚至除了简单有效的习语之外。@Anonymous:这在假值的情况下也是不正确的,即
“0”[0]
@Anonymous总是正确的。。。那你为什么不直接说
bool isActionAt=true?然而,有意义的是:
bool isActionAt=someValue==“1”@Anonymous:我相信这是莱皮的观点。OP可能*期望“0”给出false,但事实并非如此。OP似乎是从C星球迁移过来的,“1”[0];)@尼曼塔普拉萨德:那你想做什么?你不能把C当作C来对待——它们有非常不同的习语,甚至除了简单有效的习语之外。@Anonymous:这在假值的情况下也是不正确的,即
“0”[0]
@Anonymous总是正确的。。。那你为什么不直接说
bool isActionAt=true?然而,有意义的是:
bool isActionAt=someValue==“1”@Anonymous:我相信这是莱皮的观点。OP可能会*期望“0”给出false,但事实并非如此。