Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 属性如何具有属性和方法?_C#_.net_Asp.net - Fatal编程技术网

C# 属性如何具有属性和方法?

C# 属性如何具有属性和方法?,c#,.net,asp.net,C#,.net,Asp.net,我很惊讶地看到属性可以有更多的属性和方法。为了更好地理解它,让我们举一个例子: Panel1.Controls.Add();// Here Panel is object and Controls is Property and Add() is a Method. Panel1.Controls.Count;// Here Panel is object and Controls is Property and Count is Property. 有人能解释一下我们如何在课堂上创造这样的行

我很惊讶地看到属性可以有更多的属性和方法。为了更好地理解它,让我们举一个例子:

Panel1.Controls.Add();// Here Panel is object and Controls is Property and Add() is a Method.
Panel1.Controls.Count;// Here Panel is object and Controls is Property and Count is Property.
有人能解释一下我们如何在课堂上创造这样的行为吗

谢谢。

Controls
是一个返回
ControlCollection
的属性,因此您的第二条语句如下所示:

ControlCollection collection = Panel1.Controls;
int count = collection.Count;

这更有意义吗?它没有调用属性本身的下一个方法/属性;它根据对属性求值的结果调用它。

Controls
是一个返回
ControlCollection
的属性-因此,您的第二条语句如下所示:

ControlCollection collection = Panel1.Controls;
int count = collection.Count;

这更有意义吗?它没有调用属性本身的下一个方法/属性;它根据评估属性的结果调用它。

它是面向对象编程的基础

属性可以是具有自己属性的复杂类型

class Car{

    Engine CarEngine {get ; set; }
}


这辆车有一个发动机。引擎有它自己的属性。因此,如果您有一个汽车实例,您可以执行myCar.CarEngine.Cycles

这是面向对象编程的基础

属性可以是具有自己属性的复杂类型

class Car{

    Engine CarEngine {get ; set; }
}


这辆车有一个发动机。引擎有它自己的属性。因此,如果你有一辆汽车的实例,你可以做
myCar.CarEngine.cylumes

控件是Panel1的属性,但该属性是对象类型,任何对象都可以有属性和方法。

控件是Panel1的属性,但该属性是对象类型,任何对象都可以有属性和方法。

我想你应该进一步阅读面向对象。@jams类的对象可能涉及属性,而属性又可以是类的对象,因此这里的控件是ControlCollection类的对象,但我们不能直接实例化它,而可以是其他类的父类的.net控件控件使用此类来维护父控件中包含的子控件的列表。我想您应该进一步阅读有关面向对象的内容。@jams类的对象可能涉及属性,这些属性也可以是类的对象,因此这里的控件是ControlCollection类的对象,但我们不能直接实例化它.net控件(可以是其他控件的父控件)使用此类来维护父控件中包含的子控件的列表