您可以使用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