C#试图将一个类分配给另一个类

时间:2011-12-11 14:43:45

标签: c# visual-studio

我正在尝试运行以下代码:

classA = classD;

classA中的值分配给classD(该变量是从另一个名为'classC'的类共享的。)

上面的行通常在C ++中工作,但在C#中它返回错误!这可能在C#?

2 个答案:

答案 0 :(得分:2)

在评论A : D中,所有A都是D,但并非所有D都必须A

所以有两个变量:

A classA;
D classD = ...

我们需要

classA = (A) classD;

这会进行类型检查,以确认特定classD 实际上也是A。如果是这种情况(或null)则分配成功;否则会发生异常。

这是为了防止您为classA分配实际上并非A的内容。

注意它是另一种方式隐含的,因为编译器知道它是有效的:

classD = classA; // always valid - no type check

答案 1 :(得分:0)

如果您要求可以从不同类的实例中复制相同名称的属性,则为no。

说类classA = classB类层次结构中不相关的类会导致类型错误。如果它们是相关的,那么您所做的只是更改变量classA的值,而不是复制任何内容。