对我来说很重要的是我的语法不会让其他开发人员感到困惑.
在这个例子中,我需要知道参数是否是某种类型.
我以前打过这个; 什么是最优雅,最清晰的测试方法"不是"?
方法1:
void MyBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
if (!(e.parameter is MyClass)) { /* do something */ }
}
Run Code Online (Sandbox Code Playgroud)
方法2:
void MyBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
if (e.parameter is MyClass) { } else { /* do something */ }
}
Run Code Online (Sandbox Code Playgroud)
方法3:
void MyBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
var _Parameter = e.parameter as MyClass;
if (_Parameter != null) { /* do something */ }
}
Run Code Online (Sandbox Code Playgroud)
方法4:
void MyBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
var _Type = typeof(MyClass);
switch (e.parameter.GetType())
{
case _Type: /* do nothing */; break;
default: /* do something */; break;
}
}
Run Code Online (Sandbox Code Playgroud)
[编辑]方法5:
void MyBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
if ((e.parameter is MyClass) == false) { /* do something */ }
}
Run Code Online (Sandbox Code Playgroud)
哪种方式最直接?
小智 15
这显然是个人意见和风格的问题,所以没有正确的答案,但我认为这是最清楚的:
void MyBinding_Executed(object sender, ExecutedRoutedEventArgs e)
{
if ((e.parameter is MyClass) == false) { /* do something */ }
}
Run Code Online (Sandbox Code Playgroud)
该== false仅仅是更明显比!
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |