2015-08-13 4 views
-8

В статическом веб-методе asp.net как можно вызвать нестатический метод.Вызов нестатического метода внутри статического веб-метода

http://i.stack.imgur.com/UoTRX.png

+2

Короткий ответ: вы не можете сделать метод, который хотите вызвать также как статический. –

+0

вам нужна ссылка на объект для вызова нестатического метода внутри статического метода. –

+1

Кстати, покажите свою работу и сообщение об ошибке как текст, а не как изображение. –

ответ

3

Прежде всего, необходимо понять разницу между "статической" и "например". И что это означает, концептуально, для операции, которую вы пытаетесь выполнить.

Операция с экземпляром - это что-то, что выполняется на объекте конкретного объекта. Попадая в чрезмерную автомобильную аналогию ... Если вы должны были выполнить операцию на своем автомобиле (проехать, поместить газ в бак, свернуть его и т. Д.), То вы будете выполнять эту операцию на , что конкретный автомобиль. Не по общей концепции автомобиля, не на всех машинах, не на всех машинах того же типа, даже на другом полностью идентичном автомобиле рядом с ним. Только на , что автомобиль.

Статическая операция не связана с конкретным экземпляром. Это не относится к физической конструкции. Для автомобиля вам может понадобиться сделать что-то вроде поиска потребительских рейтингов для конкретной марки и модели. Вы не ищете рейтинги для конкретных. У двух или более подобных автомобилей будет одинаковый рейтинг. Вы просто ищете информацию о концепции автомобиля, независимо от конкретного физического экземпляра одного.

Теперь применить эту концепцию к статическим и экземпляра операций в коде ...

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

Итак, в отношении вашего кода у вас есть несколько разных Подходит для:

  1. Возможно, вам нужно создать экземпляр внутри статической операции и выполнить операцию экземпляра в этом экземпляре.
  2. Возможно, потребляемый код должен предоставить существующий экземпляр для статической операции, чтобы он мог использовать этот экземпляр.
  3. Возможно, операция экземпляра должна быть логически статичной.
  4. Возможно, статическая операция должна логически основываться на экземплярах.

Мы не можем знать, какие из этих вариантов имеют наибольший смысл. Мы можем помочь, если вы предоставите какой-то значимый контекст. Но вам нужно лучше понять систему, которую вы моделируете, и что делают ваши операции.

5

Создать экземпляр класса, который вы хотите использовать метод.

+0

Пожалуйста, отредактируйте мой код, который я приложил по ссылке. –

+0

С этим веб-методом экземпляр класса является страницей веб-форм asp.net, в которой определяется веб-метод. Вручную создание класса страницы веб-форм, вероятно, не будет полезно. –

+0

Я не сказал, что класс должен быть страницей веб-форм, например, можно было бы реорганизовать его в отдельный класс. –

3

Создать экземпляр не-статический метод

, например:

public class ABC 
{ 
    public void AB() 
    { 
    } 

    public static void PQ() 
    { 
     ABC obj= new ABC(); 
     obj.AB(); 
    } 
} 
+0

Можете ли вы изменить мой код, который я предоставил в ссылке? –

+0

да почему бы и нет, вы можете отправить мне свой код – vakeel

+0

U можете найти его на изображении. я не могу отправить здесь, поскольку его символы превышают. –

Смежные вопросы