我目前正试图让我的头脑围绕铸造和拳击。据我目前了解:
- 装箱 - 值类型到引用类型(即 int 到对象)
- 拆箱 - 引用类型到值类型(即对象到 int)
- 类型转换 - 目前在我看来类似于拳击,但允许您分配您希望引用类型的对象类型。(即int to customObjectType)
我目前正在使用的示例试图让我绕过它。假设我有 2 个类,一个类中的一个方法调用另一个类的构造函数。
//1st class
public class FirstClass
{
//code for fields,constructor & other methods
public void CallOtherClass(int firstClassID)
{
int x = firstClassID;
SecondClass test = new SecondClass(x);
}
}
//2nd class
public class SecondClass
{
public SecondClass(FirstClass firstClass)
{
//set some fields
}
}
好的,所以在上面的场景中,我们会遇到一个问题,因为方法 CallOtherClass 试图设置 SecondClass 的构造函数,但是 SecondClass 的构造函数需要一个 FirstClass 类型的参数,而我们只能提供一个 int。
所以据我了解,这将是使用类型转换的好时机?像下面的东西。
//1st class
public class FirstClass
{
//code for fields,constructor & other methods
public void CallOtherClass(int firstClassID)
{
int x = firstClassID;
FirstClass a;
a = (FirstClass)x;
SecondClass test = new SecondClass(a);
}
}
//2nd class
public class SecondClass
{
public SecondClass(FirstClass firstClass)
{
//set some fields
}
}
在我看来,这似乎是将 x 的类型更改为 FirstClass 的引用类型。显然,我的理解与某些地方相去甚远,因为它会产生错误
"Cannot convert type 'int' to 'Namespace.FirstClass"
有什么想法吗?