一周学会 C# (索引二)
C# 才鸟( QQ:249178521 )
4. 索引 vs. 数组
· ** 索引和数组的比较 ** ** **
w ** 索引可以使用非整型参数 ** ** **
w ** 索引可以被重载 ** ** **
w ** 索引可以是私有的 ** **_ _ ** ** **
w ** 索引不能有 ** **_ ref _ ** ** / out ** ** 型参数 ** ** **
** struct Matrix **
** { **
** ... **
** public double this [int row, int col] **
** { **
** get { ... } **
** set { ... } **
** } **
** public Row this [int row] **
** { **
** get { ... } **
** set { ... } **
** } **
** ... **
** } **
5. 索引 vs. 属性
· ** 索引和属性的比较 ** ** **
w ** 都只有 ** ** get ** ** 和 ** ** set ** ** 语句 ** ** **
w ** 没有静态索引 ** ** **
§ ** 可以有静态属性 ** ** **
w ** 索引是在类的层次上声明的 ** ** **
§ ** 属性是在字段的层次上声明的 ** ** **
** struct Row **
** { **
** ... **
** public double this [int col] **
** { **
** get { ... } **
** set { ... } **
** } **
** public int Length **
** { **
** get { ... } **
** } **
** ... **
** } **
属性和索引都能在接口中声明。
interface IRow
{
double this [int index] { get; set; }
int Length { get; }
}
6. 索引 vs. 函数
· ** 索引和函数的比较 ** ** **
w ** 函数可以没有参数 ** ** **
w ** 函数可以有 ** ** void ** ** 型返回值 ** ** **
w ** 索引只能包含 ** ** get/set ** ** 语句 **