2016-10-08 11 views
0

У меня есть класс 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 и говорит мне, чтобы удалить его.

Может кто-нибудь объяснить это?

Image 1

Image 2

+0

неподвижные и изображения добавлены – yanhua

ответ

2

Как показывает ошибки, то MainMenu в коде имеет в виду не ваш MainMenu класса, но System.Windows.Forms.MainMenu, который не наследует от UserControl.

Чтобы исправить это, используйте квалифицированное пространство имен:

controls["MainMenu"] = new Assignment3.Views.MainMenu(); 

или в качестве альтернативы, вы можете использовать другое имя класса, который не конфликтует с встроенным именем класса.

+0

Спасибо большое! Провёл долгое время, пытаясь исправить это, подумал, что я схожу с ума – yanhua

1

С ваших скриншотов, похоже, что вы смешиваете класс System.Windows.Forms.MainMenu со своим собственным Assignment3.Views.MainMenu.

Попробуйте это:

controls["MainMenu"] = new Assignment3.Views.MainMenu(); 
0

Попробуйте эти изменения

public class B 
    { 
    } 
    public class A : B 
    { 
     A a = new A(); 

     List<B> b = null; 

     public A() 
     { 
      b = new List<B>() { a }; 
     } 
    } 
Смежные вопросы