【发布时间】:2019-11-13 10:09:35
【问题描述】:
(我的问题参考下面写的代码)
为什么我不能将 int[] 类型隐式转换为 var[]?我知道你不能隐式分配 var 和 const。但为什么?编译器实际上是在告诉我“不能将 int[] 类型隐式转换为 var[]。”
如果计算机已经知道我的意图,他们为什么不去做呢?未来的 IDE、编译器、Visual Studio(不知道该用哪一个)有一天会自动为你在 C# 中转换它吗?或者有什么原因你不能转换它?希望我能了解原因。
class Program
{
static void Main(string[] args)
{
var[ ] a = new int[10];
for (int k = 0; k < 10; k++) {
a[k] = k*2;
}
foreach (int k in a) {
Console.WriteLine(k);
}
}
}
(代码源sololearn)
我的最后一个问题只是好奇。 (如上面的例子)日常编程看起来与教科书有很大不同吗?我知道教科书对于学习理论和理解至关重要。
【问题讨论】:
-
只要做 var a = new int[10]
-
var[]在 C# 中不是一个东西。只需var即可。 -
var 不是类型,您只需让编译器推断它代表什么真实类型。如果结论不可能或不是唯一的,它会告诉你。 var 数组没有意义。它更像是一种语法,一种预处理器。
-
谢谢大家。我想语法很重要。 :)
标签: c# constants var implicit-conversion