在C#中将字符串转换为布尔值

Whi*_*ons -2 c# boolean

我需要将字符串转换为bool值的帮助:

我一直在尝试从TopMost获取程序的值(真或假)并将其保存在我的设置中。

Settings1.Default["tm"] = ;
Settings1.Default.Save();
Run Code Online (Sandbox Code Playgroud)

我的设置'tm'的类型是布尔值(true,false),但是我只是在短时间内使用C#,所以我不确定如何保存TopMost是true还是false 。

在您说要在属性中使用一个之前,它是一个用户选项;我希望他们能够选择启用(true)还是关闭(false)的选项,但是将其保存并加载为bool值。

Aou*_*hid 20

我知道这不是一个理想的答案,但是由于OP似乎是一个初学者,我很乐意与他分享一些基本知识...希望大家都能理解

OP,您可以Boolean使用以下任何一种方法将字符串转换为类型:

 string sample = "True";
 bool myBool = bool.Parse(sample);

 ///or

 bool myBool = Convert.ToBoolean(sample);
Run Code Online (Sandbox Code Playgroud)

bool.Parse期望一个参数,在这种情况下为sample.ToBoolean也期望一个参数。

您可以使用TryParse与相同的方法,Parse但不会引发任何异常:)

  string sample = "false";
  Boolean myBool;

  if (Boolean.TryParse(sample , out myBool))
  {
  }
Run Code Online (Sandbox Code Playgroud)

请注意,您不能将任何类型的字符串转换为type,Boolean因为a的值Boolean只能是TrueFalse

希望你能理解 :)

  • 请注意,“bool.Parse”的参数不区分大小写。以下测试用例都会通过: `Assert.IsTrue(bool.Parse("True")); Assert.IsTrue(bool.Parse("TRUE")); Assert.IsTrue(bool.Parse("true"));` (12认同)

Héc*_*rán 8

您必须使用一些 C# 转换系统:

字符串到布尔值:真到真

string str = "True";
bool mybool = System.Convert.ToBoolean(str);
Run Code Online (Sandbox Code Playgroud)

布尔到字符串:真到真

bool mybool = true;
string str = System.Convert.ToString(mybool);

//or

string str = mybool.ToString();
Run Code Online (Sandbox Code Playgroud)

bool.Parse 期望一个参数,在这种情况下是 str,even。

Convert.ToBoolean 需要一个参数。

bool.TryParse 需要两个参数,一个条目(str)和一个输出(结果)。

如果TryParse为真,则转换正确,否则发生错误

string str = "True";
bool MyBool = bool.Parse(str);

//Or

string str = "True";
if(bool.TryParse(str, out bool result))
{
   //Correct conversion
}
else
{
     //Incorrect, an error has occurred
}
Run Code Online (Sandbox Code Playgroud)