我只需要建议确保哪种方法更好
1)
byte flag = 2;
byte.TryParse(strFlag, out flag);
2)
byte flag;
if (!byte.TryParse(strFlag, out flag))
{
flag = 2;
}
感谢!!!
答案 0 :(得分:7)
如果flag
失败,我假设您要将TryParse
设置为2。
第一种方法是错误的。如果失败,它将用0覆盖您的值(因为这是byte
类型的默认值)。您应该使用第二种解决方案。
答案 1 :(得分:1)
显然这是方法#2。
原因是#1将使用类型的默认值覆盖变量的值(在本例中为0)
答案 2 :(得分:1)
TryParse
将在您的示例中执行以下操作:
strFlag
是有效的byte
,请对其进行解码并将flag
设置为true
。返回flag
。0
设置为false
并返回flag
。请注意,这意味着TryParse
始终将flag
设置为2
。
如果您希望{{1}}在默认情况下为{{1}},则需要使用后面的语法。
答案 3 :(得分:0)
第二个。
将out
参数传递给方法后,该方法可以执行任何想要的操作。
答案 4 :(得分:0)
2件不同的事情
在后者中你有一个区域:“如果失败将会怎样做”
在前者你没有它。 - 它将使用默认值覆盖该值。