首页
学习
活动
专区
圈层
工具
发布

返回值
EN

Stack Overflow用户
提问于 2011-02-10 20:21:31
回答 2查看 121关注 0票数 4

我有一个类似下面的方法

代码语言:javascript
复制
public List<aspnet_Roles> GetAllRoles()
{
  var rolesList = _dbProfile.aspnet_Roles.ToList();
  return rolesList;
}

在此方法中,首先从数据库(LINQ to SQL)中检索所有角色,并将其分配给var类型的变量rolesList

我想知道直接返回值是否比先将其赋值给其他变量再返回更好。

下面的方法比上面的版本更好:

代码语言:javascript
复制
public List<aspnet_Roles> GetAllRoles()
        {
            return _dbProfile.aspnet_Roles.ToList();
        }

以上两种方法是在IL中编译成相同的版本还是第二个版本更好?第二个版本没有不必要的变量声明。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-10 20:23:54

我很有信心(尽管我还没有检查过),这些代码将编译成相同的IL。C#编译器是智能的。

第一个版本的优点是它使断点和返回值检查变得更容易。

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

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

票数 2
EN

Stack Overflow用户

发布于 2011-02-10 20:24:16

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

除此之外,没有什么不同。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4956997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档