Esto puede sonar estúpido, pero ...Construyendo cadenas grandes (por ejemplo, para comandos SQL) ¿qué tan inteligente es el compilador C#?
Cuando creo comandos SQL grandes que quiero mantener mi código legible y hago esto:
cmd.CommandText = "SELECT top 10 UserID, UserName " +
"FROM Users " +
"INNER JOIN SomeOtherTable ON xxxxx " +
"WHERE UserID IN (blablabla)";
Ver las concatenaciones? Ahora, para salvar el rendimiento Ahora hago esto:
cmd.CommandText = @"SELECT top 10 UserID, UserName
FROM Users
INNER JOIN SomeOtherTable ON xxxxx
WHERE UserID IN (blablabla)";
Se mantiene el código legible pero ahorra concatenaciones. Ahora, ¿realmente guarda algún rendimiento o el compilador es lo suficientemente inteligente como para "precatenar" la primera cadena?
¿Alguien te ha enseñado acerca de los ataques de inyección SQL? Así es exactamente como comienzan. – slugster
Encuentro la segunda forma (mucho) más legible. –
Si el compilador fuera tan inteligente, perdería su trabajo. Un String.Format es lo que encuentro legible, no de la manera que te gusta. –