Измените Модификаторы Доступа средств управления ASP.NET

Статические конструкторы.

Экземпляры:

public class Example
{
    static Example()
    {
        // Code to execute during type initialization
    }

    public Example()
    {
        // Code to execute during object initialization
    }
}

Статические классы:

public static class Example
{
    static Example()
    {
        // Code to execute during type initialization
    }
}

MSDN говорит :

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

, Например:

public class MyWebService
{
    public static DateTime StartTime;

    static MyWebService()
    {
        MyWebService.StartTime = DateTime.Now;
    }

    public TimeSpan Uptime
    {
        get { return DateTime.Now - MyWebService.StartTime; }
    }
}

, Но, Вы, возможно, также столь же легко сделали:

public class MyWebService
{
    public static DateTime StartTime = DateTime.Now;

    public TimeSpan Uptime
    {
        get { return DateTime.Now - MyWebService.StartTime; }
    }
}

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

MSDN предлагает полезные примечания по статическим конструкторам:

  • А статический конструктор не берет модификаторы доступа или имеет параметры.

  • А статического конструктора вызывают автоматически для инициализации класса, прежде чем первая инстанция будет создана
    , или ссылаются на любых статических участников.

  • А статического конструктора нельзя вызвать непосредственно.

  • пользователь не имеет никакого контроля на том, когда статический конструктор выполняется в программе.

  • А типичное использование статических конструкторов состоит в том, когда класс использует файл журнала, и конструктор используется для записи
    записи в этот файл.

  • Статические конструкторы также полезны при создании классов обертки для [1 112]
    неуправляемый код, когда конструктор
    может назвать метод LoadLibrary.

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

самое важное примечание - то, что, если ошибка происходит в статическом конструкторе, TypeIntializationException, брошен, и Вы не можете выполнить развертку к незаконной строке кода. Вместо этого необходимо исследовать TypeInitializationException InnerException участник, который является определенной причиной.

6
задан Steve Cooper 22 July 2009 в 13:39
поделиться

3 ответа

Вы можете просто удалить объявление из дизайнера и поместить это в вашем коде.

В комментариях к объявлению сказано сделать это.

/// To modify move field declaration from designer file to code-behind file.
6
ответ дан 10 December 2019 в 02:51
поделиться

Один из вариантов, который я рассмотрел пишет общедоступное свойство, открывающее исходную страницу;

public TextBox PublicTextBox { get { return this.MyTextBox; } }

Который выполняет свою работу, но кажется хакерским.

2
ответ дан 10 December 2019 в 02:51
поделиться

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

1
ответ дан 10 December 2019 в 02:51
поделиться
Другие вопросы по тегам:

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