C # consente conversioni implicite di numeri interi alle stringhe quando usate in un'espressione. Ad esempio, questo è completamente valido:
int myInt = 10;
string concatenatedString = "myInt is " + myInt;
string interpolatedString = $"myInt is {myInt}";
Tuttavia, quando int non viene concatenato o interpolato, C # richiede una conversione esplicita.
int myInt = 10;
string myString = myInt;
// compiler error "Cannot implicitly convert type 'int' to 'string'"
Ovviamente questo non è un grosso problema: un semplice .ToString()
si prende cura di questo semplicemente bene. Ma se .NET sa che ogni possibile int è anche una stringa valida, perché richiede ancora una conversione esplicita? Mi piacerebbe sapere cosa sta succedendo nella "mente" del compilatore.