How do I safely convert a bool into a string?
只有当对象是布尔值时,我才需要将对象转换为字符串。
我是这样做的:
1 2 3 4 5 6 7 8 9 10 11
| public object Convert (object oldType )
{
bool value;
if (oldType is bool)
{
value = (bool)oldType ;
if (value)
return"1";
else
return"0";
} |
安全吗?
- 如果它不是布尔值会发生什么?
- 返回值的更快方法是return value?"1":"0";
- 好的,什么目的?
- @尽管如此,威尔德斯罗伯特仍需要演员阵容。return (bool)value ?"1" :"0";
- Convert.ToBoolean()或bool.TryParse()有什么问题吗?
- 如果您想转换成字符串,也许您应该考虑一个返回字符串的方法。
- 因为这个问题几乎完全是基于意见的,并且受到问题中未包含的要求的影响,所以我建议关闭这个问题。有些人可能会同意,这是可以的,鉴于某些情况和保证的投入,而其他人可能会说,这是一个非常糟糕的想法和讨论,这可能会导致非建设性的辩论,而不是基于事实的决定和明确的答案,你的问题。
- 我会用胰蛋白酶。
- 太主流了,斯派克斯。@m4tt3,您可以使用typeof()类似的typeof(oldtype)==typeof(bool)来检查它是否是bool;
- @纳撒娜,我只是指回归,而不是全部
- 我看不出这是基于什么意见或不清楚。他想完成的事情似乎相当简单。如果对象是布尔值,则返回布尔值的字符串表示形式。这真的很难理解吗?
- @Mikaeld&250;Ibolinder你确定typeof(oldType)吗?
- 就可读性而言,is运算符可能比typeof更好,尽管typeof可能更快stackoverflow.com/questions/184681/is-vs-typeof
- typeof不适用于变量名,它只适用于类型
- @斯派克的行动不想转换成布尔。他希望获取一个在运行时可能是bool的对象,并输出一个字符串表示形式(如果是的话)。我假设如果不是bool,方法应该只传递原始对象。
- @梅森:"没事吧?"显然是用错误的方式摩擦人。
- @佛得斯罗伯特,不,我没有。显然,我的代码是不可编译的,因为我应该编写oldType.getType()。
您可以在不使用临时变量的情况下进行简化:
1 2 3 4 5 6 7 8
| public object Convert (object value)
{
if (value is bool)
{
return (bool)value ?"1" :"0";
}
return value;
} |