山寨:不是最好的,是最适合我们的!欢迎体验山寨 中文版MSDN

Blog @ Blog

当华美的叶片落尽,生命的脉络才历历可见。 -- 聂鲁达

常用链接

统计

积分与排名

BBS

Blog

Web

最新评论

C# 属性 索引器 委托 事件学习笔记

属性是这样的成员:它们提供灵活的机制来读取、编写或计算私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们是称为“访问器”的特殊方法。这使得数据在可被轻松访问的同时,仍能提供方法的安全性和灵活性。

在本示例中,类 TimePeriod 存储了一个时间段。类内部以秒为单位存储时间,但提供一个称为 Hours 的属性,它允许客户端指定以小时为单位的时间。Hours 属性的访问器执行小时和秒之间的转换。

class TimePeriod
{
    
private double seconds;

    
public double Hours
    
{
        
get return seconds / 3600; }
        
set { seconds = value * 3600; }
    }

}


class Program
{
    
static void Main()
    
{
        TimePeriod t 
= new TimePeriod();

        
// Assigning the Hours property causes the 'set' accessor to be called.
        t.Hours = 24;

        
// Evaluating the Hours property causes the 'get' accessor to be called.
        System.Console.WriteLine("Time in hours: " + t.Hours);
    }

}

索引器允许类或结构的实例按照与数组相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。
在下面的示例中,定义了一个泛型类,并为其提供了简单的 get  set 访问器方法(作为分配和检索值的方法)。Program 类为存储字符串创建了此类的一个实例。

class SampleCollection<T>
{
    
private T[] arr = new T[100];
    
public T this[int i]
    
{
        
get
        
{
            
return arr[i];
        }

        
set
        
{
            arr[i] 
= value;
        }

    }

}


// This class shows how client code uses the indexer
class Program
{
    
static void Main(string[] args)
    
{
        SampleCollection
<string> stringCollection = new SampleCollection<string>();
        stringCollection[
0= "Hello, World";
        System.Console.WriteLine(stringCollection[
0]);
    }

}

索引器概述

  • 索引器使得对象可按照与数组相似的方法进行索引。

  • get 访问器返回值。set 访问器分配值。

  • this 关键字用于定义索引器。

  • value 关键字用于定义由 set 索引器分配的值。

  • 索引器不必根据整数值进行索引,由您决定如何定义特定的查找机制。

  • 索引器可被重载。

  • 索引器可以有多个形参,例如当访问二维数组时。


 

posted on 2009-02-13 12:00 isabc 阅读(858) 评论(0)  编辑 收藏 引用 所属分类: C#基础


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


广告信息(免费广告联系)

中文版MSDN:
欢迎体验