Zo *_*Has 7 .net c# coding-style
C#中类型转换的最佳实践是什么?
int temp=System.ConvertToInt32(Request.QueryString["Id"]);
if (temp!=null)
{ // logic goes here }
Run Code Online (Sandbox Code Playgroud)
如果Id以某种方式变成'abc',则会失败
除了if else语句之外,请建议使用三元运算符和其他单行语句(比如使用单行三元运算符).另外,你们更喜欢TryParse而非转换吗?为什么会这样?有你的发言人.
TryParse 具有明显的优势,在失败的情况下,它将返回false而不是抛出异常.
标准模式将是这样的:
int value;
if (int.TryParse(Request.QueryString["Id"], out value))
{
// Use value
}
else
{
// Do whatever you want on failure
}
Run Code Online (Sandbox Code Playgroud)
现在,它也是值得铭记,你可以给int.TryParse一个IFormatProvider和NumberStyles-例如,你可能要指定CultureInfo.InvariantCulture为IFormatProvider如果这是真正的意思是自动生成的ID(而不是由用户输入).
如果你想有效地拥有"默认值",你可以编写一个这样的辅助方法:
public static int? NullableTryParseInt32(string text)
{
int value;
return int.TryParse(text, out value) ? value : (int?) null;
}
Run Code Online (Sandbox Code Playgroud)
然后您可以像这样使用它:
int value = NullableTryParseInt32(text) ?? 10;
Run Code Online (Sandbox Code Playgroud)
或者你可以写一个采用默认值的方法,当然:)
| 归档时间: |
|
| 查看次数: |
2788 次 |
| 最近记录: |