2014-03-26 71 views
2

我是新来的.Net,我只是看到这个代码,没有任何意义,我(略有删节):构造没有定义

namespace test 
{ 
    public class sub : super 
    { 
     public sub(string text); 
    } 
} 

正如你可以看到,有一个构造函数有一个参数,但没有实现一个定义。这是如何运作的?我的猜测是,它不知何故与超类有关,但我不知道如何,并且我还没有能够在Google上找到任何东西。

编辑:进出口运行这VS2010,我只注意到标签在标题[from metadata]。也许这是为什么?

+1

该代码不能编译。您是否使用反编译器来查看此代码? –

+0

@ Selman22我不会期待它,因为超级没有定义。无论哪种方式,我找出了为什么会发生这种情况 - 它是因为我在查看元数据而不是实际的源代码 –

+0

这只是代码的反编译的“界面”(这是“元数据”的意思) – andyp

回答

3

如果从元数据,它不会告诉你的方法的实现。

7

那不是代码。

这就是文本看起来有点像代码根据程序集中的元数据。当IDE无法访问有问题的源代码时,您会看到这一点(例如,您在引用程序集中的方法上按F12)。它提供了来自该方法的方法签名,属性,字段等类型,而不提供任何实际的实现。

正如你写的,你发布的代码甚至不会在C#中编译。

+0

注意,如果您想要看你需要得到一个[反编译器]的代码(http://stackoverflow.com/questions/4480091/c-sharp-decompilers),或者如果你正在寻找一个内置到.NET运行时本身的类,你可以另请参阅http://referencesource.microsoft.com/上的源代码 –

0

它看起来像代码,但它是基于程序集中元数据的文本。这意味着IDE无法访问有问题的源代码。

相关问题