Вопрос

В C # есть способ поместить статическую переменную в метод, подобный VB.Net?

Static myCollection As Collection
Это было полезно?

Решение

  

Почему C # не поддерживает статический метод   переменные?

     

В: В C ++ можно написать   переменная статического метода и имеет   переменная, которая может быть доступна только   изнутри метода. C # не   предоставить эту функцию. Почему?

     

A: есть две причины, по которым C # не   есть эта функция.

     

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

     

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

     

- msdn c # faq

Другие советы

Нет, нет, но чем это отличается от наличия статической переменной на уровне класса?

На самом деле, если вы посмотрите , как реализован общий доступ, это компилятор трюк, который создает статическое поле в классе.

Наиболее близкая вещь к VB.NET Static - создать поле в текущем типе. Кроме этого C # не имеет эквивалента.

Нет, CLR не поддерживает это, и VB.NET прибегает к хитростям компилятора, чтобы разрешить это. Тьфу.

Я уверен, что эквивалент C # равен const: поэтому:

public const Collection myCollection = new Collection();

Я не слишком знаком с VB.NET, поэтому я могу быть не в своей тарелке, но это позволит вам установить переменную, которую нельзя изменить.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top