False如果usable除了True(除了bool)以外的任何东西,我怎么能返回下面的代码,目前我的代码抛出异常usable不是bool.
if (!Boolean.Parse(readValue("Useable"))) return true;
return (defined.ContainsKey(key) || (key == "Useable"));
Run Code Online (Sandbox Code Playgroud)
Ken*_*art 12
bool isUseable;
bool.TryParse(readValue("Useable"), out isUseable);
Run Code Online (Sandbox Code Playgroud)
这是最简单,最快速的方法:
return "True".Equals(readValue("Useable"), StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
注: Boolean.TryParse是不是一个很好的选择,因为它不仅仅是一个简单的字符串比较显著慢.请查看此测试的结果(使用Jon Skeet的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);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
============ Boolean.TryParse vs. String comparison ============
tryParse 12.118 6.03
stringComparison 21.895 1.00
Run Code Online (Sandbox Code Playgroud)
bool isUseable;
if (bool.TryParse(readValue("Useable"), out isUseable))
return isUseable;
return false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2665 次 |
| 最近记录: |