静态'静态'有什么意义?在一种方法

时间:2016-07-14 17:36:13

标签: class methods static

查看下面的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;
    }
}
}

4 个答案:

答案 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,则不会收到错误。