"Класс" не содержит определения для "Метод", - программирование
Подтвердить что ты не робот

"Класс" не содержит определения для "Метод",

В классе Employee У меня есть некоторые методы, которые работают нормально. Теперь я хотел добавить новый метод, например

public void ExampleMethod()
{         
}

Тогда я называю это

Employee employee = new Employee();
employee.ExampleMethod();

ExampleMethod присутствует в IntelliSense, отображаемом после точки, когда я нажимаю F12, он также перенаправляет меня на этот метод, но при запуске проекта у меня есть ошибка: "Employee" не содержит определения для "ExampleMethod" и никакого расширения метод "ExampleMethod", принимающий первый аргумент типа "Employee", может быть найден (вам не хватает директивы using или ссылки на сборку?)

Я не знаю, почему эта ошибка вызвана, потому что все другие более ранние методы работают нормально. В чем проблема?

4b9b3361

Ответ 1

Существует три возможности:

1) Если вы ссылаетесь на старую DLL, то ее нельзя использовать. Таким образом, вы ссылаетесь на новую DLL

2) Если вы используете его в другом пространстве имен и пытаетесь использовать другую библиотеку пространства имен, он не будет ссылаться на этот метод.

3) Возможно, вам потребуется перестроить проект

Я думаю, что третий вариант может быть причиной для вас. Пожалуйста, разместите дополнительную информацию, чтобы понять вашу конкретную проблему.

Ответ 2

Создать класс с именем пространства имен может решить вашу проблему

namespace.Employee employee = new namespace.Employee(); 
employee.ExampleMethod();

Ответ 3

У меня была та же проблема. Оказывается, проект, на который я ссылался, не собирался строить. Когда я пошел в диспетчер конфигурации сборки в visual studio и включил справочный проект, проблема была решена.

Ответ 4

Если вы используете класс из другого проекта, проект нуждается в повторной сборке и создании re-dll. Убедитесь, что "Build" проверен для этого проекта на Сборка → Диспетчер конфигурации в Visual Studio. Таким образом, эталонный проект будет перестраивать и обновлять dll.

Ответ 5

Я столкнулся с этой проблемой; проблема кажется отличной от других ответов, размещенных здесь, поэтому я расскажу об этом, если это поможет кому-то.

В моем случае у меня есть внутренний базовый класс, определенный в одной сборке ( "A" ), внутренний производный класс, определенный во второй сборке ( "B" ), и тестовая сборка ( "TEST" ). Я обнаружил внутренние элементы, определенные в сборке "B", "TEST" , используя InternalsVisibleToAttribute, но не выполнял этого для сборки "A" . Это вызвало ошибку, упомянутую выше, без дальнейшего указания проблемы; используя InternalsVisibleToAttribute, чтобы открыть сборку "A" на "TEST" , разрешили проблему.

Ответ 6

У меня была такая же проблема при работе с решением с несколькими проектами, которые совместно используют код. Оказалось, что я забыл обновить DLL в папке 2-го проекта.

Я предлагаю внимательно посмотреть на столбец "проект" в окне "Список ошибок" и убедиться, что проект также использует правильную DLL.

Ответ 7

У меня была та же проблема. Я изменил версию сборки в AssemblyInfo.cs в папке свойств. Но я не знаю, почему эта проблема возникла. Может быть, компилятор не понимает, что это dll новее, просто изменив версию сборки.

Ответ 8

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

Ниже была решена моя проблема: выбрав текущий проект в обозревателе решений, на верхней панели появится значок Show all files. Щелчок правой кнопкой мыши по файлу и выбор Include In Project делает вещь.

Кредит

Ответ 9

Попробовав все, я закрыл и снова открыл VStudio Professional. Теперь это работает :-)

Ответ 10

У меня была та же проблема: "Перестроить решение", а затем "Чистое решение" не сработало. Я решил это, проверив свои ссылки на DLL.