看看什么类型是动态变量c#

Ton*_*Nam 3 c# dynamic

如何测试动态变量是否为双重例如?

我需要做类似的事情:

void someMethod(dynamic var1)
{
  if(var1.isDouble)
  {...
  }else if(var1 is int)
  // do something else....


}
Run Code Online (Sandbox Code Playgroud)

dle*_*lev 8

这种方法很好(即var1 is double),尽管这通常不是dynamic要完成的.更多的时候,你应该dynamic当你知道类型是什么,但它是很难或不可能显示,在编译时(如COM互操作场景下,ViewBag在MVC等),你可以只使用object,如果你想通过一个未知类型的变量.否则,运行时将在执行期间为您进行类型分析,如果不是您需要的话,这可能是一个很大的性能影响.

一般情况下,您可能希望将其dynamic用作全能容器,但这似乎不是其中之一.在这种情况下,为什么不具有多个方法重载,每个方法都采用所需的类型:

void someMethod(double d) { ... }
void someMethod(int i) { ... }
Run Code Online (Sandbox Code Playgroud)