(type)objectname.var中的(type)是什么

pgh*_*ech 4 c# casting

我正在阅读一本关于C#的书,并且遇到了一些我似乎无法查看的东西,因为我不知道它叫什么,或者试图按描述搜索某些东西.

有人可以向我解释发生了什么,或者在(type)引用对象之前的含义是(int)objectname.variablename什么?

这似乎是对我的投射.

编辑:由于大多数人在我猜测时都会关注"我的"引用,并且需要更多代码,因此我将包含我正在审核的代码,这些代码带来了这个问题.我在(int)numericupDown1.Value中质疑(int);

private void numericUpDown1_ValueChanged(object sender, EventArgs e) 
{
    dinnerParty.NumberOfPeople = (int)numericUpDown1.Value;
    DisplayDinnerPartyCost();
}
Run Code Online (Sandbox Code Playgroud)

Iai*_*ard 6

它是强制转换,它试图在运行时将variablename强制转换为类型(类型)

  • @David:不,这是明确的*转换*.您使用显式和隐式*转换*来混淆显式和隐式转换.隐式*演员*在C#中极为罕见; 人们通常会遇到使用强制转换运算符的唯一时间是在foreach循环中. (8认同)

Gag*_*age 4

它将 numericUpDown1.Value 转换(转换)为 int 值。这也可以使用来完成

Convert.toInt32(numericUpDown1.Value)
Run Code Online (Sandbox Code Playgroud)

我假设dinnerParty.NumberOfPeople 是一个整数值,因此如果您没有进行强制转换,如果提供的值不是整数,则会抛出错误。例如,如果提供的值是双精度数或字符串,则会抛出错误,通过强制转换,它将把双精度数(例如 20.5)转换为 20,并且它将被接受。对于字符串,这取决于字符串中是否包含数字。如果字符串是“12”,那么使用上面提到的转换方法会将其转换为整数 12。