Welcome

首页 / 软件开发 / .NET编程技术 / .NET,你忘记了么?(七)—— 从a?b:c谈起

.NET,你忘记了么?(七)—— 从a?b:c谈起2011-04-12 博客园 飞林沙1.摘要

在这篇文章中,我会通过IL去分析一个简单的语句。

如果觉得实在简单,可以略过。

2.引子

事情是这样的,同事写了一段类似这样的代码:

class Program
{
static void Main(string[] args)
{
object o = new object();
int i;
Int32.TryParse(Console.ReadLine(), out i);
o = i > 3 ? null : 3.5;
}
}

当然不是在控制台程序中,我在这里只是写出个模拟。

然后系统报出了一个这样的错误。

3. 错误分析

同事很诧异地问我,这是为什么啊?

他给出的理由是object是一切类的父类,那么我把3.5或者null赋给他都没有问题啊,那 这个问题是怎么回事呢?

我意识到自己的语言表达能力远不如代码有说服力,于是,写段代码,然后请出IL。