为什么我在使用动态时能够在静态上下文中访问非静态方法

时间:2015-07-27 12:22:34

标签: c# visual-studio-2013

以下代码:

class Program
{
    static void Main(string[] args)
    {
        dynamic d = 0;

        int x = Test.TestDynamic(d);
        int y = Test.TestInt(0);
    }
}

public class Test
{
    public int TestDynamic(dynamic data)
    {
        return 0;
    }

    public int TestInt(int data)
    {
        return 0;
    }
}

在Visual Studio 2013(Update 5)中运行时,使用Test.TestInt

在行上引发编译时错误
  

"非静态字段,方法或者需要对象引用   。属性"

但不会在Test.TestDynamic行上引发相同的错误。预计它会因运行时错误而失败。

相同的代码在Visual Studio 2015中的两行上都会引发编译时错误。

为什么在Visual Studio 2013中没有引发相同的编译时错误?

1 个答案:

答案 0 :(得分:-1)

如果不创建对象实例,则无法访问属性/方法。

$ sudo mkdir /usr/local/bin