如果False
除usable
之外的任何内容(True
以外的任何内容),我的下面代码如何返回bool
,目前我的代码会抛出异常{{ 1}}不是布尔。
usable
答案 0 :(得分:12)
bool isUseable;
bool.TryParse(readValue("Useable"), out isUseable);
答案 1 :(得分:7)
这是最简单,最快捷的方法:
return "True".Equals(readValue("Useable"), StringComparison.OrdinalIgnoreCase);
注意: Boolean.TryParse
不是是一个不错的选择,因为它比简单的字符串比较慢得多。请参阅此测试的结果(使用Jon Skeet's BenchmarkHelper):
using System;
using BenchmarkHelper;
class Example
{
static void Main()
{
var results = TestSuite.Create
("Boolean.TryParse vs. String comparison", "True", true)
.Add(tryParse)
.Add(stringComparison)
.RunTests()
.ScaleByBest(ScalingMode.VaryDuration);
results.Display(ResultColumns.NameAndDuration | ResultColumns.Score,
results.FindBest());
}
static Boolean tryParse(String input)
{
Boolean result;
Boolean.TryParse(input, out result);
return result;
}
static Boolean stringComparison(String input)
{
return "True".Equals(input, StringComparison.OrdinalIgnoreCase);
}
}
<强>输出:强>
============ Boolean.TryParse vs. String comparison ============
tryParse 12.118 6.03
stringComparison 21.895 1.00
答案 2 :(得分:5)
bool isUseable;
if (bool.TryParse(readValue("Useable"), out isUseable))
return isUseable;
return false;
答案 3 :(得分:1)
怎么样:
return (readValue("Useable") == "TRUE");
由于Drew的评论而被编辑
答案 4 :(得分:0)
var result = Equals(true, myobject);