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

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

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

数値がゼロに戻ってしまう。


(過去ログ 5 を表示中)

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

■5446 / inTopicNo.1)  数値がゼロに戻ってしまう。
  
□投稿者/ クロウ 二等兵(3回)-(2006/08/11(Fri) 15:28:38)

分類:[C#] 


分類:[C#] 

多分初歩的な質問だとは思うのですが、教えてもらえると助かります。

配列を宣言して、値をCLASSに入力。
一度arr[]に数値が入ったのは確認できたのですが、その後通常処理に戻ると値が初期化されて0に戻ってしまうんです。

こういった場合の対処法を教えてもらえると助かるのですが。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[] arr =new int[8];
int[] abso = new int[8];
class RND
{
public int[] RASHUFFL(int length)
{
int iRandom;
int[] arr = new int[length];
bool bIsUsed;
System.Random rnd = new System.Random();

for (int i = 0; i < length; i++)
{
do
{
iRandom = rnd.Next(0, length);

bIsUsed = false;

for (int j = 0; j < i; j++)
{
if (iRandom == arr[j])
{
bIsUsed = true;
break;
}
}
} while (bIsUsed);

arr[i] = iRandom;
}

return arr;
}//ここでは数値としてとらえられている。
}

public void Form1_Load(object sender, EventArgs e)
{
RND DEL = new RND();
DEL.RASHUFFL(8);
}//ここでは数値がリセットされている。
}
}

0
引用返信 編集キー/
■5447 / inTopicNo.2)  Re[1]: 数値がゼロに戻ってしまう。
□投稿者/ ぽぴ王子 伍長(43回)-(2006/08/11(Fri) 15:42:21)
ぽぴ王子 さんの Web サイト

分類:[C#] 

こんにちは。

行番号などがないのでわかりにくいですが

public Form1()
{
InitializeComponent();
}
int[] arr =new int[8];
int[] abso = new int[8];
class RND
{

この時点での arr と

public int[] RASHUFFL(int length)
{
int iRandom;
int[] arr = new int[length];
bool bIsUsed;

ここで new している arr が別物だからじゃないでしょうか。

return arr;
}//ここでは数値としてとらえられている。

とらえられているのは、内部で new した arr(ローカル変数) ですよね。
でも「通常処理」で見ている arr は前者の arr(クラス内変数) だと思います。

public void Form1_Load(object sender, EventArgs e)
{
RND DEL = new RND();
arr = DEL.RASHUFFL(8);
}//ここでは数値がリセットされている。

せっかく戻り値で返しているのですから、こんな風にしてみてはどうでしょう。


0
引用返信 編集キー/
■5448 / inTopicNo.3)  Re[1]: 数値がゼロに戻ってしまう。
□投稿者/ まどか 中佐(209回)-(2006/08/11(Fri) 15:43:16)

分類:[C#] 

> DEL.RASHUFFL(8);
> }//ここでは数値がリセットされている。

受け取っていないので破棄されてるだけとか。

0
引用返信 編集キー/
■5449 / inTopicNo.4)  Re[2]: 数値がゼロに戻ってしまう。
□投稿者/ まどか 中佐(210回)-(2006/08/11(Fri) 15:44:51)

分類:[C#] 

> public Form1()
> int[] arr =new int[8];
>
> この時点での arr と
>
> public int[] RASHUFFL(int length)
> {
> int[] arr = new int[length];
>
> ここで new している arr が別物だからじゃないでしょうか。

あーーー、最初のarrをすっかり見落としていた!
そこに入っていると思っていたわけですね。

0
引用返信 編集キー/
■5450 / inTopicNo.5)  Re[2]: 数値がゼロに戻ってしまう。
□投稿者/ クロウ 二等兵(5回)-(2006/08/11(Fri) 15:49:26)

分類:[C#] 

No5447に返信(ぽぴ王子さんの記事)
> こんにちは。
>
> 行番号などがないのでわかりにくいですが
>
> とらえられているのは、内部で new した arr(ローカル変数) ですよね。
> でも「通常処理」で見ている arr は前者の arr(クラス内変数) だと思います。
>
> public void Form1_Load(object sender, EventArgs e)
> {
> RND DEL = new RND();
> arr = DEL.RASHUFFL(8);
> }//ここでは数値がリセットされている。
>
> せっかく戻り値で返しているのですから、こんな風にしてみてはどうでしょう。

ありがとうございます。
まだはじめて間もなく、試行錯誤しながらやっている状態で助かりました。

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


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

このトピックに書きこむ

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

管理者用

- Child Tree -