Si deseo de reducir el alcance de una variable en C#, puedo introducir apoyos adicionales - es decir:Ámbito de aplicación y cómo reducir usando VB.Net
class Program
{
static void Main(string[] args)
{
myClass x = new myClass();
x.MyProperty = 1000;
Console.WriteLine("x = " + x.MyProperty);
{
myClass y = new myClass();
y.MyProperty = 2000;
Console.WriteLine("y = " + y.MyProperty);
}
myClass y2 = new myClass();
y2.MyProperty = 3000;
Console.WriteLine("y2 = " + y2.MyProperty);
}
class myClass
{
public int MyProperty { get; set; }
}
}
en el IDE, ya no puedo de referencia Y fuera del alcance introducido por los nuevos refuerzos. Pensé que esto significaría que la variable y estaría disponible para la recolección de basura.
(es interesante observar que cuando se ve el código compilado usando reflector parece que no hay ninguna diferencia con o sin los apoyos adicionales)
¿Hay alguna manera similar a este para acotar el alcance al utilizar VB. ¿red? ¿Esto tiene algún impacto cuando las variables definidas en el alcance interno pueden ser basura?
en lo que respecta al alcance, la ayuda de .Net menciona que el bloque define un nivel de alcance de bloque, y se aplica a cualquier cosa definida dentro del bloque, pero no al sujeto del bloque. alcance estrechamiento podría lograrse mediante el uso de Con 1 extremo con o con verdadera Fin Con pero todavía se siente hacky ... – hitch
El comportamiento GC es el mismo en VB.NET. VB.NET no tiene equivalente de un bloque de instrucciones solo para el alcance: consulte la entrada de MSDN (desde la respuesta de paintballbob) http://msdn.microsoft.com/en-us/library/1t0wsc67.aspx – MarkJ