如何为动态变量.net 4.0分配内存?

Dee*_*pak 6 .net c#-4.0

dynamic是隐式还是显式类型分配?如何在运行时在以下示例的上下文中为动态变量进行内存分配.

由于C#是类型安全的语言,因此对类型安全的影响.

public class Program
{
    static void Main(string[] args)
    {                                                
        dynamic dynamicVar = 10;
        dynamicVar = true;
        dynamicVar = "hello world";
        // compiles fine
        int index = dynamicVar.IndexOf("world");                        
    }        
} 
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

就CLR而言dynamic,类型变量实际上是类型的变量object.它只会影响编译器,这会使使用dynamic表达式的任何操作都经过执行时绑定.

绑定过程本身将使用额外的局部变量等(看看ILDASM,Reflector或类似的东西,你会被交错)但就dynamicVar其本身而言,你得到的代码就像有一个object变量 - 适当的拳击为了intbool价值观.