Накладные расходы при указании атрибута Name или x: Name для элементов WPF - PullRequest
2 голосов
/ 17 августа 2011

Существуют ли какие-либо издержки, связанные с простым указанием атрибута Name или x: Name в элементе WPF? У меня были проблемы с поиском какой-либо информации по этому поводу, поэтому, возможно, ответ - нет, но я хотел бы получить отзывы от тех, кто более знаком с внутренней работой WPF.

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

1 Ответ

2 голосов
/ 17 августа 2011

Все, что он делает - это создает ссылку на элемент в сгенерированном коде, чтобы вам было легче ссылаться на него в вашем коде. Пример: (из файла сгенерированного кода MainWindow.g.cs, который будет находиться в скрытой папке «obj» вашего проекта)

    #line 6 "..\..\..\MainWindow.xaml"
    [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")]
    internal System.Windows.Controls.Button button1;

    ...

    void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
        switch (connectionId)
        {
        case 1:
        this.button1 = ((System.Windows.Controls.Button)(target));
        return;
        }
        this._contentLoaded = true;
    }

Если вы не дадите ему имя, "((System.Windows.Controls.Button) (target))" будет по-прежнему создаваться во время выполнения, у вас просто не будет переменной "this.button1" указывая на это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...