Variáveis ??estáticas em C #
-
20-08-2019 - |
Pergunta
Em C #, há uma maneira de colocar uma variável estática em um método como VB.Net?
Static myCollection As Collection
Solução
Por que não C # método estático apoio variáveis?
Q: Em C ++, é possível escrever um variável método estático, e ter um variável que só pode ser acessado do interior do método. C # não fornecer esse recurso. Por quê?
A: Há duas razões C # não têm esta característica.
Em primeiro lugar, é possível obter quase o mesmo efeito por ter um estática em nível de classe e método de adicionar estática que exigem maior complexidade.
Em segundo lugar, a estática nível método são um pouco notório para causar problemas quando o código é chamado ou repetidamente a partir de vários segmentos, e uma vez que as definições estão no métodos, é mais difícil de encontrar o definições.
Outras dicas
Não, não é, mas como isso é diferente, então ter uma variável estática no nível de classe?
Na verdade, se você olhar em como compartilhado é implementado, é um compilador truque que cria um campo estático na classe.
A coisa mais próxima de VB.NET é Static
é criar um campo no tipo atual. Diferente do que C # não tem equivalente.
Não, o CLR não suporta isso, e VB.NET recorre a truques compilador para permitir isso. Ugh.
Eu tenho certeza que o C # equivalente é const
; por isso:
public const Collection myCollection = new Collection();
Eu não estou muito familiarizado com VB.NET, para que eu pudesse estar fora da base, mas que permitirá que você definir uma variável que não pode ser alterado.