为什么要用Get Set,有何好处?

好好小妖 2009-02-11 09:20:44
看到程序里一般都写Get Set,这样写有什么好处啊?
public class Goods
{
private int _goodsID;
/// <summary>
/// 商品ID
/// </summary>
public int GoodsID
{
get { return _goodsID; }
set { _goodsID = value; }
}

private int _supportID;
/// <summary>
/// 供应商ID
/// </summary>
public int SupportID
{
get { return _supportID; }
set { _supportID = value; }
}
}
...全文
1173 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
maminglong 2011-06-13
  • 打赏
  • 举报
回复
get 和 set 的好处 不止这点吧 有没有官方答案的
changjian1444 2011-05-03
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 pdsnet 的回复:]
估计是做的东西少.又小.感觉不到他有什么好处~
[/Quote] 这不是废话么,都要啥都会,要论坛干啥?不会就不能问?
qyc292 2010-09-05
  • 打赏
  • 举报
回复
安全性。。。这个想法到底怎么产生的哦。。提供set get 方法只是为了安全性?
需要get set 方法真正的原因是:假设我有一个类Person,该类有个属性name,如果直接访问属性 person.name;突然有一天,你可能需要对每个名字,或者某个名字做一些逻辑处理,怎么办?那么你就只好在出现person.name的地方到处添加逻辑处理代码。如果你使用getName()方法,那么我就在这个方法里面过滤一下就OK了。
清风水岸 2010-05-29
  • 打赏
  • 举报
回复
嗯,不错的问题。我也一直有这种疑问
hy_lihuan 2009-02-11
  • 打赏
  • 举报
回复
晕倒,排版这么乱
hy_lihuan 2009-02-11
  • 打赏
  • 举报
回复
其实我举一个比较简单的例子你可能更容易理解:
有一个int类型的公开变量和公开属性,我们需要限制这个int只能输入3-10之间的数值,如果大于10就等于10,小于3就等于3;
你使用公开变量,就会把验证的算法在每一个调用这个变量的地方进行一次验证;属性就不需要改变所有调用它的地方,直接在这个属性里面修改就可以了。

public int GoodsID
{
get { return _goodsID; }
set {
if(value>10)
{_goodsID = 10;}
if(value<3)
{_goodsID = 3;}
if(value>=3&&value<=10)
{
{_goodsID = value;
}
}
}

hy_lihuan 2009-02-11
  • 打赏
  • 举报
回复
http://blog.csdn.net/hy_lihuan/archive/2007/12/25/1967228.aspx
这个说明的比较详细了
cwmwss 2009-02-11
  • 打赏
  • 举报
回复
这是个model。
private int _goodsID;
/// <summary>
/// 商品ID
/// </summary>

public int GoodsID
{
get { return _goodsID; }
set { _goodsID = value; }
}

model有自己的私有属性_goodsID; 为了让外界能调用它,有了
public int GoodsID
{
get { return _goodsID; }
set { _goodsID = value; }
}
为什么 “多此一举”呢。。上面说的,为了数据的安全
CrystalofAA 2009-02-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 time_is_life 的回复:]
set、get是访问私有变量的方法。
为了安全性,Class中的属性一般设置为私有的private,但是为了给外界开放一个有限的可以访问私有变量的方法,就需要有setter,getter。setter、getter是标准的写法,也可以写成别的...
[/Quote]

UP
pdsnet 2009-02-11
  • 打赏
  • 举报
回复
估计是做的东西少.又小.感觉不到他有什么好处~
huxuanhui 2009-02-11
  • 打赏
  • 举报
回复
数据安全性
time_is_life 2009-02-11
  • 打赏
  • 举报
回复
set、get是访问私有变量的方法。
为了安全性,Class中的属性一般设置为私有的private,但是为了给外界开放一个有限的可以访问私有变量的方法,就需要有setter,getter。setter、getter是标准的写法,也可以写成别的...

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧