查看下面的addValues方法,如果我不包含静态'那么这是不可调用的。关键词。为什么会这样?
namespace TryingMethods
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(addValues(3, 4));
}
public static int addValues(int left, int right)
{
return left + right;
}
}
}
答案 0 :(得分:1)
这是因为静态方法只能访问静态变量和其他静态方法。通常,你不能在main()方法中调用addValues(int left,int right),这是静态的。唯一的办法是拥有一个包含addValues()方法的类的实例。
答案 1 :(得分:1)
如果您没有说static
,则表示该方法属于'属性'对象的,这是这个特定类的实例化。如果不说静态,则意味着该方法不是对象的属性,因此可以在不引用对象的情况下调用。
例如,你可以有一个Person类,并且有一个静态方法"打印你好"并且有一种非静态的方法"给我起名字"。打印你好与特定的人无关,所以它是静态的。 "给我起名字#34;与特定的人有关,因此您需要以不同的方式调用此方法。
Person myMan = new Person();
myMan.giveMeName();
printHello();
答案 2 :(得分:0)
您不需要实例化该类以调用静态方法。
Program.addValues(1,2)
静态方法无法获取/设置类成员
答案 3 :(得分:0)
这是因为您将Main
函数声明为static
,因此您在其中调用的方法也需要。如果您从两者中删除static
,则不会收到错误。