2014-03-04 120 views
0

我試圖找到這個看似簡單的任務,但沒有成功。對不起,我是oop和c#的新手。如果它是微不足道的,請原諒。
我必須在以下課程中訪問verb
c中內部類的訪問成員#

public class testclass 
{ 
public class selector 
    { 
    public static string verb { get; set; } 
    } 
    //some other classes here 
} 

一個api類deserliazes並返回一個testclass對象。

var res = apicall(); //retruns testclass object 

我想訪問動詞並檢索它的值。如何才能做到這一點?

+1

您是否嘗試過:在創建Selector實例後的'Selector.Verb'? –

+0

@Zaphod測試類有一個獨立的類文件。我必須在不同的文件中獲取res對象。我該怎麼做。 Selector.verb直接無效。 – Maxsteel

+1

'testclass.selector.verb'是有效的 - 雖然你應該修復名稱來匹配正常的命名約定:) –

回答

2

自認爲是一個靜態財產,那麼你訪問它爲:

string str = testclass.selector.verb; 

注意,接入無關的由apicall()返回的實例。


編輯:如果verb不是一個靜態成員,那麼你需要定義什麼地方訪問該成員的selector一個實例。例如:

public class TestClass 
{ 
    public class Selector 
    { 
      public string Verb{ get; set; } 
    } 

    public Selector SomeSelector {get; set;} 
} 

現在你有selector類型的成員,您可以訪問諸如:

var res = apicall(); 
var str = res.SomeSelector; 
+0

如何獲取該對象中返回的值? – Maxsteel

+1

@Maxsteel在這個對象中沒有任何價值。由於'verb'是一個靜態屬性,它的值是任何對象的_independent_。 –

+0

明白了。假設它不是靜態的,那麼我如何訪問它? – Maxsteel

1

,您可以訪問動詞:

testclass.selector.verb 

,因爲它是一個靜態屬性,這意味着它被定義爲這個特定的類型而不是一個對象。

但是,如果你想指向res對象的動詞,你需要爲res變量定義類型,否則編譯器不會讓你編譯這段代碼。例如:

testclass res = apicall();