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

C# 4.0新特性-索引属性

 2010-09-30 22:35:20 来源:WEB开发网   
核心提示: 索引属性的使用说到底,其实索引属性只是个语法糖而已,C# 4.0新特性-索引属性(4),编译器和CLR跟以前比并没有什么变化,虽然如此,为了向后兼容,使得以前旧的代码仍能正常工作,不过它确实能简化我们代码的书写,所有以前你在与COM交互时候调用get_X()或者set_X()的方法

索引属性的使用

说到底,其实索引属性只是个语法糖而已,编译器和CLR跟以前比并没有什么变化,虽然如此,不过它确实能简化我们代码的书写。所有以前你在与COM交互时候调用get_X()或者set_X()的方法,现在都可以通过X[]了,e.g.

1 // C# 3.0
2 excel.get_Range("A1").set_Value(Type.Missing, "ID");
3 // C# 4.0
4 excel.Range["A1"].Value = "ID";

还是上面提到的Scott Hanselman在Beta1发布时候写的例子,在Beta2之后我们可以更简单了:

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

代码是不是简化很多?虽然上面代码本质上是一样的,不过它确实看起来更加简洁。如果你需要经常与COM打交道,相信你应该会很喜欢索引属性的。另外,目前索引属性不仅支持静态代码,还支持动态代码。

总结

由于C# Team并不想在C#中加入索引属性这个特性支持(尽管VB支持),你可以参考关于Anders大大的这篇采访视频, 它是在后期由于要求对COM有更好的支持才被迫加上的。所以这个特性并没有在编译器或CLR内部做什么大的改变,它仅仅是个语法糖,并且实现得很有限。首先,它只能用在COM中,在普通的C#代码中你无法声明和定义这个特性,所以这也导致它的使用范围相当有限,可能很多人甚至都不会接触到;其次,它只是让用户看起来像调用索引属性,实际上则是通过get_X和set_X方法获取属性。最后,为了向后兼容,使得以前旧的代码仍能正常工作,你也可以选择继续使用get_X()和set_X()方法来操作属性。

希望本文能让你对索引属性有所了解!

出处:http://jujusharp.cnblogs.com

上一页  1 2 3 4 

Tags:特性 索引 属性

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