Shi*_*mmy 5 c# performance conditional
我有这个功能我必须实现:
protected override ValidationResult IsValid(
Object value,
ValidationContext validationContext
)
{
//Here is where I wanna test whether the following conversion is applicable
var x = Convert.ToInt64(value);
}
Run Code Online (Sandbox Code Playgroud)
我可以将该行包装在 try-catch 块中,或者使用其他方法来执行该测试,以下是其中之一:
var convertible = value as IConvertible;
if (convertible != null)
var x = convertible.ToInt64(null);
Run Code Online (Sandbox Code Playgroud)
执行此操作的最有效方法是什么?
在这里你可以定义一个默认值,如果解析(转换)适用,它将返回转换后的 int64 否则将返回默认值:
Int64 DefaultValue = 0;
Int64.TryParse(MyVar , out DefaultValue);
Run Code Online (Sandbox Code Playgroud)
IE:
Int64 DefaultValue = 0;
Int64.TryParse("1234" , out DefaultValue);
Run Code Online (Sandbox Code Playgroud)
默认值为 1234
Int64 DefaultValue = 0;
Int64.TryParse("test" , out DefaultValue);
Run Code Online (Sandbox Code Playgroud)
默认值将为 0
您还可以通过像这样声明变量来使其更短:
Int64.TryParse("123" , out Int64 DefaultValue);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7517 次 |
最近记录: |