gpt4 book ai didi

c# - 扩展 ASP.NET WebControls : How to effectively hide public properties

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:18 24 4
gpt4 key购买 nike

我将 TextBox WebControl 扩展为一种“DateTextBox”,在代码隐藏中将其值作为属性 (DateValue) 公开:

public sealed class DateTextBox : TextBox
{
public DateTime ?DateValue
{
/* ToDateFromUserInterface() and ToUserInterfaceString() are both
extension methods */

get
{
return
(
String.IsNullOrEmpty(Text) ?
new DateTime?() :
Text.ToDateFromUserInterface()
);
}

set
{
if (value != null) Text = ((DateTime)value).ToUserInterfaceString();
}
}
}

鉴于此控件只应与日期一起使用,因此没有理由让它从其父项继承 Text 属性。

有什么方法可以隐藏它吗?除了实现 NotImplementedException 之外,像这样:

new public String Text
{
get { throw new NotImplementedException(); }
set { throw new NotImplementedException(); }
}

最佳答案

只需覆盖它并提供日期的字符串版本。任何时候从基类继承时,尝试像这样更改现有接口(interface)通常不是一个好主意……它违背了所有面向对象的实践:-P

关于c# - 扩展 ASP.NET WebControls : How to effectively hide public properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1525417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com