C#索引功能简单分析

开发 后端
这里介绍C#索引功能,为了演示一个索引的使用,我创建了一个小型的类,它能够解析一个主机名为IP地址——或一个IP地址列表。这个列表通过索引可以访问,你可以看一下代码的具体实现。

C#语言有很多值得学习的地方,这里我们主要介绍C#索引功能,包括介绍C#索引功能返回或按给出的index设置字符串等方面。

C#索引功能

你想过象访问数组那样使用索引访问类吗 ?使用C#索引功能,对它的期待便可了结。

语法基本上象这样:
◆属性
◆修饰符
◆声明
◆声明内容

具体的例子为

  1. public string this[int nIndex]  
  2. {  
  3. get { …… }  
  4. set { …… }  

C#索引功能返回或按给出的index设置字符串。它没有属性,但使用了public修饰符。声明部分由类型string和this 组成用于表示类的索引。

get和set的执行规则和属性的规则相同。(你不能取消其中一个。) 只存在一个差别,那就是:你几乎可以任意定义大括弧中的参数。限制为,必须至少规定一个参数,允许ref 和out 修饰符。

this关键字确保一个解释。索引没有用户定义的名字,this 表示默认接口的索引。如果类实现了多个接口,你可以增加更多个由InterfaceName.this说明的索引。

为了演示一个索引的使用,我创建了一个小型的类,它能够解析一个主机名为IP地址——或一个IP地址列表。这个列表通过索引可以访问,你可以看一下代码的具体实现。

  1. using System;  
  2. using System.Net;  
  3. class ResolveDNS  
  4. {  
  5. IPAddress[] m_arrIPs;  
  6. public void Resolve(string strHost)  
  7. {  
  8. IPHostEntry iphe = DNS.GetHostByName(strHost);  
  9. m_arrIPs = iphe.AddressList;  
  10. }  
  11. public IPAddress this[int nIndex]  
  12. {  
  13. get  
  14. {  
  15. return m_arrIPs[nIndex];  
  16. }  
  17. }  
  18. public int Count  
  19. {  
  20. get { return m_arrIPs.Length; }  
  21. }  
  22. }  
  23. class DNSResolverApp  
  24. {  
  25. public static void Main()  
  26. {  
  27. ResolveDNS myDNSResolver = new ResolveDNS();  
  28. myDNSResolver.Resolve("http://www.microsoft.com");  
  29. int nCount = myDNSResolver.Count;  
  30. Console.WriteLine("Found {0} IP's for hostname", nCount);  
  31. for (int i=0; i < nCount; i++)  
  32. Console.WriteLine(myDNSResolver[i]);  
  33. }  

【编辑推荐】

  1. C#类和结构简单介绍
  2. C# explicti和implicit详解
  3. C#编写ActiveX控件详细介绍
  4. C# StringBuilder和String浅析
  5. C#别名指示符学习经验
责任编辑:佚名 来源: cnbeta
相关推荐

2009-08-31 17:53:20

C#实现索引器

2009-09-01 17:32:04

C#版本控制

2009-08-31 18:24:26

编译C#文件

2009-08-26 18:00:07

C#内部类

2009-08-27 18:02:22

C#事件处理

2009-08-27 15:34:38

C#命名空间

2009-09-01 18:36:35

C#委托实例

2009-09-01 18:05:17

C#类型声明

2009-09-03 17:13:19

C#建立项目

2009-09-02 10:59:02

C#单路代理

2009-08-26 14:01:18

C#标识符

2009-08-31 16:01:31

C#和设计模式

2009-09-01 10:08:57

C#运算符

2009-08-27 10:44:21

C#静态变量

2009-09-04 10:07:42

C#完全限定名

2009-08-25 17:21:31

C#索引

2009-08-28 15:49:45

C#对INI文件操作

2009-08-28 15:19:17

C#实现缩略图

2009-09-02 18:03:19

C#实现泛型类

2009-09-08 09:31:54

c# CheckBox
点赞
收藏

51CTO技术栈公众号