jwa*_*980 3 c# visual-studio visual-studio-2015
我发现我经常写这样的代码:
public void some_callback(object sender, SomeArgs args)
{
if (sender is ObjectA)
{
var objA = sender as ObjectA;
//do something
}
else if (sender is ObjectB)
{
var objB = sender as ObjectB;
//do something else
}
}
Run Code Online (Sandbox Code Playgroud)
或类似地:
public void some_callback(object sender, SomeArgs args)
{
var objA = sender as ObjectA;
if (objA != null)
{
//do something
}
var objB = sender as ObjectB;
if (objB != null)
{
//do something else
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是,如果有一种快捷方式可以在C#中处理这个问题?有点像:
public void some_callback(object sender, SomeArgs args)
{
with (var obj = sender as ObjectA)
{
//do something
}
else with (var obj = sender as ObjectB)
{
//do something else
}
}
Run Code Online (Sandbox Code Playgroud)
您要问的主要是将在C#7.0中添加的模式匹配.请参阅说明.你可以写:
if (expr is Type v) { // code using v }
Run Code Online (Sandbox Code Playgroud)
但那是下一个版本.
| 归档时间: |
|
| 查看次数: |
412 次 |
| 最近记录: |