我知道该怎么做:
Class class = new Class();
class.Accessor
我不知道该怎么做:
class.Property.Accessor
class.Property.Subproperty.Accessor
class.Property.Subproperty.YetAnotherSubproperty.Accessor
比喻示例:
ListBox.Items.Count
一个类比来帮助解释(不要从字面上理解),我知道如何创建ListBox,我知道如何创建Count,但我不知道如何创建Item
答案 0 :(得分: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;
答案 1 :(得分: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);
答案 2 :(得分:0)
我不确定我是否理解你的问题。但在你的类比中,Items是ListBox的属性/字段,属性/字段的类型可能是某些集合。该集合具有Count属性。
答案 3 :(得分: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; } }
}