using System;
public class A { }
public class Test
{
static void Main()
{
string A = "ABC";
Type t = typeof(A);
Console.WriteLine(A); //"A"
Console.WriteLine(t); //"A" 打印System.Type对象的ToString
}
}
如果说,在Test.Main中字符串A的范围覆盖了类型A的话,那么为什么在使用typeof操作符时会引用到类型A的标识符呢?请大家帮我解释心中的疑团?烦您讲的详细一点!
typeof 中只能填入类型,而不能填入变量,编译器在这里会去找名字为A的类型而不是变量,所以引用到了类型A的标识符。
string a = "ABC";
Type t = typeof(a);
上面语句你试一下,无法编译通过的。
楼上正解
而 Console.WriteLine(A); 不能是直接的class