- 关 键 词:
- access
QQRead:http://www.qqread.com/csharp/j303871.html
最后输出为:
更多内容请看SQL Server 索引和查询专题专题,或进入讨论组讨论。
作者:jackyrong 来源:blog
c#中的索引器是新增加的,和属性有些不同。在c#中,属性可以是这样的:
class person {
private string firstname;
public string FirstName
{
get {return firstname;}
set {firstname = value;}
}
}
属性声明可以如下编码:
Person p = new Person();
p.FirstName = "TOM";
Console.WriteLine (p.FirstName);
属性声明倒更像是域声明,只不过它还声明了两个特殊的成员,按照微软的说法就是所谓的访问函数(accessor)。当某一表达式的右边调用属性或者属性用作其他子程序(或者函数)的参数时即会调用get访问函数。反之,当表达式左边调用属性并且通过隐式传递value参数设置私有域值的情况下就会调用set访问函数。
索引器(Indexer)是C#引入的一个新型的类成员,它使得对象可以像数组那样被方便,直观的引用。索引器非常类似于我们前面讲到的属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。下面是个例子:
using System;
namespace IndexerExample
{
Class MyPreviousExp
{
private string[] myCompanies = new string[10];
//index creation
public string this[int index]
{
get
{
if(index <0 or index >= 6)
return "null";
else
return myCompanies[index];
}
set
{
if(!(index <0 or index >= 10))
myCompanies[index] = value;
}
}
}
Class myMainClass
{
public static void Main()
{
myPreviousExp indexerObj = new myPreviousExp();
indexerObj[0] = "AMS"
indexerObj[3] = "HCL"
indexerObj[5] = "ACC"
for(int i=0; i<10; i++
{
Console.WriteLine(" My Companies{0} : {1} ",i,indexerObj[i]);
}
}
}
}
可见,我们象通过数组那样,访问到了其中的元素,而通过
myPreviousExp indexerObj = new myPreviousExp();
建立了索引器,再通过
indexerObj[0] = "AMS"
indexerObj[3] = "HCL"
indexerObj[5] = "ACC"
设置值namespace IndexerExample
{
Class MyPreviousExp
{
private string[] myCompanies = new string[10];
//index creation
public string this[int index]
{
get
{
if(index <0 or index >= 6)
return "null";
else
return myCompanies[index];
}
set
{
if(!(index <0 or index >= 10))
myCompanies[index] = value;
}
}
}
Class myMainClass
{
public static void Main()
{
myPreviousExp indexerObj = new myPreviousExp();
indexerObj[0] = "AMS"
indexerObj[3] = "HCL"
indexerObj[5] = "ACC"
for(int i=0; i<10; i++
{
Console.WriteLine(" My Companies{0} : {1} ",i,indexerObj[i]);
}
}
}
}
可见,我们象通过数组那样,访问到了其中的元素,而通过
myPreviousExp indexerObj = new myPreviousExp();
建立了索引器,再通过
indexerObj[0] = "AMS"
indexerObj[3] = "HCL"
indexerObj[5] = "ACC"
最后输出为:
mycompanies 0 : AMS
myCompanies 1 :
myCompanies 2 :
myCompanies 3 : HCL
myCompanies 4 :
myCompanies 5 : ACC
myCompanies 6 : null
myCompanies 7 : null
myCompanies 8 : null
myCompanies 9 : null
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- SQL Server 索引和查询专题 (3324篇文章)
- C# 3.0新特性之扩展方法 (1次浏览)
- Windows Shell 开发:从“桌面”开始展开 (0次浏览)
- 实验分析C#中三种计时器使用异同点 (0次浏览)
- C#调用QTP自动化对象模型的实例 (0次浏览)
- 利用 C# 实现任务栏通知窗口 (0次浏览)
- 深入C#学习系列之不可小瞧的using关键字 (0次浏览)
- 如何用.NET技术在线生成网站LOGO (0次浏览)
- C#实现遗传算法 模拟花朵的进化 (0次浏览)
- c#里的运算符重载 (0次浏览)
- QTP调用自己开发的.net类库 (0次浏览)



