C # ссылается на статическое поле с одноименной локальной переменной - PullRequest
0 голосов
/ 27 ноября 2011

В довольно ограничивающем контексте мне нужно сослаться на поле статического класса из конструктора, имя переменной которого совпадает с именем статического поля. Вот пример для иллюстрации, который также включает нестатическое поле, чтобы подчеркнуть тот факт, что для нестатических полей можно использовать «this» для ссылки на поле класса:

public class Example () {

    private static DateTime firstInstance;
    private static DateTime referenceInstance;

    private String Name;

    static Example() {
        first=DateTime.Now;
    }

    public Example(String Name, DateTime referenceInstance) {
        this.Name=Name;
        referenceInstance=referenceInstance;
    }
}

Как можно получить доступ к статическому полю "referenceInstance" без ключевого слова "this", как это происходит с "Name"? В идеальном мире я бы просто реорганизовал либо переменную класса, либо переменную constrictor, чтобы иметь другой идентификатор, однако по довольно технической причине (печатная документация) их нельзя изменить здесь.

Спасибо.

1 Ответ

2 голосов
/ 27 ноября 2011

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

public Example(String Name, DateTime referenceInstance) {
 this.Name=Name;
 Example.referenceInstance=referenceInstance;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...