相关疑难解决方法(0)

在C#中使用var关键字

在与同事讨论了在C#3中使用'var'关键字后,我想知道人们对通过var的类型推断的适当用途有什么看法?

例如,我在可疑情况下懒得使用var,例如: -

foreach(var item in someList) { // ... } // Type of 'item' not clear.
var something = someObject.SomeProperty; // Type of 'something' not clear.
var something = someMethod(); // Type of 'something' not clear.
Run Code Online (Sandbox Code Playgroud)

var的更合理用途如下: -

var l = new List<string>(); // Obvious what l will be.
var s = new SomeClass(); // Obvious what s will be.
Run Code Online (Sandbox Code Playgroud)

有趣的是LINQ似乎有点灰色,例如: -

var results = from r in dataContext.SomeTable
              select r; // Not *entirely clear* what results will be …
Run Code Online (Sandbox Code Playgroud)

c# var type-inference

406
推荐指数
32
解决办法
13万
查看次数

为什么ReSharper想要将'var'用于一切?

我刚刚开始在Visual Studio中使用ReSharper(在关于SO的许多建议之后).为了试一试,我打开了一个最近的ASP.NET MVC项目.我注意到它提出的第一个也是最常见的事情之一是将大多数/所有我的显式声明var改为.例如:

//From This:
MyObject foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1);
//To This:
var foo = DB.MyObjects.SingleOrDefault(w => w.Id == 1);
Run Code Online (Sandbox Code Playgroud)

等,即使采用简单的类型,如int,bool

为什么要推荐这个?我不是来自计算机科学或.NET背景,最近"陷入".NET开发,所以我真的很想了解正在发生的事情以及它是否有益.

.net c# resharper var visual-studio

207
推荐指数
15
解决办法
5万
查看次数

我为什么要使用var而不是类型?

可能重复:
ReSharper和var

在我安装了ReSharper后,它要求(通过警告)我尽可能使用var,例如

UnhandledExceptionEventArgs ue = (UnhandledExceptionEventArgs) t;
Run Code Online (Sandbox Code Playgroud)

ReSharper想把它变成

var ue = (UnhandledExceptionEventArgs) t;
Run Code Online (Sandbox Code Playgroud)

我更喜欢第一个版本,有没有理由更喜欢var?更好的性能?什么?或者它只是一种代码风格?

.net c# resharper coding-style var

149
推荐指数
4
解决办法
12万
查看次数

列表:计数与计数()

给定一个列表,首选哪个方法来确定里面的元素数量?

var myList = new List<string>();

myList.Count
myList.Count()
Run Code Online (Sandbox Code Playgroud)

.net c# linq list count

97
推荐指数
4
解决办法
13万
查看次数

使用var运算符而不是类类型

可能重复:
在C#中使用var关键字

我在Visual Studio中使用resharper.每当我创建类实例resharper建议我使用var而不是确切类型的类.为什么使用var运算符更合适?

c# resharper

2
推荐指数
1
解决办法
1530
查看次数

当使用select new object(){}时,如何从linq返回ICollection <object>

我有下面的linq当前工作,但我真正想要的是返回一个ICollection<SexyPeopleVM>而不是列表.但我无法理解语法和其他替代方案,我试过在运行时失败了.

这可能吗?我怎样才能做到这一点?

var o = from s in sexyPeople
                    select new SexyPeopleVM()
                    {
                        id = s.ID,
                        title = s.Title,
                        views = s.Views,
                        url = s.GetFullyQualifiedURL(),
                        friendlyDate = s.DateCreated.AsShortFriendly()
                    };
            List<SexyPeopleVM> list = o.ToList();
            return list;
Run Code Online (Sandbox Code Playgroud)

c# linq asp.net-mvc

0
推荐指数
1
解决办法
4702
查看次数