【发布时间】:2013-12-20 11:36:29
【问题描述】:
今天我在想,制作一些接口类型的匿名对象会很整洁,我在 SO 上看到我不仅仅是一个。
在我开始检查发生了什么之前,我编写了一些代码,如下所示。 令我高兴的是,它编译时使用的是 .net 框架 4,我知道没有办法让匿名对象实现接口,但我没有看到 VS 对此代码的抱怨。
当我把大括号 intelisense 找到我的界面的“属性”时,更好的是,就像它是有效的代码一样。
为什么这个片段在编译并且运行时给出空引用异常?
namespace test
{
class Program
{
static void Main(string[] args)
{
Holder holder = new Holder { someInterface = { Property = 1 } };
Console.WriteLine(holder.someInterface.Property);
}
}
class Holder
{
public ISomeInterface someInterface{get; set;}
}
interface ISomeInterface
{
int Property { get; set; }
}
}
【问题讨论】:
标签: c#