Статические переменные в C #
-
20-08-2019 - |
Вопрос
В C # есть способ поместить статическую переменную в метод, подобный VB.Net?
Static myCollection As Collection
Решение
Почему C # не поддерживает статический метод переменные?
В: В C ++ можно написать переменная статического метода и имеет переменная, которая может быть доступна только изнутри метода. C # не предоставить эту функцию. Почему?
A: есть две причины, по которым C # не есть эта функция.
Во-первых, можно получить почти тот же эффект, имея статический уровень класса и метод добавления статика потребует увеличения сложность.
Во-вторых, статика уровня метода несколько печально известной причиной проблемы при вызове кода многократно или из нескольких потоков, и так как определения в методы, труднее найти определения.
Другие советы
Нет, нет, но чем это отличается от наличия статической переменной на уровне класса? Р>
На самом деле, если вы посмотрите , как реализован общий доступ, это компилятор трюк, который создает статическое поле в классе.
Наиболее близкая вещь к VB.NET Static
- создать поле в текущем типе. Кроме этого C # не имеет эквивалента.
Нет, CLR не поддерживает это, и VB.NET прибегает к хитростям компилятора, чтобы разрешить это. Тьфу.
Я уверен, что эквивалент C # равен const
: поэтому:
public const Collection myCollection = new Collection();
Я не слишком знаком с VB.NET, поэтому я могу быть не в своей тарелке, но это позволит вам установить переменную, которую нельзя изменить.