我正在尝试重载适用于Lists
的C#中的运算符(不要问为什么!)。例如,我希望能够写下:
List<string> x = // some list of things
List<string> y = // some list of things
List<string> z = x + y
这样'z'包含'x'的所有内容,后跟'y'的内容。我知道已经有办法组合两个列表,我只是想了解运算符重载如何与泛型结构一起工作。
(顺便说一句,这是来自List
的{{1}}课程。)
答案 0 :(得分:7)
据我所知,这是不可行的:您必须在使用它的类型中实现运算符重载。由于List<T>
不是您的类型,因此您无法覆盖其中的运算符。
但是,您可以从List<string>
派生自己的类型,并覆盖您班级中的运算符。
class StringList : List<string> {
public static StringList operator +(StringList lhs, StringList rhs) {
}
}