前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[C#1] 5-属性

[C#1] 5-属性

作者头像
blackheart
发布2018-01-19 16:00:49
4410
发布2018-01-19 16:00:49
举报
文章被收录于专栏:blackheart的专栏blackheart的专栏

1.无参属性

当定义一个属性时,编译器会在生成的托管模块中产生一下3项:

1:get访问器方法,定义get时才有;

2:set访问器方法,定义set时才有;

3:关于属性的元数据,这项总是存在;

这写元数据信息中包括一些标记和属性类型,并有一个对get和set访问器方法的引用,仅仅为属性和它的访问器之间提供了一层关联关系。CLR本身并不使用它们,在运行时仅需要访问器方法即可。采用属性的代码不应有过复杂结构和太长的执行时间。应该相应的简短快速,对于简单的get和set,JIT编译器会将代码进行内联[inline]处理优化。

2.无参属性[索引器]

索引器可以看作是对"[]"操作符的一种重载方式。CLR同样对待索引器和无参属性。默认产生get_Item、set_Item方法,其中Item是编译器默认的名称,可通过应用Sysetm.Runtime.CompilerDervices.IndexNameAttribute特性来改变默认的Item名字。System,String类型就是一个例子,String类型的索引器名字叫做Chars,而不是Item。

C#没有静态索引器[CLR支持],对CLR来说,属性和索引器仅仅是定义在类型中的一些方法而已

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2011-03-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.无参属性
  • 2.无参属性[索引器]
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档