2016-07-14 59 views
0

查看下面的addValues方法,如果我不包含'static'关键字,则不可调用。这是为什么?方法中'静态'的意义是什么

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

的可能的复制[什么是静态方法和变量?(http://stackoverflow.com/questions/10442152/what-are-static-method-and-variables) –

回答

0

为了调用静态方法,您不需要实例化类。

Program.addValues(1,2) 

静态方法无法获得/设置类成员

0

这是因为你有你的Main函数声明为static,让你调用它需要太方法。如果从两者中删除static,则不会收到错误。

1

这是因为静态方法只能访问静态变量和其他静态方法。通常情况下,你不能在静态的main()方法内调用addValues(int left,int right)。唯一的解决方法是创建一个包含addValues()方法的类的实例。

1

当你不说static,这意味着该方法是对象的'属性',它是这个特定类的实例化。当你不说静态时,这意味着该方法不是对象的属性,因此可以在不引用对象的情况下调用。

例如,你可以有一个Person类,并且有一个静态方法“Print hello”,并且有一个非静态方法“给我名字”。打印你好与特定的人无关,所以它是静态的。 “给我名字”与特定的人有关,因此您需要以不同的方式调用此方法。

Person myMan = new Person(); 
myMan.giveMeName(); 
printHello(); 
相关问题