[英]Accessing public methods in same class requires an Instance?
我是C#的新手,所以可以原諒這個問題,但我感到困惑:為什么我需要一個類Program的實例來訪問方法Sandbox,該方法在同一類中是公共的?
namespace GoogleTest
{
class Program
{
static void Main(string[] args)
{
Program p = new Program();
p.Sandbox();
}
public void Sandbox()
{
...
}
}
}
public void Sandbox()
{
...
}
是重要的部分:此方法未標記為靜態,因此不能在類上調用,而是在類的實例上調用。 如果您希望能夠直接調用它,則需要
public static void Sandbox()
{
...
}
不能使用this
。
因為您嘗試從靜態方法中訪問它,但是Sandbox
是實例方法。
如果將Sandbox
設為static ,則不需要:
static void Main(string[] args)
{
Sandbox();
}
public static void Sandbox()
{
...
}
請注意,它也不必是public
public
允許其他類和其他程序集使用它,但是在Program
,這不是必需的。
靜態方法存在於Class
級別,可以將它們視為全局函數。 任何non static
方法都是實例級別的,顧名思義,您只能在instance
上執行instance
方法。 因此,通過實例化該類,您已經創建了一個實例,現在可以調用任何public
方法。 在您的示例中,您還可以調用任何private
方法或構造函數,因為您是使用要創建的類創建實例的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.