2016-07-14 57 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(); 
相關問題