public vs public static方法

apo*_*ene 4 c# static

在C#编程教程中阅读了访问修饰符之后,我得出结论,定义一个方法public足以让它从另一个Form相同的命名空间中"看到" .

但是,在实践中,每当我尝试实现它时,我还必须定义该方法static,以便从其他Forms相同的命名空间引用它.

我失去了什么吗?我做错了什么?

bas*_*bas 6

对于public static方法,您不需要对对象的引用.该方法是静态的,可以在class级别上访问.

如果您无法访问公共方法,那么您需要对该对象的引用,然后您可以.

public class AClass
{
    public void DoSomething() {}
    public static void DoSomethingElse() {}
}
Run Code Online (Sandbox Code Playgroud)

您可以按如下方式使用它们:

AClass.DoSomethingElse(); // no object reference required
AClass.DoSomething(); // will give compiler error, since you have no object reference.
var anObject = new AClass();
anObject.DoSomething(); // will work fine.
anObject.DoSomethingElse(); // compile error (thx hvd).
Run Code Online (Sandbox Code Playgroud)