Ошибка компилятора, ссылающаяся на пользовательский дополнительный метод C#

Я бы разделил его на две функции: первая с первым вызовом со своим собственным try / catch и собственным действием ошибки и возвращением данных запроса.

Затем я проверил бы эти данные и, когда они не были пустыми, снова вызвал второй запрос с собственной обработкой try / catch и error.

5
задан Richard Szalay 12 March 2009 в 13:58
поделиться

4 ответа

Во-первых, Вам нужна директива "использования" для включения пространства имен, которое включает класс с дополнительными методами.

Второй - ре "MyClass.myMethod" - дополнительные методы работают над экземплярами, не как статичные - таким образом, Вам было бы нужно:

MyClass foo = ...
int i = foo.myMethod(); // translates as: int i = Extentions.myMethod(foo);

Наконец - если Вы хотите использовать дополнительный метод внутри MyClass (или подкласс), Вам нужно явное this - т.е.

int i = this.myMethod(); // translates as: int i = Extentions.myMethod(this);

Это - один из нескольких случаев где this вопросы.

19
ответ дан 18 December 2019 в 05:40
поделиться

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

И способ обойти необходимость добавить пространство имен, где Ваше расширение должно определить расширение в том пространстве имен. Это не хорошая практика хотя

6
ответ дан 18 December 2019 в 05:40
поделиться

Вы импортировали (using пункт вначале) пространство имен, в который Extensionsкласс?

using Myself.MyProduct.MyNamespace;
5
ответ дан 18 December 2019 в 05:40
поделиться

Существует ли причина, вынуждающая Вас использовать Дополнительные методы?

Необходимо только использовать дополнительные методы, если Вы не можете добавить метод в первоисточнике и не можете расширить класс с помощью подкласса (если он объявляется sealed)

Страница на Дополнительных состояниях методов:

В целом мы рекомендуем реализовать дополнительные методы экономно и только когда Вы имеете к. Каждый раз, когда возможно, клиентский код, который должен расширить существующий тип, должен сделать так путем создания нового типа, полученного из существующего типа. Для получения дополнительной информации посмотрите Наследование (Руководство по программированию C#).

Вот еще больше информации относительно классов и полиморфизма.

Если расширение класса действительно не, возможность затем следует другим ответам относительно using направляющие и методы экземпляра по сравнению со статическими методами.

1
ответ дан 18 December 2019 в 05:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: