Post your extension goodies for C# .Net (codeplex.com/extensionoverflow)
让我们创建您最喜欢的扩展方法列表。要获得资格,它应该是您经常使用的扩展方法,并且通过优雅,聪明,强大或非常酷而使编码更容易。
我将从我最喜欢的3种扩展方法开始,我发现它们优雅并且一直使用(我省略了代码检查参数是否有效以保持简短):
public static string FormatWith(this string text, params object[] values) {
return String.Format(text, values);
}
所以不必写
String.Format("Some text with placeholders: {0}, {1}", "Item 1", "Item 2");
你可以写
"Some text with placeholders: {0}, {1}".FormatWith("Item 1", "Item 2");
public static T To<T>(this object obj) {
return (T) obj;
}
所以不必写
object o = 5; //integer as object
string value = ((int)o).ToString(); //get integer value as string
int number = (int) o;
你可以写
object o = 5; //integer as object
string value = o.To<int>().ToString();
int number = o.To<int>();
public static void Apply<T>(this IEnumerable<T> enumerable, Action<T> action) {
foreach (T item in enumerable) action(item);
}
所以不必写
private void PrintNumbers(int number) { Debug.WriteLine(number); }
int[] numbers = new []{ 1, 2, 3, 4, 5};
foreach (int number in numbers)
WriteLine(number);
你可以写
private void PrintNumbers(int number) { Debug.WriteLine(number); }
int[] numbers = new int[] { 1, 2, 3, 4, 5};
numbers.Apply(PrintNumbers)