WEB开发网
开发学院软件开发C语言 C# 4.0新特性-索引属性 阅读

C# 4.0新特性-索引属性

 2010-09-30 22:35:20 来源:WEB开发网   
核心提示:这篇文章我主要给大家介绍一个C# Team很少提及的一个关于C# 4.0的新特性--索引属性,文章主要从索引属性是什么,C# 4.0新特性-索引属性,为什么需要它,为什么C#又不完全支持它,dynamic是其中一种,而这里C# Team则通过索引属性改善上面提到的这些状况,目前C#索引属性的实现以及怎样使用它四个方面进

这篇文章我主要给大家介绍一个C# Team很少提及的一个关于C# 4.0的新特性--索引属性。文章主要从索引属性是什么,为什么需要它,为什么C#又不完全支持它,目前C#索引属性的实现以及怎样使用它四个方面进行介绍。

什么是索引属性

望文生义,索引属性就是指能根据索引值返回指定结果的属性,它是访问属性的原子操作,如 someObject.someProperty[index]。索引化属性跟普通属性差不多,唯一不同的是它多了一个额外的表示索引值的参数。这个新的特性加入到C# 4.0中比较晚,它在VS 2010 Beta1中都还没有,是在Beta2中才加入的新特性。

为什么我们需要它?

如果你经常跟COM打交道,你应该应该会遇到类似下面的代码(这段代码还是Scott Hanselman 在Beta1发布时候写的例子:):

1 var excel = new Excel.Application();
2 excel.Visible = true;
3 excel.Workbooks.Add();
4 excel.get_Range("A1").Value2 = "Process Name";
5 excel.get_Range("B1").Value2 = "Memory Usage";

这段代码还仅仅是一部分,实际上你可能会碰到更难缠的代码。e.g.

myObject.set_IndexedProperty(myObject.get_IndexedProperty(index) + 1)。它看起来真的很臃肿,为什么我们不可以这样来调用呢?myObject.IndexedProperty[index]++。

作为一个存在已久的模块,COM里面有很多很多像上面这种属性操作方法,它也使得程序员写出的与COM交互的代码看起来臃肿不堪。为了解决这种状况,C# 4.0中提出了很多改进C#与COM交互的方式,dynamic是其中一种,而这里C# Team则通过索引属性改善上面提到的这些状况,它使得程序员写出的代码更为简洁。

1 2 3 4  下一页

Tags:特性 索引 属性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接