In C# .Net, System.Diagnostics.Debug.WriteLine
ha diversi overload, tra questi due:sovraccarichi Debug.WriteLine sembrano essere in conflitto
//http://msdn.microsoft.com/en-us/library/cc190153.aspx
public static void WriteLine(string format, params Object[] args);
//http://msdn.microsoft.com/en-us/library/1w33ay0x.aspx
public static void WriteLine(string message, string category);
La mia intenzione è quella di chiamare il primo con:
Debug.WriteLine("The path is {0}", myObj.myPath);
Ma sembra che in realtà sto chiamando il secondo sovraccarico, perché è una corrispondenza più esatta.
C'è un modo semplice per indicare che voglio il primo?
miei migliori tentativi finora sono:
Debug.WriteLine("The path is {0}", new object[]{myObj.myPath});
Debug.WriteLine("The path is {0}", myObj.myPath, "");
Ma nessuno di questi sembra molto elegante.
Questo è un esempio d'oro del perché i sovraccarichi dovrebbero essere sempre semanticamente identici. Se due metodi hanno comportamenti diversi, dovrebbero avere nomi diversi. I sovraccarichi vanno bene per simulare i parametri di default o variadic, o se ci sono casi speciali ottimizzati. Tuttavia, dovrebbero sempre essere identici nel comportamento. –