using System;
using System.Collections.Generic;
using System.Linq;
using System.Globalization;
namespace tesitingInMyKitchen
{
class program
{
static string cheese = "chedar";
static void Main()
{
string cheese = "swiss";
//printing local cheese
Console.WriteLine(cheese);
//here want to print global cheese
Console.WriteLine(global :cheese);
}
}
}
答案 0 :(得分:6)
你的"全局变量"
static string cheese = "chedar";
不是全局变量,而是类program
的静态属性。因此,您可以通过以下方式访问它:
Console.WriteLine(program.cheese);
请注意,由于您尚未在静态属性上明确定义访问修饰符(public
,protected
,internal
或private
),因此请访问默认情况下,限制为属性定义的类的成员(隐式private
声明),而类program
本身默认为internal
。因此,此属性cheese
可用于您的类program
中的所有方法,但它不适用于任何其他类的任何成员,包括从program
继承的类。
答案 1 :(得分:1)
对于静态字段,请使用 ClassName.FieldName ,如果它是非静态的,则可以使用“this”关键字: this.FieldName
class MyClass
{
static string cheese = "chedar";
string cheese1 = "global";
void Main()
{
string cheese = "swiss";
string cheese1 = "local";
Console.WriteLine(cheese);
Console.WriteLine(MyClass.cheese);
Console.WriteLine(cheese1);
Console.WriteLine(this.cheese1);
}
}