質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

608閲覧

メソッドをメインで動かしたい

old.exe

総合スコア23

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2022/04/27 06:44

編集2022/04/27 07:11

お世話になります。下記のメソッド(Make_nextgen)をメインで動かしたいです。メソッドの呼び出し方が分かりません。以下、コードになります。

以下メインメソッドです。

C#

1class Program 2 { 3 static void Main(string[] args) 4 { 5 6 //初期世代の生成 7 List<int[]> temp_gen = new List<int[]>(); 8 Random rnd = new System.Random(); 9 10 for (int i = 0; i < 10; ++i) 11 { 12 var individual = new int[10]; 13 for (int j = 0; j < 10; ++j) 14 { 15 individual[j] = rnd.Next(0, 2); 16 } 17 temp_gen.Add(individual); 18 } 19 20 21 foreach (int[] item in temp_gen) 22 { 23 System.Console.Write("["); 24 bool first = true; 25 foreach (int value in item) 26 { 27 if (!first) System.Console.Write(","); else first = false; 28 System.Console.Write(value); 29 } 30 System.Console.WriteLine("]"); 31 } 32 33 34 35 } 36 37 }

以下呼び出したいメソッドがあるクラスです。

C#

1public class Onemax 2 { 3 //インスタンス変数 4 public int[] Individual { get; } 5 public List<int[]> Temp_gen { get; } 6 7 //コンストラクタ(インスタンス変数の初期化) 8 public Onemax(int[] individual, List<int[]> temp_gen) 9 { 10 Individual = individual; 11 Temp_gen = temp_gen; 12 } 13 public List<int[]> Make_nextgen(List<int[]> temp_gen, int[] individual) 14 { 15 int individual_sum = individual.Sum(); 16 17 return temp_gen; 18 } 19 }

以上になります。解答のほうよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/04/27 06:53

> 下記のメソッドをメインで動かしたいです。 「下記のメソッド」というのは質問のコードで言うとどれでしょう? 「メインで動かしたい」というのはどういう意味ですか?(非同期にしたいということ? 違うかな?) その理由は何ですか? 
退会済みユーザー

退会済みユーザー

2022/04/27 07:07

> 下記のメソッドをメインで動かしたいです。 「下記のメソッド」は質問の追記で分かりましたが、「メインで動かしたい」というのはどういう意味ですか? その理由は何ですか?
old.exe

2022/04/27 07:10

Make_nextgenをメインメソッドに呼び出したいです。理由は何回も繰り返す処理なので、メソッドとして書いておいた方が良いかと考えたからです(メソッド自体はまだ未完成です)。すみません、理解がないので曖昧な質問、および解答になってしまいました。
退会済みユーザー

退会済みユーザー

2022/04/27 07:23

Onemax クラスの Make_nextgen メソッドを Main メソッドの中で呼び出したいと理解しましたが、Make_nextgen メソッド自体がメチャクチャという感じで(未完成とのことですがあんまりです)、呼び出し例を書くにも困ってしまうのですが。
old.exe

2022/04/27 07:48

申し訳ないです。現状ではコードに落とし込むスキルがないのでMake_nextgenの動きを言葉で説明させていただきますと、Mainクラスのリストのリストtemp_genを引数に取り、temp_genを並び替えなどの操作を加え、temp_genをMainクラスに返すという仕事をさせたいとイメージしています。
退会済みユーザー

退会済みユーザー

2022/04/27 08:08

> 理由は何回も繰り返す処理なので、メソッドとして書いておいた方が良い ということだそうですが、であれば、Main の中のコードをメソッドとして切り出すという方向で考えるべきだと思いますよ。 Make_nextgen メソッドはテキトーすぎてその話につながりません。
guest

回答2

0

ベストアンサー

Java

1Onemax onemax = new Onemax(individual[j],temp_gen); 2onemax.Make_nextgen(temp_gen,individual[j]);

こんな感じでしょうか、引数の部分などは間違ってるかもです。
クラスをnewしてインスタンス化して、メソッドを呼び出せばよいと思います。

投稿2022/04/27 07:17

編集2022/04/27 07:28
mamemaru

総合スコア56

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mamemaru

2022/04/27 07:25 編集

ごめんなさい、引数やreturnしたものをどう使うかは不明でしたので現状書いてある内容で単に呼び出すためだけの記載に修正しました。
退会済みユーザー

退会済みユーザー

2022/04/27 07:29

> Onemax onemax = new Onemax(individual[j],temp_gen); Onemax クラスのコンストラクタの引数は Main のどれをどのように与えるのですか? Onemax クラスの Make_nextgen を Main メソッドで呼び出したいのだそうですが、 > temp_gen.add(onemax.Make_nextgen(temp_gen,individual[j])); で質問者さんがやりたいことができているのでしょうか?
mamemaru

2022/04/27 07:40

あくまで質問は他クラスのメソッドの呼び出し方についてですので、文法的な指摘等はあるとは思いますがそれは質問者様自身が考えるべきであって、今回私たちが回答する範囲を超えていると思います。 ですのでクラスをインスタンス化して、その際の引数はコンストラクタと合わせる。 呼び出すときはインスタンス引数.メソッド名で呼び出せますよという回答をしたまでです。 >> temp_gen.add(onemax.Make_nextgen(temp_gen,individual[j])); >で質問者さんがやりたいことができているのでしょうか? すいませんこの部分は間違っていたのでSurferOnWww様がコメントをする前に修正を行っておりました、申し訳ないです。
退会済みユーザー

退会済みユーザー

2022/04/27 08:04

> あくまで質問は他クラスのメソッドの呼び出し方についてですので、文法的な指摘等はあるとは思いますがそれは質問者様自身が考えるべきであって、今回私たちが回答する範囲を超えていると思います。 その姿勢は自分は賛同できないですね。そもそもの質問内容にいろいろ問題があってまともに呼び出し例を書くのは難しいのは分かりますけど、それでもある程度例として成り立たないと・・・ 例えば、あなたが書いた引数 individual[j] は質問がさんのコードを見ると int 型になるようですけど、それを引数に与えるコードを回答の例として書くのはいかがなものかと思います。
guest

0

そのクラスのインスタンスを作成して、そこから実行するようにします

投稿2022/04/27 07:05

y_waiwai

総合スコア87774

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/04/27 07:09

点数乞食は止めましょう。最近マイナス評価がスコアにカウントされないのが残念。
Zuishin

2022/04/27 07:11

この回答は合っていると思いましたが、どこか間違っていますか?
退会済みユーザー

退会済みユーザー

2022/04/27 07:18

間違ってはいないかもしれませんが質問の回答にはなっていないと理解。これだけの情報で質問者さんが理解して求める答えだと評価してベストアンサーを付けたら取り消します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問