C# 访问同一类中的公共方法需要实例吗?
我是C#的新手,所以请原谅这个问题,但我很困惑:为什么我需要一个类程序实例来访问同一个类中的公共方法沙盒C# 访问同一类中的公共方法需要实例吗?,c#,C#,我是C#的新手,所以请原谅这个问题,但我很困惑:为什么我需要一个类程序实例来访问同一个类中的公共方法沙盒 namespace GoogleTest { class Program { static void Main(string[] args) { Program p = new Program(); p.Sandbox(); } p
namespace GoogleTest
{
class Program
{
static void Main(string[] args)
{
Program p = new Program();
p.Sandbox();
}
public void Sandbox()
{
...
}
}
}
因为您试图从静态方法中访问它,但是
Sandbox
是一个实例方法
如果将沙盒设置为静态,则不需要:
static void Main(string[] args)
{
Sandbox();
}
public static void Sandbox()
{
...
}
请注意,它也不必是
public
-public
允许其他类和其他程序集中使用它,但在程序中使用它,这是不需要的。因为您试图从静态方法中访问它,但Sandbox
是一个实例方法
public void Sandbox()
{
...
}
如果将沙盒设置为静态,则不需要:
static void Main(string[] args)
{
Sandbox();
}
public static void Sandbox()
{
...
}
请注意,它也不必是public
-public
允许其他类和其他程序集中使用它,但在程序中使用它是不需要的
public void Sandbox()
{
...
}
是重要的部分:此方法没有标记为静态,因此它不能在类的实例上调用,而是在类的实例上调用。如果你想直接打电话给它,你需要
public static void Sandbox()
{
...
}
并且不能使用此
是重要的部分:此方法没有标记为静态,因此它不能在类的实例上调用,而是在类的实例上调用。如果你想直接打电话给它,你需要
public static void Sandbox()
{
...
}
不能使用<代码> <<代码> .< /p> 静态方法存在于类< /代码>级别,可以考虑它们为全局函数。任何非静态
方法都是实例级的,顾名思义,您只能在实例上执行实例
方法。因此,通过实例化类,您已经创建了一个实例,现在可以调用任何public
方法。在您的示例中,您也可以调用任何<代码>私有< /COD>方法或构造函数,因为您正从正在创建的类创建实例。< P>静态方法存在于类< /代码>级别,可以将它们视为全局函数。任何非静态
方法都是实例级的,顾名思义,您只能在实例上执行实例
方法。因此,通过实例化类,您已经创建了一个实例,现在可以调用任何public
方法。在您的示例中,您还可以调用任何private
方法或构造函数,因为您正在使用正在创建的类创建实例。从测试代码中删除public
。用新信息再次提问。另外,搜索-并报告-在不“使用实例”时收到的错误消息@user2864740:我没有收到错误。我就是看不到没有实例的非静态方法。我理解下面指出的基本知识。令人困惑的是,我意识到我需要一个程序本身中的程序实例。现在我明白了。感谢所有。从测试代码中删除public
。用新信息再次提问。另外,搜索-并报告-在不“使用实例”时收到的错误消息@user2864740:我没有收到错误。我就是看不到没有实例的非静态方法。我理解下面指出的基本知识。令人困惑的是,我意识到我需要一个程序本身中的程序实例。现在我明白了。谢谢大家。