我刚遇到最奇怪的事情,我有点心思=此刻...
下面的程序编译得很好,但是当你运行它时,你会RuntimeBinderException在尝试阅读时得到一个Value.'object' does not contain a definition for 'Value'
class Program
{
interface IContainer
{
int Value { get; }
}
class Factory
{
class Empty : IContainer
{
public int Value
{
get { return 0; }
}
}
static IContainer nullObj = new Empty();
public IContainer GetContainer()
{
return nullObj;
}
}
static void Main(string[] args)
{
dynamic factory = new Factory();
dynamic container = factory.GetContainer();
var num0 = container.Value; // …Run Code Online (Sandbox Code Playgroud)