No hay variables globales en C#. Una variable siempre tiene un alcance local. La unidad fundamental de código es la clase, y dentro de una clase tiene campos, métodos y propiedades.
Usted puede imitar una "variable global" al hacer un campo estático propiedad pública o de alguna clase, pero no debe . C# lo hace difícil por una muy buena razón; las variables globales son pura maldad. Violan varios buenos principios del diseño OO: encapsulación, acoplamiento flexible y alta cohesión, por nombrar solo algunos.
Me doy cuenta de que esta es una pregunta para principiantes, pero creo que es porque esta es una pregunta para principiantes que es tan importante decir esto. Ahora es el mejor momento para comenzar a aprender qué tácticas se desaconsejan activamente o incluso son peligrosas en C#, y usar un campo/propiedad estático como variable global es aproximadamente seis de ellas. Existen usos legítimos para estos constructos, pero pasar datos de un lugar a otro no es uno de ellos.
Si dos clases diferentes dependen de la misma información, entonces pasa la información de la fuente al destino. Esto se hace generalmente a través del constructor o como un argumento para el método que se llama. Siempre debe tener una y solo una instancia que verdaderamente "posee" esta información; Hacer que la información sea "global" significa que no se puede razonar sobre quién o qué podría depender de ella en un momento dado.
Considere esto y trate de pensar en otras formas en las que podría compartir la información que desea almacenar en una variable global (es decir, proporcionándola como argumento para un constructor o método). Si no está seguro, publique un ejemplo de lo que intenta hacer y le ayudaremos.
Yo personalmente recomendaría borrar la frase "variable global" de su vocabulario. – Aaronaught
para referencia futura, algo que es trivial, es algo que parece ser simple. – NerdFury