我有一个声明如下的变量:
var a = 99494;
然后我使用以下方法来确定变量的字节数:
Marshal.SizeOf(a)
它能获取该值所占用的实际内存大小吗?
我有一个声明如下的变量:
var a = 99494;
然后我使用以下方法来确定变量的字节数:
Marshal.SizeOf(a)
它能获取该值所占用的实际内存大小吗?
它是否获取了该值占用的实际内存大小?
是的。在这种情况下非常简单,因为var
是一个int
类型。它总是会产生相同的值(4)。(var
不是动态类型,而是在编译时确定的。)
var x = new BigBigBigClass()
。这使得其他人阅读您的代码更加困难,并且容易出错。C#是一种静态类型语言,虽然声明类型需要多花费几秒钟,但当您不小心混淆类时,它会付出回报。var
?您没有给出任何推荐理由。我建议您将这部分从答案中移除,因为它与所问的问题无关。 - Patrick Hofmanvar
是没有意义的,除了极少数情况下必须使用var
之外,其余情况只是个人观点。 - Lasse V. Karlsenvar
可以通过促使你想出更好的命名来使代码更易读。而且我不确定关于“更容易犯错误”的部分,因为编译器不会允许你这样做,而且即使在构建之前,VS Code 分析也会用红色下划线标出“错误”。正如先前提到的,这只是最好基于个人观点的看法。 - Vladi Pavelka
var
只是“我不想写这个变量的类型。编译器,请完成这项工作并假装我写了类型”。 - Damien_The_Unbelieverint a = 99494;
,因为99494
是int
类型。 - Lasse V. Karlsenint size = sizeof(a);
因为99494
是int
(Int32
) 类型,它占用 32 位 = 4 字节。 - Dmitry Bychenko