2014-03-26 72 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無法訪問有問題的源代碼。

相關問題