.NET中的属性用法分析
2023-06-13 09:15:39 时间
本文实例分析了.NET中的属性用法。分享给大家供大家参考。具体分析如下:
1.What?什么是属性
属性是对字段的封装。当类中有了一个字段以后,为了控制这个字段对外的一些表现(例如可访问性,是只读?只写?或者对自读赋值做一些必要的验证等等)我们把这个字段私有化(private),同时留出一个公共的(public)方法,用于访问这个字段。这个方法就是属性。
2.Usage?如何使用
对于属性,.NET总提供了两种方式定义属性。
①常规定义方式
//1.在需要封装的字段上Ctrl+R , Ctrl+E。可以自动封装属性。
//2.属性的get和set可以额外设置访问修饰符。
privatestring_name;
publicstringName
{
get
{
returnthis._name;
}
set
{
this._name=Value;
}
}
②简化写法
1.这种写法实质上与上边的写法一样,通过Reflector可以看到。
简写的属性,编译时编译器会自动为我们生成一个私有字段。
2.因为私有字段是编译器加的,为了保证名字不重复,名字看起来很怪异。
所以在二进制序列化时,这种写法会有一点小麻烦。到时候再说。*/
publicstringName
{
get;
set;
}
3.Essence属性的本质
属性的本质是什么?初听这话是不是被问懵了?
对于大多.NET程序员来说,属性就是属性呗,get,set呗,还能怎滴?
但是对于Java程序员来说,他们想对字段封装是需要这样的。
{
this._name=value;
}
publicintGet_Name()
{
returnthis._name;
}
发现没有?他们用的是一个方法。
那么问题来了?
.NET有什么不同吗?答案是否定的!!
通过反编译工具,我们发现我们使用的属性getset。
最后也会被编译工具编译成如上的两个方法。
希望本文所述对大家的.NET程序设计有所帮助。
相关文章
- 宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用
- 【愚公系列】2023年01月 .NET CORE工具案例-RedLock.net实现分布式锁
- Linux.Net:开启新技术之旅(linux.net)
- Net不再压着 MSSql,语音变得前景无限(net mssql语音)
- asp.net的web服务MSSQL检测ASP.NET的Web服务——利用它构建更棒的站点(mssql检测基于)
- 应用使用Linux环境部署.Net应用程序(linux部署.net)
- 面向企业的Net框架开发与Oracle集成(net框架oracle)
- 网络技术对Oracle数据库的支持力度(net支持oracle吗)
- Net框架如何使用MySQL数据库(.net能用mysql吗)
- Net中连接MySQL技术简述(.net中引用mysql)
- NET 对MySQL 的支持有限(.net不支持mysql)
- 用Net和MySQL实现软件开发编程(.net mysql编程)
- NET 与 MySQL 结合能实现优雅的数据事务处理(.net MySQL事物)
- 使用Oracle64位Net突破技术极限(oracle64位net)
- ASP.NET页面刷新和定时跳转代码整理
- 记录游客页面访问IP的简易实现代码(asp.net+txt)
- asp.net下降文本格式数据导入到数据库中的代码
- jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
- asp.net中引用同一个项目中的类库避免goToDefinition时不能到达真正的定义类
- .Net中导出数据到Excel(asp.net和winform程序中)
- VB.net读取Word文档属性的方法
- 深入Lumisoft.NET组件开发碰到乱码等问题的解决方法
- VB.NET设置屏幕分辨率、颜色位数、刷新率实例代码
- ASP.NET实现将word文档转换成pdf的方法
- iis6网站属性没有asp.net选项卡的解决办法