C#中属性可以用相应的get方法来代替吗?

来源:百度知道 编辑:UC知道 时间:2024/06/01 11:05:59
c#中属性有get和set 我知道它是用来设置私有域的值的。但是我可以自己写GET和set方法来代替吗。这样有什区别?

GET和set是关键字。应该竟是不可代替的。
代替是什么意思?
可以用函数,就是方法来代替GET和set的功能,但是就不能使用“=”运算符了,只能用函数,方法的通常形式"obj.fun(arg);"
也可以将变量直接暴露为public,可是这样就不能对赋值以及获取过程进行控制。
比如你想知道程序运行中你想知道对象A的a属性(prv_a用于存储a)被获取多少次,你可以在A里添加私有属性a_n,然后get里多写一句"a_n++;"
又比如你想防止一个a被赋予一个小于0的值,你可以在set里多写几句
"
if(value<0)
prv_a=0;
else
prv_a=value;
"
这样当别的程序员使用你的对象A如下:
A.a=-4;

但是的得到的结果却依然是A.a=0;

string a;
geta()
{
return a;
}
string b;
getb()
{
return b;
}
seta(int x)
{
a=x;
}
楼主这意思吧
可以 但是麻烦