这在标题中有点难以解释,但这是我的情况。我有现有的代码,并始终使用标准的文本框。我已经决定我需要为Textbox类添加功能,所以我创建了从Textbox派生的MyTextbox并添加了我需要的东西。现在我想永久使用MyTextbox而不是Textbox。我应该能够强制所有Textbox实例(现在和将来)使用MyTextbox。
我之前在C ++中已经按照
的方式做了类似的事情 typedef Textbox MyTextbox;
如果这有意义,可以用C#吗?
答案 0 :(得分:2)
为什么不在整个解决方案中进行批量查找/替换?这可以在Visual Studio中轻松完成。
您可以在使用Textbox
的每个文件的顶部执行以下操作:
using Textbox = Custom.Namespace.MyTextbox;
我不建议这样做,因为任何人看到代码中看起来像标准文本框的内容可能都没有意识到它实际上是您自己的自定义文本框。编译相关代码时,这也可能导致歧义。
答案 1 :(得分:1)
确保使用TextBox而不是MyTextBox的每个人都可以使用新功能的另一种方法是使用扩展方法。然后你不必担心用户使用错误的类。
关于扩展方法的MSDN文章:http://msdn.microsoft.com/en-us/library/bb383977.aspx
答案 2 :(得分:0)
如果您已经创建了MyTextBox,为什么还需要再次引用TextBox类?请记住,MyTextBox具有TextBox的所有功能以及它自己的功能。
如果您想要更改所有现有文本框以符合MyTextBox,则必须手动操作。编辑它们,因为即使您从.Net Framweork基类库中更改类型,也会在调用TextBox的任何地方抛出异常