C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: サブルーチンの変数の値を他のサブルーチンに渡す方法


(過去ログ 131 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■77656 / inTopicNo.1)  サブルーチンの変数の値を他のサブルーチンに渡す方法
  
□投稿者/ 初心者 (20回)-(2015/11/11(Wed) 14:48:01)

分類:[C#] 

C#の初心者です。
Formクラスに、いくつかのサブルーチン(関数?)があるのですが、サブルーチンの変数の値を他のサブルーチンにもってくることは可能でしょうか。
引用返信 編集キー/
■77657 / inTopicNo.2)  Re[1]: サブルーチンの変数の値を他のサブルーチンに渡す方法
□投稿者/ Hongliang (365回)-(2015/11/11(Wed) 15:18:42)
> Formクラスに、いくつかのサブルーチン(関数?)があるのですが、
C#ではメソッドと呼ぶのが一般的です。
// よくある間違い:メゾット

> サブルーチンの変数の値を他のサブルーチンにもってくることは可能でしょうか。
普通は引数として受け渡ししますが、引数の定義方法や渡し方が分からないと言うことでしょうか?
それとも引数にできない理由でも?
引用返信 編集キー/
■77658 / inTopicNo.3)  Re[2]: サブルーチンの変数の値を他のサブルーチンに渡す方法
□投稿者/ 774RR (336回)-(2015/11/11(Wed) 15:28:34)
> 可能でしょうか
という質問に対する答えは Yes か No しかありえなくて、当然 Yes で質疑応答終了。

元発言者氏はそういう質問がしたいのではないとオイラは思うので、もっと具体的に
・こんなことがしたい(最終目的)
・こんな制約がある
というふうに書き込むと話が早い。

引用返信 編集キー/
■77659 / inTopicNo.4)  Re[3]: サブルーチンの変数の値を他のサブルーチンに渡す方法
□投稿者/ 初心者 (22回)-(2015/11/11(Wed) 16:26:48)
Hongliang さん、774RRさん返信ありがとうございます。
具体的な内容を明記せずに失礼いたしました。

あるメソッドのint変数の値を別のメソッドの繰り返し処理(繰り返す回数として)に使えればと思っています。
ローカル変数ではなく、フィールド変数にするのが望ましいのでしょうか。

引用返信 編集キー/
■77660 / inTopicNo.5)  Re[4]: サブルーチンの変数の値を他のサブルーチンに渡す方法
□投稿者/ 774RR (337回)-(2015/11/11(Wed) 16:39:00)
フィールド変数にするべき設計上の理由がちゃんとあるならフィールド変数(メンバ変数)にすべきだし
単なる作業用の変数ならメンバ変数にしてはならない、わけで、その辺の判断は設計者にしかできない。
オイラたち外部の人間に訊ねても答えられないよ。

あまり意味のなさそうな例だけど直接コード書いてみるテスト

private void btn1_Click(object sender, EventArgs e)
{
    int i=3;
    DoIteration(i);
}
private void btn2_Click(object sender, EventArgs e)
{
    int i=5;
    DoIteration(i);
}

private void DoIteration(int iteration_count)
{
    ...
}


引用返信 編集キー/
■77687 / inTopicNo.6)  Re[5]: サブルーチンの変数の値を他のサブルーチンに渡す方法
□投稿者/ ぶなっぷ (59回)-(2015/11/17(Tue) 10:06:34)
よく分からないけど、以下のような話?

static void Main(string[] args)
{
    FuncA();
    FuncB();
}

void FuncA()
{
    int Cnt = 10;	// 繰り返したい回数
}

void FuncB()
{
    for(int Idx = 0; Idx < Cnt; Idx++)
    {
        // なんかやりたい処理
    }
}

そういうことなら、当然、このままでは無理。
(コンパイルエラーね)

方法はいろいろある。

int FuncA()
{
    int Cnt = 10;    // 繰り返したい回数
    return Cnt;
}
void FuncB(int Cnt)
{
    for(int Idx = 0; Idx < Cnt; Idx++)
    {
        // なんかやりたい処理
    }
}
として、
static void Main(string[] args)
{
    int Cnt = FuncA();
    FuncB(Cnt);
}
と呼ぶとか。

あるいは、
void FuncA(out int Cnt)
{
    Cnt = 10;    // 繰り返したい回数
}
void FuncB(int Cnt)
{
    for(int Idx = 0; Idx < Cnt; Idx++)
    {
        // なんかやりたい処理
    }
}
として、
static void Main(string[] args)
{
    int Cnt;
    FuncA(Cnt);
    FuncB(Cnt);
}
と呼ぶとか。

まぁ挙げていくといっぱいになるのでこの辺で打ち止め。

引用返信 編集キー/
■77764 / inTopicNo.7)  Re[6]: サブルーチンの変数の値を他のサブルーチンに渡す方法
□投稿者/ 初心者 (23回)-(2015/11/21(Sat) 17:59:49)
No77687 (ぶなっぷ さん) に返信
> よく分からないけど、以下のような話?
>
ぶなっぷさん、ありがとうございます。
まさに教えて頂いた事をやりたかったです。
勉強になりました!


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -