当我们在类中有静态方法时,它只访问静态成员 静态方法只能使用类名访问。所以我无法访问我的示例中的静态方法:
class myclass
{
int i ; static int j ;
static void get()
{
j = 101;
Console.WriteLine(j.ToString ());
}
public void test()
{
i = 11; j = 12;
Console.WriteLine(i.ToString());
Console.WriteLine(j.ToString());
}
}
class Program
{
static void Main(string[] args)
{
myclass clsmyclas = new myclass();
clsmyclas.test();
Console.ReadLine();
}
}
}
答案 0 :(得分:9)
您应该将其更改为
public static void get()
并使用
访问它myclass.get();
不是班级的实例。
答案 1 :(得分:5)
您的问题很简单。 static void
方法的默认访问者是private
。只需在public
方法前添加internal
或get
,就可以了。
此外,最好不要调用方法get
以避免与属性混淆。
答案 2 :(得分:1)
你需要让myclass.get成为一个公共方法。
答案 3 :(得分:1)
成员的默认可访问性是最可能的私有。这意味着您的方法是私有的,因为您没有指定任何可访问级别。
您必须将其指定为公共(或内部,如果您只需要在同一项目中访问)才能到达它:
public static void get()
或:
internal static void get()
答案 4 :(得分:0)
您可以在静态方法上拥有所需的任何访问修饰符。
访问当然只限制了它在课堂外使用的方式。
但是,静态方法不能将this关键字用作父类的引用。
根据方法的访问级别,您可以静态调用方法:
ClassName.Property
ClassName.Method
ClassName.Field