typeof关键字可以用于变量类型的声明吗?
<<C#入门经典>>上面说typeof可以用于Enum.Parse函数。我的问题是,其他的场景下,typeof怎么用?
下面这段小程序有编译的错误:
enum e1 : int
{
Monday = 1
};
class Program
{
static void Main(string[] args)
{
e1 a=e1.Monday;//OK
string s="Monday";
e1 c=(e1)Enum.Parse(typeof(e1),s);//OK
int i=2;
typeof(i) b=i;//编译错误
}
}
也就是typeof(e1) b=e1.Monday;错了。我是想不管i是什么类型,b就和它是一样的类型。那么今后即便i的类型改了,b的类型也自动就修改了,有点C++11里面decltype的味道。
C#的typeof能做到这点么? 我的理解是否有偏差呢?
谢谢!
------解决方案--------------------typeof 参数 不能为变量
------解决方案--------------------typeof()传入的参数是class,得到的是Type t,
比如
typeof(int)
和
int i = 0; i.GetType();
对于你的“不管i是什么类型,b就和它是一样的类型”,你可以尝试用var b = i;这样