回归价值观

时间:2011-02-10 12:21:31

标签: c#

我有一个类似下面的方法

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中编译为相同或第二版更好?第二个版本没有不必要的变量声明。

2 个答案:

答案 0 :(得分:6)

第一种方法可以帮助您进行调试。现在,AFAIK,在调试时没有办法观察方法的返回值。

除此之外,没有区别。

答案 1 :(得分:2)

我有信心(虽然我没有检查过)这些会编译到同一个IL。 C#编译器很聪明。

第一个版本的优点是它可以在返回之前更容易断点并检查值。

当然,第二个版本更简洁。

这取决于你喜欢的,这里没有客观的“更好”。