如何测试动态变量是否为双重例如?
我需要做类似的事情:
void someMethod(dynamic var1)
{
if(var1.isDouble)
{...
}else if(var1 is int)
// do something else....
}
Run Code Online (Sandbox Code Playgroud)
这种方法很好(即var1 is double),尽管这通常不是dynamic要完成的.更多的时候,你应该dynamic当你不知道类型是什么,但它是很难或不可能显示,在编译时(如COM互操作场景下,ViewBag在MVC等),你可以只使用object,如果你想通过一个未知类型的变量.否则,运行时将在执行期间为您进行类型分析,如果不是您需要的话,这可能是一个很大的性能影响.
一般情况下,您可能希望将其dynamic用作全能容器,但这似乎不是其中之一.在这种情况下,为什么不具有多个方法重载,每个方法都采用所需的类型:
void someMethod(double d) { ... }
void someMethod(int i) { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2322 次 |
| 最近记录: |