相关疑难解决方法(0)

使用C++ 11 auto关键字多少钱?

我一直在使用autoC++ 11标准中提供的新关键字来处理复杂模板类型,这是我认为它的设计目标.但我也用它来做:

auto foo = std::make_shared<Foo>();
Run Code Online (Sandbox Code Playgroud)

更加怀疑的是:

auto foo = bla(); // where bla() return a shared_ptr<Foo>
Run Code Online (Sandbox Code Playgroud)

我没有看到很多关于这个话题的讨论.似乎auto可能过度使用,因为类型通常是文档和健全性检查的一种形式.您在哪里绘制使用线auto以及此新功能的推荐用例是什么?

澄清:我不是要求哲学观点; 我要求标准委员会对该关键字的预期用途,可能还有关于如何在实践中实现该预期用途的评论.

旁注:此问题已移至SE.Programmers,然后返回Stack Overflow.关于这一点的讨论可以在这个元问题中找到.

c++ types type-inference auto c++11

210
推荐指数
8
解决办法
4万
查看次数

C#中"var"的含义是什么?

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

在C#中,关键字" var " 如何工作?

c#

90
推荐指数
5
解决办法
12万
查看次数

使用方法:var或对象名称类型?

这是一个问题,在编程时我总是想知道:在编写代码时要使用什么:

var myFiles = Directory.GetFiles(fullPath);
Run Code Online (Sandbox Code Playgroud)

要么

string[] myFiles = Directory.GetFiles(fullPath);
Run Code Online (Sandbox Code Playgroud)

VAR是新的,是一个隐式类型的局部变量,所以我们只能在本地使用,它具有类似的规则不能为空,等等,但我不知道如果我们使用它"正常"的任何优势.

"常"的部分说,不是在匿名类型,对象和集合初始化查询表达式,其中这是使用var匿名对象的意图,所以我的意思是......就像上面的例子.

你的想法是什么?

c# anonymous-objects .net-3.5 c#-3.0

53
推荐指数
4
解决办法
1万
查看次数

ReSharper和var

可能重复:
为什么ReSharper想要使用'var'作为一切?

我有ReSharper 4.5并且到目前为止发现它非常宝贵,但我有一个顾虑;
它似乎想要隐含每个变量声明(var).
作为一个相对较新的开发人员,在这方面我应该相信ReSharper多少钱?

从Paints Tab Headers的方法中获取以下代码片段.

TabPage currentTab = tabCaseNotes.TabPages[e.Index];
Rectangle itemRect = tabCaseNotes.GetTabRect(e.Index);
SolidBrush fillBrush = new SolidBrush(Color.Linen);
SolidBrush textBrush = new SolidBrush(Color.Black);
StringFormat sf = new StringFormat
{
    Alignment = StringAlignment.Center,
    LineAlignment = StringAlignment.Center
};
Run Code Online (Sandbox Code Playgroud)

Resharper希望我将所有5个改为var.我已经阅读了以下类似帖子,在C#中使用var关键字,但我想从ReSharper的角度来看.

.net resharper implicit

51
推荐指数
5
解决办法
2万
查看次数

var关键字有什么意义?

变种关键字摒弃了需要一个明确的类型声明,我有兴趣地阅读SO讨论时,它可能是适当的.

我还读过(但未使用过)Boo,它似乎通过使声明局部变量可选而更进一步.使用Boo,可以隐含类型和声明.

这让我想知道,为什么C#语言设计师根本不想包含一个var关键字?

更新:是的,var支持匿名类型,但匿名类型本身不需要var关键字...

var anon = new { Name = "Terry", Age = 34 };
Run Code Online (Sandbox Code Playgroud)

anon = new { Name = "Terry", Age = 34 };
Run Code Online (Sandbox Code Playgroud)

c# variables boo

47
推荐指数
5
解决办法
2万
查看次数

C#中"var"和"object"的区别

var类型是否与VariantVB相同?何时object可以接受任何数据类型,这两者之间有什么区别?

c# types

43
推荐指数
4
解决办法
3万
查看次数

在变量声明中使用"var"类型

我们的内部审计建议我们使用显式变量类型声明而不是使用关键字var.他们认为使用var"可能会在某些情况下导致意外结果".

var一旦代码编译成MSIL,我不知道显式类型声明和使用之间的任何区别.

审计员是一位受人尊敬的专业人士,所以我不能简单地拒绝这样的建议.

c# variable-declaration

37
推荐指数
6
解决办法
6124
查看次数

C#Byte [] Byte数组到Unicode字符串

我需要从字节数组到字符串的非常快速的转换.字节数组是Unicode字符串.


在此输入图像描述

.net c# memory string bytearray

33
推荐指数
2
解决办法
5万
查看次数

C#'var'关键字与明确定义的变量

我目前正在使用ReSharper的30天试用版,到目前为止,我对它的建议印象深刻.然而,一个建议让我感到困惑.

当我明确定义变量时,例如:

List<String> lstString = new List<String>();
Run Code Online (Sandbox Code Playgroud)

ReSharped添加了一条波浪形的绿线并告诉我:

使用隐式类型本地变量声明.

如果我按照其建议,ReSharper将代码行更改为:

var lstString = new List<String>();
Run Code Online (Sandbox Code Playgroud)

那么,从改变List<String>到a 是否会有某种性能提升var,或者这仅仅是ReSharper的一个特点?我一直被教导明确定义变量而不是使用动态更为优化.

c# resharper performance

30
推荐指数
3
解决办法
9655
查看次数

var vs explicit声明

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

嗨,刚刚搬了工,我已经习惯var了很多.在我以前的工作中,我们做了大量的TDD和使用resharper.

在这项工作中,他们讨厌第三方工具,这里的开发人员说,一直使用并不好,var而且效率不如显式打字.

前段时间我想的一样,但现在我已经习惯了它,它使我的代码看起来更整洁.

我已经阅读了一些帖子,似乎是否有效率的混淆.我读到使用var生成相同的IL代码.它应该不那么有效吗?在其他地方,我读到即使使用var产生相同的IL代码,它必须找出它是什么类型.那么"推断"究竟意味着什么呢?

关于性能是否相同的一些澄清将是非常棒的.

c#

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