现在我正在使用看起来像这样的c#代码
public class MyClass
{
public static void Method1()
{
//Do something
}
public void Method2()
{
//Do something
Method1();
}
}
现在如果我将代码替换为:
public class MyClass
{
public static void Method1()
{
//Do something
}
public void Method2()
{
//Do something
MyClass.Method1();
}
}
现在上面2个表示的区别是什么。 它是相同的还是显示出一些不同的工作方式。 任何帮助表示赞赏。
答案 0 :(得分:4)
第二个只是前一个版本的较长版本。如果您与静态方法在同一个类中,则不需要指定类名,但是您不需要(很像为实例方法指定this
)。
答案 1 :(得分:1)
在课堂内没有区别,但是当你尝试从课堂外调用它们时会产生差异。例如,您需要一个类的实例,而对于静态方法则不需要。但在课堂上你可以说
public class MyClass
{
public static void Method1()
{
//Do something
}
public void Method2()
{
Method1(); //you don't have to qualify it
}
}