我有一个继承自A
:
B
public class A : B { }
A a = new A();
List<B> list= new List<B> {
a
}
这给我一个错误,指出a
无法隐式转换为B
。
当我尝试将a
投射到B
时:
(B) a
Visual Studio说演员是redundant
并告诉我将其删除。
有人可以解释一下吗?
答案 0 :(得分:2)
如错误所示,代码中的MainMenu
不是指您的MainMenu
类,而是指System.Windows.Forms.MainMenu
,它不会从UserControl
继承。
要解决此问题,请使用限定名称空间:
controls["MainMenu"] = new Assignment3.Views.MainMenu();
或者,您可以使用与内置类名不冲突的其他类名。
答案 1 :(得分:1)
从您的屏幕截图中,看起来您正在将System.Windows.Forms.MainMenu
课程与您自己的Assignment3.Views.MainMenu
混合。
试试这个:
controls["MainMenu"] = new Assignment3.Views.MainMenu();
答案 2 :(得分:0)
尝试这些更改
public class B
{
}
public class A : B
{
A a = new A();
List<B> b = null;
public A()
{
b = new List<B>() { a };
}
}