-2

我知道该怎么做:

Class class = new Class();

class.Accessor

我不知道该怎么做:

class.Property.Accessor
class.Property.Subproperty.Accessor
class.Property.Subproperty.YetAnotherSubproperty.Accessor

类比示例:

ListBox.Items.Count

一个类比来帮助解释(不要从字面上理解),我知道如何创建ListBox,我知道如何创建Count,但我不知道如何创建Items

4

4 回答 4

1

就像是

class Animal
{
  // gets the heart of this animal
  public HeartType Heart
  {
    get
    {
      ...
    }
  }
}

class HeartType
{
  // gets the number of beats per minute
  public int Rate
  {
    get
    {
      ...
    }
  }
}

然后你a可以var a = new Animal();

int exampleRate = a.Heart.Rate;
于 2013-06-02T06:44:20.037 回答
0

我最近回答了类似的问题,但更多的是与称为FluentInterface样式的方法链接有关。

在您的情况下,您似乎正在尝试调用属于类型的属性/公共字段;并且这些类型以嵌套方式引用。考虑到这一点,这个想法可以被证明如下;

class Program
    {
        static void Main(string[] args)
        {
           var one=new LevelOne();
           Console.WriteLine(one.LevelTwo.LevelThree.LastLevel);

        }
    }

    internal class LevelOne
    {
        public LevelOne()
        {
            LevelTwo = LevelTwo ?? new LevelTwo();
        }
        public LevelTwo LevelTwo { get; set; }
    }
    internal class LevelTwo
    {
        public LevelTwo()
        {
            LevelThree = LevelThree ?? new LevelThree();
        }
        public LevelThree LevelThree { get; set; }
    }
    internal class LevelThree
    {
        private string _lastLevel="SimpleString";
        public String LastLevel { get { return _lastLevel; } set { _lastLevel = value; } }
    }
于 2013-06-02T09:00:21.410 回答
0

好吧,您的问题很神秘,但我会尝试。

子属性只是具有自己属性的其他类(或静态类)的实例。

例子:

class Class1
{
  public Class2Instance{get;set;} 

  public Class1()
  {
    Class2Instance =new Class2();     
  }
}

class Class2
{
  public string Greeting = "Hello";
}

//////
var c = new Class1();
Console.WriteLine(c.Class2Instance.Greeting);
于 2013-06-02T06:34:17.127 回答
0

我不确定我是否正确理解了您的问题。但是在您的类比中, Items 是 ListBox 的属性/字段,该属性/字段的类型可能是某个集合。该集合具有 Count 属性。

于 2013-06-02T06:37:03.677 回答