有时我会得到高度重复的代码块,尤其是在处理 DAL 代码时。
例如:
command.Parameters.Add("@CName", SqlDbType.NVarChar, 50).Value = c.Name.DisplayName;
command.Parameters.Add("@LKey", SqlDbType.NVarChar, 15).Value = c.Alf;
command.Parameters.Add("@SalesTerritoryId", SqlDbType.NVarChar, 15).Value = c.Profile.SalesTerritoryId;
command.Parameters.Add("@CAQ", SqlDbType.TinyInt).Value = (short)c.Profile.Quadrant;
回到 VB 中,有 With 语句可以很好地整理东西。偶尔在 C# 中我会做类似的事情:
var cp = command.Parameters;
cp.Add("@CName", SqlDbType.NVarChar, 50).Value = c.Name.DisplayName;
cp.Add("@LKey", SqlDbType.NVarChar, 15).Value = c.Alf;
cp.Add("@SalesTerritoryId", SqlDbType.NVarChar, 15).Value = c.Profile.SalesTerritoryId;
cp.Add("@CAQ", SqlDbType.TinyInt).Value = (short)c.Profile.Quadrant;
就我个人而言,我发现这更具可读性,但我想知道是否在编译时,两个版本是否都成为相同的 IL,因为编译器足够聪明,可以知道我做了什么并简单地优化它?
还是 cp 作为无用的参考后编译保留?