嵌套属性是如何dataTable.Columns[0].ColumnName
创建的?
问问题
181 次
4 回答
6
它们本身不是“创建”的,它只是Columns
某种类型的对象的集合,并且该类型公开了 property ColumnName
。
class Some
{
string Property { get; set; }
}
class Foo
{
public List<Some> Objects { get; set; }
}
foo.Objects[0].Property
于 2012-09-13T13:16:34.270 回答
1
dataTable.Columns[0].ColumnName
结合了 a 的概念和 aproperty
的概念indexer
:
- 物体
dataTable
公开了一个名为Columns
Columns
属于集合类型,因此indexer
使用 an 来寻址该集合中的某个元素,Columns[0]
对于第一个(第一个加零),Columns[1]
对于第二个(第一个加一),aso- 这些元素中的每一个都是一个对象,暴露了属性
ColumnName
所以dataTable.Columns[0].ColumnName
应该读作“从对象数据表的集合属性列中获取第一个元素的属性列名”
于 2012-09-13T13:21:53.203 回答
1
Property returns an object which has own properties and so on
于 2012-09-13T13:17:32.653 回答
1
在您的示例中,dataTable.Columns 是一个简单的索引属性,它返回另一个对象,该对象具有名为 ColumnName 的属性。
例如:
class Table
{
private Column[] columns;
public Column Columns[int index]
{
get
{
return columns[index];
}
}
}
class Column
{
public string ColumnName
{
get;
set;
}
}
(不是 100% 确定语法,我有一段时间没用过 C#了)
于 2012-09-13T13:18:49.013 回答