Хобрук: Ваш путь к мастерству в программировании

Метод переопределения в другом пространстве имен C#

У меня есть два класса в разных проектах.

Первый с именем GeneralConcept находится в пространстве имен I.am.here и имеет метод protected virtual с именем DoSomething.

Второй называется SpecificInstanceOfConcept, находится в пространстве имен I.am.in.a.different.place и наследуется от GeneralConcept.

Я пытаюсь переопределить метод. Иметь то же имя, те же входные данные, тот же тип и наследование от класса, в котором реализован метод. Однако
я продолжаю получать сообщение об ошибке

нет подходящего метода для переопределения

То, как это устроено, выглядит так,

namespace I.am.here  
{ 
    public class GeneralConcept        
    {
        //stuff
        protected virtual MyType DoSomething(Inputs input)
        {
             //more stuff
        }
    }
}


namespace I.am.in.a.different.place  
{ 
   public class SpecificInstanceOfConcept : I.am.here.GeneralConcept
    {
        //yet more stuff
        protected override MyType DoSomething(Inputs input)
        {
             //even more stuff
        }
    }
}

Спасибо за помощь.


  • Было бы полезно, если бы вы привели краткий, но полный пример проблемы. 28.04.2014

Ответы:


1

Переопределение пространств имен не должно быть проблемой. Эта ошибка указывает на одно из следующего:

  • I.am.here.GeneralConcept.DoSomething не помечен как virtual, abstract или override
  • I.am.here.GeneralConcept.DoSomething не public или protected
  • тип ввода (или вывода) для I.am.here.GeneralConcept.DoSomething отличается от вашего переопределения.
28.04.2014
  • ...Холодные входы! В них есть точно одинаковый текст. Но типы различаются, потому что в одном пространстве имен класс типов также перезаписывается. Я собирался ответить, что, конечно, входы одинаковые, ударил меня, пока я смотрел на это. Спасибо. 28.04.2014
  • Новые материалы

    Разработчики — Избегайте сложностей глупо
    Сложность управляется, а не побеждается «Простота — великая добродетель, но для ее достижения требуется тяжелая работа и образование, чтобы оценить ее. И что еще хуже: сложность продается..

    Как сделать HTML динамическим с помощью JavaScript
    Код JavaScript выполняется внутри страниц сайта. Таким образом, страница вашего сайта содержит метки HTML, а также пояснения (скрипты), составленные с использованием диалекта сценариев, такого как..

    Деревья классификации и регрессии
    Это мой второй пост об алгоритмах машинного обучения. Мой первый пост посвящен искусственным нейронным сетям, вы можете найти его ниже. Нейронные сети — базовое..

    HMTL - Многозадачное обучение для решения задач НЛП
    Достижение результатов SOTA путем передачи знаний между задачами Область обработки естественного языка включает в себя десятки задач, среди которых машинный перевод, распознавание именованных..

    Решения DBA Metrix
    DBA Metrix Solutions предоставляет удаленного администратора базы данных (DBA), который несет ответственность за внедрение, обслуживание, настройку, восстановление базы данных, а также другие..

    Начало работы с Блум
    Обзор и Codelab для генерации текста с помощью Bloom Оглавление Что такое Блум? Некоторые предостережения Настройка среды Скачивание предварительно обученного токенизатора и модели..

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..