2016-07-14 5 views
0

以下のaddValuesメソッドを見ると、 'static'キーワードが含まれていないと呼び出せません。なぜこれはそうですか?メソッド内の '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と言っていないときは、そのメソッドがオブジェクトの「プロパティ」であることを意味します。これは、この特定のクラスのインスタンス化です。 staticと言っていないときは、そのメソッドがオブジェクトのプロパティではないことを意味し、オブジェクトを参照せずに呼び出すことができます。

たとえば、Personクラスがあり、静的メソッド "Print hello"があり、静的メソッド "Give me name"があります。 helloを印刷することは特定の人には関係がないので、静的です。 「私に名前をつける」は、特定の人に関連しているので、この方法を別に呼び出す必要があります。

Person myMan = new Person(); 
myMan.giveMeName(); 
printHello(); 
関連する問題