2013-01-13 32 views
-1

在java中,我可以編寫這樣的代碼。類中的C#代碼塊

public class Map1 extends MapInfo { 

    { 
     // I can access fields of the super class 
    } 

} 

目前在sharpdevelop中編寫此代碼的代碼完成沒有出現。

public class Map1 : MapInfo { 

    { 
     // It gives error. 
     // Invalid token '{' in class, struct, or interface member declaration (CS1519) - C:\Users\sriharshach....st\Map.cs:10,3 
    } 

} 

有沒有辦法在c#中編寫相同的代碼? (即,不是在構造函數)

感謝

+3

方法或構造函數名稱如果字段是'public'或'protected'你應該能夠訪問它們,就好像它們是派生類的字段。超類的'private'字段只能由超類自身訪問。 – example

+0

這段代碼應該是什麼?一個沒有構造函數/方法的代碼塊?代碼何時運行? – CodesInChaos

+0

你能否澄清你正在嘗試做什麼或提供更具體的例子?在C#中,只要沒有標記爲私有,就可以訪問超類的字段而不做任何特殊的事情。 – JLRishe

回答

3

這將是

public class Map1 : MapInfo 
{ 
    // You can access protected and public fields/methods from the SuperClass 
    // and internal + protected internal 
} 

編輯:有太多的花括號和搞掂評論

+0

另外'內部'和'受保護的內部':) – SergeyS

0

答案,因爲在Java中,依賴於字段的訪問級別。假設這些字段不是私有的,您應該能夠訪問超類字段,就像它們屬於子類一樣。

0

在C#中,您可以在派生類中的任意位置訪問超類的非私有字段。

在C#中的土地
0

在C#中,你可以繼承/使用:實現基類,不能使用{ }立即在一個班級中。你需要隨後{}

例如

public class ParentFoo { 
    public Parentfoo() {} 
} 

public class ChildFoo:ParentFoo -- inheriting parentfoo 
{ 
    public ChildFoo(){} 
}