2016-05-26 14 views
-3

クラスのメソッドを作成したいと思います。 (編集:ドミトリーの例を使用して):変数を一度宣言して関数内で使用する

public class MyClass 
{ 
    // variable 'a' is initialize as a = 5 only once 
    private string c = string.empty; 
    private static int a; 

    private void CalculateSum(int b) 
    { 

    if(c==null) 
    { 
     c="abc"; 
     a=5; 
    } 


    // every time the function is called it uses this (a) value 
    int sum = a + b; 

    // But if sum = 10... 
    if (sum == 10) 
    { 
     // then value of 'a' changes to 10 
     a = 10; 
    } 
    } 

    // Some other code here 
} 

を今、関数が最初に呼び出されたときに、今、関数が二度目に呼び出されたときに5の値を設定した場合、「」になることをまだ値5を保存しますか?

+1

'if'文で' sum'と等しくなるように 'a'を設定しています。値を変更したくない場合は、何も割り当てないでください。 –

+0

関数が呼び出されるたびに、「a」が5として開始されるか、または各呼び出しで更新されますか? – Nkosi

+0

また、合計を返すようにするには、関数private int CalculateSum(int b)に変更して結果を返します。返すsum –

答えて

1

あなたの質問は曖昧です。それはあなたがはい、二回目は、関数が呼び出されます。この

public class MyClass 
{ 
    // variable 'a' is initialize as a = 5 only once 
    private int a = 5; 

    private void CalculateSum(int b) 
    { 
    // every time the function is called it uses this (a) value 
    int sum = a + b; 

    // But if sum = 10... 
    if (sum == 10) 
    { 
     // then value of 'a' changes to 10 
     a = 10; 
    } 
    } 

    // Some other code here 
} 
+0

はい、私はクラスのメンバ変数として 'a'を宣言し、それを一度初期化する。 –

+0

私は別の質問があります。 –

+0

'a'が宣言時に関数で初期化されていない場合は、(a == null){a = 5;}です。この場合、関数が呼び出された次回は 'a'の値を保持しますか?あるいは、 'private static int a'を宣言しても同じことをすると、前に設定した 'a'の値が保持されますか? –

0

あなたの質問への答えのようなものを実装したいと思われる、の値が10あたりに変更されていない場合は「」(5になりますあなたの状態)。

+0

ありがとうございました。私の混乱を解消した。 –

関連する問題