C# 4.0新特性-索引属性
2010-09-30 22:35:20 来源:WEB开发网索引属性的使用
说到底,其实索引属性只是个语法糖而已,编译器和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
- ››索引色在Photoshop中的制作方式
- ››索引覆盖和DB2查寻性能
- ››索引存储关系到数据库的运行效率
- ››索引在ORACLE中的应用分析
- ››特性信息
- ››属性选择符Attribute Selectors
- ››索引分析和优化解决方案
- ››索引视图
- ››索引性能优化实例
- ››属性列表的开发
- ››属性的提取
- ››属性的编辑
更多精彩
赞助商链接