È possibile utilizzare object initializer espressioni:
SqlParameter[] parameters =
{
new SqlParameter("@first_name", SqlDbType.VarChar, 50) { Value = to.FirstName },
new SqlParameter("@last_name", SqlDbType.VarChar, 50) { Value = to.LastName },
new SqlParameter("@middle_name", SqlDbType.VarChar, 50) { Value = to.MiddleName },
new SqlParameter("@empid", SqlDbType.Int) { Value = to.EmpId }
};
Si potrebbe anche creare una lista nello stesso modo, che è spesso preferito:
List<SqlParameter> parameters = new List<SqlParameter>
{
new SqlParameter("@first_name", SqlDbType.VarChar, 50) { Value = to.FirstName },
new SqlParameter("@last_name", SqlDbType.VarChar, 50) { Value = to.LastName },
new SqlParameter("@middle_name", SqlDbType.VarChar, 50) { Value = to.MiddleName },
new SqlParameter("@empid", SqlDbType.Int) { Value = to.EmpId }
};
Oppure si potrebbe anche scrivere un metodo di estensione su SqlParameter
:
public static SqlParameter WithValue(this SqlParameter parameter, object value)
{
parameter.Value = value;
return parameter;
}
quindi utilizzarlo in questo modo:
List<SqlParameter> parameters = new List<SqlParameter>
{
new SqlParameter("@first_name", SqlDbType.VarChar, 50).WithValue(to.FirstName),
new SqlParameter("@last_name", SqlDbType.VarChar, 50).WithValue = to.LastName)
new SqlParameter("@middle_name", SqlDbType.VarChar, 50).WithValue(to.MiddleName),
new SqlParameter("@empid", SqlDbType.Int).WithValue(to.EmpId)
};
Esattamente quello che stavo cercando. Ho esplorato l'opzione 3 ma non mi è piaciuto quello che mi è venuto in mente. Grazie! –
@Jon Skeet Ho trovato il tuo post molto utile ma attualmente sto lavorando a Framework 2.0. Quindi sta mostrando errore come "Feature Object Initializer non può essere usato perché non fa parte delle specifiche del linguaggio ISO-2 C#. Scusa se non è possibile aggiornare il progetto, quindi c'è un modo efficace per questo. –
@RahulNikate: Solo perché stai utilizzando .NET 2.0 non significa che non puoi utilizzare le nuove funzionalità di C#. Ad esempio, potresti utilizzare Visual Studio 2013 e continuare a utilizzare .NET 2.0. Se ti limiti a C# 2.0, troverai un sacco di codice sui post di Stack Overflow non funziona per te, e non è pratico fornire alternative ovunque. –