今天我注意到我们可以定义一个名为varor 的类dynamic.首先,我认为这是不可能的,因为这些是特殊的关键字,不能用作Class name.但是后来我尝试了,我很惊讶.这是一个奇怪的情况,当我定义两个类:
class var
{
}
class dynamic
{
}
Run Code Online (Sandbox Code Playgroud)
并像这样使用它们:
它没有给我任何错误.但是当我尝试运行我的程序时它会出现这个错误:
无法将类型字符串隐式转换为动态
但是您可能已经注意到,我的dynamic课程表现得像一个标准的C#课.当我尝试这个时:
dynamic d = new dynamic();
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
无法实例化动态对象.
我们来看看吧 var:

在这种情况下,var仍被评估为隐式类型定义关键字,我的变量类型推断为字符串.(注意它的颜色是绿色而不是蓝色,这是类名颜色).但是当我运行程序时,它给了我相同的异常:
无法将类型字符串隐式转换为var
但有趣的是,当我尝试创建一个像这样的新var实例时:
var d = new var();
Console.WriteLine(d.GetType());
Run Code Online (Sandbox Code Playgroud)
它没有给我任何异常,我得到这个输出:
ConsoleApplication3.var
Run Code Online (Sandbox Code Playgroud)
现在毕竟这些我confused.I'm想知道是什么样的区别就在这里,为什么编译器让我们创建一个名为类var和dynamic,它不给我,当我创建一个类名为动态任何错误,但如果我尝试创建动态的实例我收到了一个错误.但是如果我尝试创建一个var实例,它不会给我任何错误.这不是那么令人困惑吗?我在等待清楚的解释.
注意:抱歉我的英语和语法错误.
| 归档时间: |
|
| 查看次数: |
94 次 |
| 最近记录: |