private set和不设set属性有什么区别

kejiaweire 2008-07-19 10:28:56
不是都只能读么?
是不是private set不能通过外部类赋值 而不设set连自己的类都不可以
难道能在自己的类里赋值??怎么赋值
比如我有个Person类
里面有个_Pwd属性
这样
private public Pwd
{
get{return _Pwd;}
private set{value=Pwd;}
}
和不设set有什么区别
...全文
1409 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kejiaweire 2008-07-20
  • 打赏
  • 举报
回复
对了,我还想问一下c#的默认级别到底是internal还是private
kejiaweire 2008-07-20
  • 打赏
  • 举报
回复
private public Pwd写错了
应该是public string Pwd
谢谢6楼的回答,懂了
slin60 2008-07-20
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xiaoting924 的回复:]
不写set属性,就证明这个自段不能赋值,或不用赋值,比如ID是固定的不变的,就不用set属性。但get就是必须的了。不能只写set不写get,否则就没有意义了。
[/Quote]

你没看明白别人的问题
xiaoting924 2008-07-20
  • 打赏
  • 举报
回复
不写set属性,就证明这个自段不能赋值,或不用赋值,比如ID是固定的不变的,就不用set属性。但get就是必须的了。不能只写set不写get,否则就没有意义了。
gomoku 2008-07-20
  • 打赏
  • 举报
回复
就是直接赋值和属性赋值的区别。
设了private get,类成员函数可以用属性赋值;
没有private get,类成员函数只能直接赋值。


class A
{
string pwd;
public event EventHandler PasswordChanging;

public string Pwd
{
get { return pwd; }
private set
{
if (string.IsNullOrEmpty(value) )
{
throw new ArgumentException("password cannot be empty");
}
if (pwd != value)
{
if (PasswordChanging != null) PasswordChanging(this, EventArgs.Empty);
}
pwd = value;
}
}

void Test()
{
this.pwd = "abc"; // 直接赋值,什么额外事情都不会发生
this.Pwd = "efg"; // 可以引发密码更改事件,可以进行校验
}
}
GhostAdai 2008-07-20
  • 打赏
  • 举报
回复
private public Pwd
--------------------
看到这个我吓了一跳,以为自己的技术已经退步到原始社会了。
hzq1989 2008-07-20
  • 打赏
  • 举报
回复
private....
wangzh2006 2008-07-19
  • 打赏
  • 举报
回复
数据类型好像没有public吧
即使下面可以编译通
public string Pwd
{
get{return _Pwd;}
private set{value=Pwd;}
}
但是 private set{value=Pwd;} 在调用时是受保护的不可用!

xiaoqiuwyh 2008-07-19
  • 打赏
  • 举报
回复
怎么又private又public??
jk_kingstone 2008-07-19
  • 打赏
  • 举报
回复
private public pwd?
value=pwd?
maleangel 2008-07-19
  • 打赏
  • 举报
回复
.....不是c#的语法吧。。


出4。0了?
gui0605 2008-07-19
  • 打赏
  • 举报
回复
你这个写法能通过编译??

110,586

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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