如何在static
中的non static
方法中调用c#
方法?
采访者给了我一个场景:
class class1
{
public static void method1(){}
public void method2()
{
//call method1()
}
我们怎么做呢
答案 0 :(得分:11)
通常的做法是使用类名调用静态方法。
请参阅:Static Classes and Static Class Members (C# Programming Guide)
静态成员始终由类名访问,而不是 实例名称。无论如何,只存在静态成员的一个副本 创建了多少个类的实例。
所以你的电话会是:
class1.method1();
但没必要
您可以调用不带类名的静态方法,如:
method1();
但是你只能在拥有静态方法的类中执行此操作,不能在该类之外调用没有类名的静态方法。
答案 1 :(得分:4)
class1.method1();
与调用任何其他静态方法相同
显然(正如Selman22指出的那样) - 类名不是必需的。
所以
method1();
也可以正常工作
答案 2 :(得分:3)
如果您在某个类中调用该方法,则只需将其称为
public void method2()
{
method1();
}
但如果它应该从另一个类调用,则必须在它之前加上类的名称
public void method2()
{
class1.method1();
}
答案 3 :(得分:2)
输入方法名称,然后编译并运行它:
class class1
{
public static void method1(){}
public void method2()
{
method1()
}
}