// For formatting string and parameters define a function
// The shortcut function wl, kind of write line
public void wl(string format, params object[] parms){
Console.WriteLine(format, parms);
}
// Just for strings we can use Action delegate
Action<string> ws = Console.WriteLine;
// examples:
ws("String with no formatting parameters");
wl("String without formatting parameters");
wl("String with {0} parameters {1}", 2, "included");
wl("several parameters {0} {1} {2} repeated {0}", 1234, 5678, 6543);
lub stosując metodę rozszerzenia: formatString.wl (argumenty ...)
public static class ConsoleWriteExtensions
{
public static void wl(this string format, params object[] parms){
Console.WriteLine(format, parms);
}
}
"{0} -> {1}".wl("Mili",123.45); // prints Mili -> 123.45
Ponadto, używając skrótu, musisz bardzo uważać na takie rzeczy, jak niedopasowanie między elementami formatu i elementami listy argumentów, które kompilator ostrzega, jeśli jawnie wywołasz 'Console.WriteLine'. Po prostu straciłem trochę czasu, ponieważ moja metoda 'ReportTermination' wykryła i napisała do informacji o błędzie konsoli. W metodzie użyłem stałego ciągu formatującego (komunikatu), więc właściwość, którą przekazywałem jako argument do ciągu formatu, była interpretowana jako ciąg formatu, pozostawiając listę argumentów krótką o jedną pozycję, podnosząc kolejną, tajemnicę, wyjątek. – ProfK
Moje przeprosiny. Kompilator nie generuje ostrzeżenia; to ReSharper ostrzega. Każde standardowe wywołanie 'Console.WriteLine' z niezgodną listą argumentów spowoduje zgłoszenie wyjątku. Może warto sprawdzić skrót, który to sprawdza. – ProfK
warte przejęcia! –