社区
C#
帖子详情
请教基础问题:只读属性和有返回值的方法有何不同?各自有何优缺点?各应用在何处?
Triumph
2008-10-27 08:28:03
如题
...全文
121
17
打赏
收藏
请教基础问题:只读属性和有返回值的方法有何不同?各自有何优缺点?各应用在何处?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hhhh63
2008-10-27
打赏
举报
回复
[Quote=引用 8 楼 Triumph 的回复:]
楼上说的这些我都知道。
希望大家能结合实际开发中的体会,有点深度地谈一谈
[/Quote]
补充一下,举一个例子:
有一个类,类的对象会移动,“移动”作为一个方法还是属性呢。
可以是属性:speed = 100; // 以100的速度移动。
也可以是属性:move( 100 );
两者都全理。
如果说对象的宽度和高度的话,用属性合理。
如果是建立和销毁对象,用方法合理。
举这些例子,说明一个问题,首先要从语文和计算机两个方面理解这两个词意思,然后再对具体的对象进行分析,有些性质是模棱两可的,即可是属性,也可是方法,这些性质分配合理了,水平就高了。
stning
2008-10-27
打赏
举报
回复
本质上能理解成一样,但是方法确提供了更多的灵活性
hhhh63
2008-10-27
打赏
举报
回复
从底层看,查看一下编译结果,如果返回的只是一个值,它和成员变量是一样的。如果有较多代码,它和方法是完全一样的。
从代码的角度看,应该说是一个代码的书写标准和名称问题。过去c++类分成员变量和成员函数,后来发展成为属性和方法(因为所有面向对象的语言都这样叫),方法和成员函数是一个东西的两种叫法,属性原来就是成员变量,后来进步了一些,在设置和获取属性的时候可以做一些简单的相关的工作。
个人理解,设置和获取属性的时候不应做复杂的工作。
本人观点,如有雷同,纯属巧合。
amandag
2008-10-27
打赏
举报
回复
只读属性和有返回值的方法有何不同?各自有何优缺点?各应用在何处?
==
只读属性其实IL编译后就是一个方法,所以两者严格来说没什么区别
如果要说有区别,一般我们习惯在C#中用属性来封装字段,当然就像java一样用方法封装也是可以的
patrickpan
2008-10-27
打赏
举报
回复
一个是方法,一个是属性,两者风马牛不相及啊
dz_huanbao
2008-10-27
打赏
举报
回复
两者在代码应用层面上是等价的,但由于属性兼具变量(只读属性可以看做变量的特例)的特点,集成开发环境能够在属性浏览器中观察到它的存在。
也就是说,.NET类库(尤其是控件相关的类库)存在大量的属性并不是因为采用方法实现不了相关功能,而是属性特有的优点使设计人员必须这么做。
所以,如果用户自定义控件(UserControl),建议优先使用属性而不是方法。不过属性相对于方法的缺点是不能传递输入参数,这一点需要切记。
Triumph
2008-10-27
打赏
举报
回复
楼上说的这些我都知道。
希望大家能结合实际开发中的体会,有点深度地谈一谈
acqy
2008-10-27
打赏
举报
回复
从技术层面来看,只读属性在编译时会被翻译成一个带有返回值的get方法,也就是跟带有返回值的方法意义相同。
从面向对象层面看,属性更加体现某个事物所具有的某个特性,而方法则更加偏向于体现事物的行为。
比如,人有名字,那么这个名字就是人的一种特性,而如果把名字定义为方法,就会觉得有点别扭:因为人本身没有“获得自己的名字”这样的行为。
或许这个例子也不是很恰当,楼主可以根据实际情况来使用属性与方法。
冷月孤峰
2008-10-27
打赏
举报
回复
从 返回值 这一点上是一样的
wanghui0380
2008-10-27
打赏
举报
回复
从
只读属性上
看,意义是一样滴
hongqi162
2008-10-27
打赏
举报
回复
属性可以在数据在可被轻松访问的同时,仍能提供方法的安全性和灵活性
enihs
2008-10-27
打赏
举报
回复
简单点理解的话,相对于c语言来说,属性说到底它还是变量,可理解为变量取到值和函数的返回值的区别。
jwenyun
2008-10-27
打赏
举报
回复
LZ这是啥意思啊?
clbcy
2008-10-27
打赏
举报
回复
属性看起来比较形象
acqy
2008-10-27
打赏
举报
回复
楼上很多回复也举了不少例子。主要还是面向对象设计思想上的区别。从代码本身,既可以用属性,也可以用方法,只不过属性和方法有语义上的区别。
kfps8kfps8
2008-10-27
打赏
举报
回复
mark
名人档案(辛弃疾、李清照)(1).docx
名人档案(辛弃疾、李清照)(1).docx
._moood UI KitAdobeXD源码下载设计素材UI设计.xd
._moood UI KitAdobeXD源码下载设计素材UI设计
full_circle_appAdobeXD源码下载设计素材UI设计.xd
full_circle_appAdobeXD源码下载设计素材UI设计
Gym_Responsive_Landing_PageAdobeXD源码下载设计素材UI设计.xd
Gym_Responsive_Landing_PageAdobeXD源码下载设计素材UI设计
SQL详细介绍资料.zip
sql,SQL(Structured Query Language,结构化查询语言)是一种标准化的语言,用于在关系数据库管理系统(RDBMS)中存取和操作数据。SQL 使得用户能够访问和操作数据库中的数据,包括数据的查询、插入、更新和删除,以及数据库结构的创建和修改。
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章