说,如果我需要在自定义ToString
中覆盖List
方法,我会这样做:
public class WebUILanguage2 : List<WebUILanguage>
{
public override string ToString()
{
return "Overridden message";
}
}
但如果我想覆盖这个怎么办?
public class WebUILanguage2 : WebUILanguage[]
答案 0 :(得分:7)
你做不到。您无法从数组类型派生。
我通常建议不要在ToString
覆盖List<T>
- 根据我的经验,通常最好使用合成而不是继承这样的事情。
答案 1 :(得分:-1)
如前所述,你不能那样做。但是,作为解决方法,您只需编写一个新的 方法:
using System;
static class Program {
static string Str(this string[] a) => String.Join(',', a);
static void Main() {
string[] a = {"May", "June"};
Console.WriteLine(a.Str());
}
}
或功能:
using System;
class Program {
static string Str(string[] a) => String.Join(',', a);
static void Main() {
string[] a = {"May", "June"};
Console.WriteLine(Str(a));
}
}
或通用函数:
using System.Collections.Generic;
using System;
class Program {
static string Str(IEnumerable<string> a) => String.Join(',', a);
static void Main() {
string[] a = {"May", "June"};
Console.WriteLine(Str(a));
}
}