说我有以下代码:
var longValue = 2147483650; // Three more than the max int size
var intValue = 10;
var variableOfUnknownType = longValue - intValue;
我想知道variableOfUnkownType
是什么类型。 (即variableOfUnknownType.GetType() == System.Int64
或variableOfUnkownType.GetType() == System.Int32
?)
当然,我可以仔细阅读关于算术类型转换的C#文档,或者在我的代码中添加Console.WriteLine(variableOfUnknownType.GetType());
语句来学习这个问题的答案。但是,根据C#'s var documentation
var关键字指示编译器从初始化语句右侧的表达式推断变量的类型。
这意味着MS Visual Studio应该能够在编译代码之前告诉我变量的类型。
我的问题是:
如何使用MS Visual Studio告诉我这个特定var
变量的值?
答案 0 :(得分:5)
只需将鼠标悬停在' var'关键字,它会告诉你推断出什么类型
答案 1 :(得分:1)
TL;博士;回答 将鼠标悬停在" var"你看到了类型(提示它是Int64 /长)
答案很长: 只需获取代码并将其替换为var表示的类型,即可获得以下代码:
uint longValue = 2147483650; // Three more than the max int size
int intValue = 10;
long variableOfUnknownType = longValue - intValue;
如你所见,这是三种不同的类型,但为什么呢? uint很有意义。没有必要占用64位,如果你可以用32位做同样的事情,因为这是一个正数,我们可以使用无符号整数。 int是自我解释的,但是起初有点混乱。
我们作为程序员知道int.MaxValue + 3 - 10
再次适合int
,但编译器不知道这一点。毕竟,他怎么知道intVariable
是10?简单:他没有。因此,他推断出他知道可以处理价值的类型。由于我们在这里减去,它可能导致负值,所以他采用了符合值的签名类型,即Int64 / long