重写C#的存取器set、get

来源:百度知道 编辑:UC知道 时间:2024/07/05 03:35:48
如何重写set、get
使所有的set都具有对传递来的value进行默认的修改(如在set的时候自动加密,在get的时候自动解密)
要实现下面的功能,但我希望重写过后的set、get能自动执行这两个函数:
public string aName
{
get{

return System.Web.HttpUtility.HtmlDecode(_aName);
}
set
{
_aName = System.Web.HttpUtility.HtmlEncode(value);
}
}

这个应该是无法重写的。
您可以把这样的string外面包装一层类,假如叫HtmlString。
class HtmlString {
private string _value;
public string Value {
get{return System.Web.HttpUtility.HtmlDecode(_value); }
set{_value = System.Web.HttpUtility.HtmlEncode(value); }
}
}

然后使用的时候这样使用:
申明:public HtmlString aName = new HtmlString();
赋值和取值的时候使用:aName.Value = "<test>html</test>";

这样可控制性更强,而且符合面对对象的编程思想。

比如以后可以加入属性 TrimedValue、ClearHtmlValue等各种属性。

get/set能重写吗,留个记号,以后看看.

你要重写 System.String 中的get 和 set啊~
String是这样定义的: public sealed class String : IComparable, ICloneable,IConvertible, IEnumerable
sealed是密封类的关键字,其他类就无法继承此类。

不过如果只是为了实现,还是建议 把加密方法提出来

就像 楼上说的,就很合理了,楼上是高手。

那就要看你想重写一个什么值了
要是int

public int aid
{

get
{

}
set
{

}
}

可能就是取第一个的反就行吧