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)
就CLR而言dynamic,类型变量实际上是类型的变量object.它只会影响编译器,这会使使用dynamic表达式的任何操作都经过执行时绑定.
绑定过程本身将使用额外的局部变量等(看看ILDASM,Reflector或类似的东西,你会被交错)但就dynamicVar其本身而言,你得到的代码就像有一个object变量 - 适当的拳击为了int和bool价值观.
| 归档时间: |
|
| 查看次数: |
1687 次 |
| 最近记录: |