我有一个类似下面的方法
public List<aspnet_Roles> GetAllRoles()
{
var rolesList = _dbProfile.aspnet_Roles.ToList();
return rolesList;
}
在此方法中,首先检索数据库(LINQ to SQL)中的所有角色,并将其分配给rolesList
类型的变量var
。
我想知道返回值是否更好,而不是先将其分配给其他变量,然后再将其返回。
以下方法是否优于上述版本:
public List<aspnet_Roles> GetAllRoles()
{
return _dbProfile.aspnet_Roles.ToList();
}
上述两种方法是否会在IL中编译为相同或第二版更好?第二个版本没有不必要的变量声明。
答案 0 :(得分:6)
第一种方法可以帮助您进行调试。现在,AFAIK,在调试时没有办法观察方法的返回值。
除此之外,没有区别。
答案 1 :(得分:2)
我有信心(虽然我没有检查过)这些会编译到同一个IL。 C#编译器很聪明。
第一个版本的优点是它可以在返回之前更容易断点并检查值。
当然,第二个版本更简洁。
这取决于你喜欢的,这里没有客观的“更好”。