Получение доступа от статического метода

Мой мозг не работает этим утром. Я нуждаюсь в некоторой помощи, получающей доступ к некоторым участникам от статического метода. Вот пример кода, как я могу изменить это так, чтобы TestMethod () имел доступ к testInt

public class TestPage
{ 
    protected int testInt { get; set; }

    protected void BuildSomething
    {
      // Can access here
    }

    [ScriptMethod, WebMethod]
    public static void TestMethod()
    {
       // I am accessing this method from a PageMethod call on the clientside
       // No access here
    }  
}
6
задан Mike Fielden 12 January 2010 в 15:06
поделиться

4 ответа

testInt объявлено как поле экземпляра. Для метода static невозможно получить доступ к полю экземпляра, не имея ссылки на экземпляр определяющего класса. Таким образом, либо объявить testInt статическим, либо изменить TestMethod на принятие экземпляра TestPage. Таким образом,

protected static int testInt { get; set; }

нормально, как и

public static void TestMethod(TestPage testPage) {
    Console.WriteLine(testPage.testInt);
}

Что из них правильно, во многом зависит от того, что вы пытаетесь смоделировать. Если testInt представляет состояние экземпляра TestPage, то используйте последний. Если testInt относится к типу TestPage, то используйте первое.

10
ответ дан 8 December 2019 в 04:52
поделиться

Два варианта, в зависимости от того, что именно вы пытаетесь сделать:

  • Сделайте свойство testInt статическим.
  • Измените TestMethod так, чтобы в качестве аргумента использовался экземпляр TestPage.
6
ответ дан 8 December 2019 в 04:52
поделиться
4268584-

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

Это бедный человек обратный твин.

-121--2793640-
protected static int testInt { get; set; }

Но будьте осторожны с проблемами для резьбы.

4
ответ дан 8 December 2019 в 04:52
поделиться

Помните, что static означает, что член или метод принадлежит классу, а не экземпляру класса. Таким образом, если вы находитесь внутри статического метода и хотите получить доступ к нестатическому члену, то у вас должен быть экземпляр класса, на котором можно получить доступ к этим членам (если только члены не должны принадлежать к какому-то одному конкретному экземпляру класса, в этом случае вы можете просто сделать их статическими).

4
ответ дан 8 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

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