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