【发布时间】:2012-08-10 15:22:17
【问题描述】:
例如,我想向integer 添加一个方法(即Int32),这将使我能够执行以下操作:
int myInt = 32;
myInt.HelloWorld();
可以说,您可以编写一个采用integer、HelloWorld(integer) 的方法,而不是坚持执行上述操作,如下所示,更容易:
int myInt = 32;
HelloWorld(myInt);
但是,我只是好奇这是否可能。如果属实,那么向知名类添加一些其他功能是否是一种良好的编程习惯?
PS:我尝试创建另一个从Int32继承的类,但不能从密封类型“int”派生。
【问题讨论】:
-
我想你想要扩展方法
-
虽然扩展方法可以做到这一点(正如其他人指出的那样),但我建议您不要对像“int”这样的基本类型这样做。对于一年后查看您的代码并想知道数字 32 与 World.SayHello(32) 之类的东西打招呼意味着什么的维护工程师来说,这不太直观。扩展方法的直观感觉是扩展对象正在做某事,但数字应该积极做的事情很少。
标签: c# oop inheritance extension-methods