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