您可以使用object initializer表達式:
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 }
};
你也可以以同樣的方式,這往往是首選創建列表:
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 }
};
或者你甚至可以寫一個擴展方法SqlParameter
:
public static SqlParameter WithValue(this SqlParameter parameter, object value)
{
parameter.Value = value;
return parameter;
}
然後使用它是這樣的:
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)
};
正是我在找的東西。我已經探索了選項3,但不喜歡我提出的。謝謝! – 2012-08-02 18:09:19
@Jon Skeet我發現你的帖子非常有幫助,但是目前我正在使用Framework 2.0。所以它顯示錯誤,如「Feature Object Initializer無法使用,因爲它不是ISO-2 C#語言規範的一部分,對不起,現在不可能升級項目,那麼是否有任何有效的方法呢? – 2015-01-20 08:49:09
@RahulNikate:僅僅因爲你使用的是.NET 2.0並不意味着你不能使用C#的新特性,例如,你可以使用Visual Studio 2013並且仍然以.NET 2.0爲目標,如果你只限於C#2.0,你會發現Stack Overflow帖子上的很多代碼都不適合你,並且在所有地方都提供替代品是不現實的。 – 2015-01-20 10:01:12