2009-08-26 25 views
2

我有一个扩展方法扩展方法:对象的值类型

public static string ToDelimenatedString(this object[] array, string delaminator) {...} 

的扩展应用到引用类型而不是值类型。我认为这是因为对象是可空的。我如何将上述方法写入目标值类型,甚至可以不写出每种值类型?

干杯,

丰富

+1

你是否正在分离,分层或分隔你的字符串? :P – grenade 2009-08-26 10:18:13

+0

我似乎无法让我记起来。 :) – kim3er 2009-08-26 10:25:20

回答

3

应该可以正常使用泛型: -

public static string ToDelimitedString<T>(this T[] array, string delimiter) 

仅供参考,你可以[但可能不会想]几乎做逆约束该不工作的价值类型说:

public static string ToDelimitedString<T>(this T[] array, string delimiter) 
    where T:class 

顺便说一句,你可能也wan t来支持IEnumerable,可能像这样的过载: -

public static string ToDelimitedString<T>(this IEnumerable<T> items, string delimiter) 
{ 
    return string.Join(delimiter, items.Select(item=>item.ToString()).ToArray()); 
} 
+0

我必须有一个不好的早晨,仿制药甚至没有发生在我身上。谢谢你的帮助。 – kim3er 2009-08-26 10:20:18

+0

NP,很乐意提供帮助 – 2009-08-26 10:28:24