问题标签 [implicit-typing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
17 回答
19534 浏览

c# - 为什么 var 会是一件坏事?

前几天我一直在和我的同事聊天,听说他们的编码标准明确禁止他们var在 C# 中使用关键字。他们不知道为什么会这样,而且我总是发现隐式声明在编码时非常有用。我从来没有遇到任何问题找出变量是什么类型(你只需将鼠标悬停在 VS 中的变量上,你就会以这种方式获得类型)。

有谁知道为什么在 C# 中使用 var 关键字是个坏主意?

0 投票
5 回答
37878 浏览

c# - 使用隐式类型的局部变量

我刚刚安装了ReSharper的试用版,我注意到的第一件事是它总是建议用隐式类型的局部变量替换显式类型的局部变量,例如:

我认为显式类型的变量更具可读性(更明确)。

您如何看待 ReSharper 的建议?使用隐式类型变量有什么好处吗?你什么时候使用隐式/显式变量?

0 投票
2 回答
1311 浏览

parameters - 我应该如何将用户定义的类型传递给 SqlParameterCollection.AddWithValue?

我有一个名为 的自定义数据类型StudentID,它具有到字符串的隐式转换。

当我将StudentID实例传递给SqlCommand.Parameters.AddWithValue(作为值)并执行命令时,我收到以下错误:

指定参数的类型 likeSqlDbType.NVarChar没有帮助。唯一可行的是将StudentID值显式转换为字符串,这违背了隐式转换的目的。

我猜该框架不考虑可用的转换。我可以对StudentID类做些什么来使命令处理它而不需要显式转换为原始类型?

这篇 MSDN 文章讨论了如何处理原始类型,而不是用户定义的类型。最接近的匹配是对象,它说它作为变体传递。

确切的故障点在 System.Data.SqlClient.MetaType.GetMetaTypeFromValue 方法中,带有签名private static MetaType GetMetaTypeFromValue(Type dataType, object value, bool inferLen)。反射表明它寻找原始类型,如果 TypeCode 是对象,它会寻找 Sql* 数据类型,例如 SqlBoolean,因此它似乎在寻找非常特定的原始类型或 Sql* 类型。

0 投票
6 回答
1314 浏览

c# - 隐式输入;为什么只是局部变量?

有谁知道或关心推测为什么隐式类型仅限于局部变量?

但为什么不...

0 投票
4 回答
216 浏览

c# - 类隐式转换

我知道我可以对类使用隐式转换,如下所示,但是有什么方法可以让实例在没有强制转换或转换的情况下返回字符串?

0 投票
8 回答
3203 浏览

c# - C# 3.0 中隐式类型的好处是什么>+

我能看到的唯一优势是:

超过

是不是以后如果你决定你想要ClassB,你只需要改变声明的RHS。

我想如果您正在枚举一个集合,您也可以只使用“var”,然后再找出类型。

是这样吗??我虚弱的头脑看不到其他巨大的好处吗?

0 投票
5 回答
577 浏览

c - 将“长 i = 1;” 在 C 中导致隐式类型转换?

如果我写“ long i = 1;”而不是“ long i = 1l;”,是否会1被识别为int然后隐式转换为long

编辑:谢谢大家。我看到没有类型转换。后缀u(如10u)也是如此吗?那么这些l和有什么用u呢?

0 投票
2 回答
241 浏览

c# - 为什么我不能用 C# 中的隐式类型来做到这一点?

有没有不同的方式来做我想做的事情?

如果没有,我真的看不出隐式类型有那么多意义......

0 投票
3 回答
5244 浏览

c++ - 表达式中的隐式类型转换 int 到 double

当我在代码中使用命名常量时,我​​一直在尝试减少隐式类型转换。例如,而不是使用

我会用

这样就不需要进行类型转换。但是,在我做这样的事情的表达中......

等等。 2 是否被评估为整数并且是隐式转换的?我应该改用 2.0 吗?

0 投票
5 回答
1155 浏览

c# - 隐式类型变量是前进的方向(C#)

我在最初为 .net v2 编写的项目中使用 StyleCop for Resharper。但是我已经将这个项目升级为 3.5 框架。

Stylecop 建议我将大部分显式类型变量更改为隐式类型,例如:

字符串 - 变量

自定义强类型 - var

这是使用 .net 3.5 项目时的前进方向吗?将所有内容都声明为 var 似乎很不寻常。

如果我的术语已经用完,请随时更新问题标题...