2014-03-04 70 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();