![](/img/trans.png)
[英]KeyValuePair<TKey, TValue>.ToString implementation details
[英]Overriding ToString() on a KeyValuePair<> struct
就像在tile中一样:覆盖KeyValuePair <> struct(System.Collections.Generic)上的ToString()。我想知道这是否可以在C#(密封结构)中完成。
任何人都可以提供一些见解或替代方法?
或者我应该忘记覆盖并执行以下操作:
class MyKeyValuePair
{
public KeyValuePair<T> Pair { get; set; }
public MyKeyValuePair(KeyValuePair<T> pair)
{
this.Pair = pair;
}
public override ToString()
{
...
}
}
没有。
您无法修改现有类型,并且无法继承struct
。
那这个呢:
static class KeyValueHelper
{
public static string ToMyString<K, V>(this KeyValuePair<K, V> pair) { ... }
}
struct
不能被继承 ,因此不能覆盖其成员。
正如你自己建议的那样,你必须自己动手。
您可以做的最好的事情可能是创建一个扩展方法:
static class KeyValuePairMethods
{
public static String ToCustomString<TK, TV>(this KeyValuePair<TK, TV> kvp)
{
return String.Format("{0}: {1}", kvp.Key, kvp.Value);
}
}
这可以称为:
new KeyValuePair<string, int>("Hello", 12).ToCustomString();
当然,外部代码仍将使用ToString()方法,因此这可能不会为您完成任何事情。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.