6

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

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

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

1 回答 1

5

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

该绑定过程本身将使用额外的局部变量等(看看 ILDASM、Reflector 或类似的东西,你会被错开)但就其dynamicVar本身而言,你拥有的代码就像拥有一个object变量 - 使用适当的装箱对于intbool值。

于 2013-09-12T07:30:49.283 回答