使用List <t> </t>重载C#运算符

时间:2012-02-04 17:44:25

标签: c# operator-overloading

我正在尝试重载适用于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}}课程。)

1 个答案:

答案 0 :(得分:7)

据我所知,这是不可行的:您必须在使用它的类型中实现运算符重载。由于List<T>不是您的类型,因此您无法覆盖其中的运算符。

但是,您可以从List<string>派生自己的类型,并覆盖您班级中的运算符。

class StringList : List<string> {
    public static StringList operator +(StringList lhs, StringList rhs) {
    }
}