🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

Q&A

解決済

1回答

972閲覧

C# 配列を戻り値に設定したときの実用例が知りたい

Kirby2318

総合スコア69

C#

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

0グッド

1クリップ

投稿2021/02/09 01:50

質問を見ていただいてありがとうございます。長らく放置していたテラテイルのことを思い出して質問をしようと思いました。つい最近C#の勉強に戻りメソッド周りの概念について理解してきました。それで、戻り値の設定にはプログラマが自由にデータ型をセットすることができると知りました。(参考中の動画

そのなかで、配列を戻り値としてセットできることも知ったのですが、いまいちどのようなときに使うのかがイメージ湧きません。
質問①
言語の特性上できるけど、実践ではやらないこと(3重ループ以上など)のように配列を戻り値としてセットすることは多々ありますか?それとも稀ですか?

質問②
また、もしゲームのプログラムにおいて配列を戻り値としてセットする場面がありましたら、それはどんな時ですか?(具体的なコードがあれば勉強になりますが、抽象的でも参考にできるので知識の共有を願いたいです_(..)

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

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

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

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

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

Zuishin

2021/02/09 01:59

スコアがマイナスの質問者は、問題の解決が目的ではなく、誰か自分の好きな回答者にポイントを与えるためだけに存在するという認識です。
Kirby2318

2021/02/09 02:08

ああ、そうなんですね。どうすればいいでしょうか?『認識です』と言われましたも、それはあなたの感想です。誰かの利益のために働いているわけでもないですし、認識でとどまれても困ります。 解決策を提案するのはどうでしょうか?
Zuishin

2021/02/09 02:15 編集

配列を戻り値にしたければすればいいし、IEnumerable<T> にしたければすればいい。三重ループも意味不明で、具体例などいくらでも考えられる。 玉虫色の質問なので、どんな回答でも質問者の好きなほうをベストアンサーにできます。質問した意図もわからず、答えたからといって誰の役にも立たない。回答するのが馬鹿馬鹿しいです。
Zuishin

2021/02/09 02:17

回答者の個人的な感想を拒否するのであれば、個人的な感想をベストアンサーに選ばないよう、気をつけてください。
退会済みユーザー

退会済みユーザー

2021/02/09 02:43 編集

> そのなかで、配列を戻り値としてセットできることも知ったのですが、いまいちどのようなときに使うのかがイメージ湧きません。 実用例が知りたいのであれば、.NETライブラリのクラスでも隅々まで眺めてください。StringクラスのSplitメソッドなど、自分で調べればいくらでも見つかります。ここは人力検索エンジンではありません。 メソッドの機能として欲しい結果だからそのようにするのであって、イメージが湧かないのなら別に無理に使う必要はないでしょう。 質問する前に、下記ページ全てに目を通す事をお勧めします。 https://teratail.com/help/question-tips https://teratail.com/help/avoid-asking
Kirby2318

2021/02/09 02:54 編集

ベストアンサーをもらうのがあなたの目的ですか?初心者の私に比べ実践知識を私よりはるかに持っているあなたに『玉虫色な質問』と言われても、私にはあなたの視界を持っているわけではないですから、あなたにとって不祥事な質問をした自分に実感がわきません。知らないわけですからね。 前提として、だれをベストにしたかそれが個人的な感想かどうか覚えていません。気にしてもいません。確かに、Zuishinさんが言うように私は個人的な感想をベストアンサーにしたかもしれません。また、こうした場では時にはベストでなくても回答した人にありがとうの気持ちを込めてベストアンサーにしているかもしれません。 ではそれがあなたに何の負傷を与えていますか?誰の不利益になっているといいますか?どうして5ヵ月も前のことを根に持って今降りかかってくるのでしょうか?死んだ論点を今になって持ち出してここで返されても困ります。 あなたは技術者かもしれませんが、心の面に乏しさを感じて残念に思います。私が基礎知識や素質のないころにテラテイルに登録してから、あなたに付きまとわれているとしか思えません。 私も場の常識と自己中心情のギャップと日々苦闘しています。 今になって、radianさんの回答を経てこの質問は実はここの場においてする必要はないということも認識できたわけです。それは問題解決ではないのでしょうか?個人が持っている問題を勝手に自己認識、問題としないのは合理的と思えません。 改善に努めているのに、Zuishinさんのようにつぶしにかかってくる存在がいまとなって悪質行為としか思えないのですが、少し相手の立場になって考えたらわかることだと思います。 『イメージが湧かないのなら別に無理に使う必要はないでしょう。』 無理に使う必要はないんですね...知らなかったです。 これ使うの?ってものまで、無理して知ろうとしている癖があるかもしれません。 Zuishinさん、radianさんご回答をありがとうございます。
Kirby2318

2021/02/09 03:09 編集

公式のドキュメントが時には抽象的に感じてしまい避けがちになっているかもしれないので、もうすこしふんばってみ公式のドキュメントも呼んでより具体的な質問をするようにしてみます。 もしかしたら、私の検索の仕方が悪いのかもしれません。
Zuishin

2021/02/09 02:54

五ヶ月前のことなど覚えていませんが、今回の質問でそのように感じました。teratail で質問すべきことではないと複数のユーザーが低評価を投票しており、radian さんのリンク先にその理由が書いてあります。 その上で、他人の言うことを聞かず自分勝手な行為を繰り返しているのがスコアに現れているのだろうと判断しました。 最近、そのような質問者が非常に増えているので、時に苦言が投げられるのは当然のことと覚悟してください。嫌ならちゃんとヘルプを読んでそれに従いましょう。
Kirby2318

2021/02/09 02:56

返答ありがとうございます。質問する前にヘルプを一読するようにメモ残ししておきます。
Zuishin

2021/02/09 04:04

今ざっと過去の質問を見ましたが、私が回答した事実もつきまとった事実もありませんね。 事実誤認による人格攻撃というならまだマシな方で、ただ単にあなたが複数のアカウントを使っていたので記憶が混ざっているのでしょう。
Zuishin

2021/02/09 05:53

と書くと、なにやら意味不明な低評価が私の回答につきました。
Zuishin

2021/02/09 05:56

この質問者の過去の回答も見てみました。 https://teratail.com/questions/258063#reply-371255 やはり何か別のアカウントのこととしか思えないおかしなことを書いています。 どうも常日頃から複数のアカウントを使っているように見えますね。
Kirby2318

2021/02/09 10:39

事実誤認による人格攻撃というならまだマシな方で、ただ単にあなたが複数のアカウントを使っていたので記憶が混ざっているのでしょう。 >いいえ、アカウントはひとつしかありません。今日即Zuishinさんの回答がきたわけですからね。まぁ、たまたまなんでしょう。貼っていただいたURLを今見たところまさか自分が書いたと思えない内容になっていてショックですが、当時の心情と思い込みから回答していたことがあって少しトラブルを起こしてしまったときにZuishinさんのアイコンと名前が印象に残っているだけです。 やはり何か別のアカウントのこととしか思えないおかしなことを書いています。 どうも常日頃から複数のアカウントを使っているように見えますね。 https://teratail.com/questions/258063#reply-371255 このアカウントの人が私の別垢だといいたい、そういう認識でいいですか?もう少し具体的に言いたいことを書いていただけると嬉しいです。
Kirby2318

2021/02/09 10:42

ちなみにZuishinさんのように低評価垢を見て対応していただいた今日のこともあって、アカウントを変えてみたらどうかなとか思いましたが、サブ垢があるわけでもなく。特に過去の恥やミスを変えるつもりはないのでこのアカウントを引き続き使おうかと思っています。(支障がない限り)挽回はいくらでもありますからね。
Kirby2318

2021/02/09 10:44

URLからみてZuishinさんは何か回答したわけでもなくコメントに書いていたので、【...】マークを観たら通報しか選択ができなかったので意味不明の低評価は私の方でも原因がわかりません。
Kirby2318

2021/02/09 11:18 編集

Zuishinさんからしたら、「初心者」のころを忘れていて今は常識変化が大きくあって当たり前のように言っているのかもしれないですが、少しこれを一読してみてくださいよ。 https://teratail.com/questions/29970 私がプロの立場にいたら初心者に手を差し伸べてやりたいものですが、今はできないもんですからいばらの道をただ歩むのみですね(笑)
Zuishin

2021/02/09 11:19

私が初心者のころは、コミュニティに入った時はまず半年発言せずそこのルールを知るところから始めるのが普通でした。
Zuishin

2021/02/09 11:21

低評価が 6 にもなって開き直るような文化は日本にはありませんでしたね。
Kirby2318

2021/02/09 11:46

そうですか。匿名性とネットのゆるみがあってできるようになった魅力かもしれないですね。 日本人は『謙遜』『場をわきまえる』という点ではすごく尊敬するのですが、いまだにこれがなじめられないのが私の苦痛です。(もう遺伝子のせいにしたいくらい) Zuishinさんも言ってましたが、私みたいに場になじめない人が増えているということでしたら、どっちが文化に合わせるべきか、今後の掲示板ビジネスの的かもしれないですね。 わたしとしては恥をかいてでも挑戦して質問をする価値はあると思います。 何なら多くの批判=相手の意見視点を知ること、後からくる発想や実生活のためになることが多いです。 最初はなんなら荒らし目的や100個も無駄な質問をしているわけでもないと思っていたくらいです。でも、裏では顔真っ赤で心バクバクです(笑)
Kirby2318

2021/02/09 11:53

新常識好きだったりするので、(もちろん、昔の常識も重んじています)感じたことを率直に言うのですが、人格否定と感じさせたことであれば謝っておきます。
Kirby2318

2021/02/09 11:54

今後とも何か不祥なことがあれば率直に言っていただければ幸いです。
退会済みユーザー

退会済みユーザー

2021/02/10 00:38 編集

別に常識をどう考えるかはどうでもよいのですが、自分で調べるべき事を調べておいて、必要な事をきちんと書いてあれば、ボコボコにされる事はそうそう無いです。回答者に必要な情報が足りないと、正しい回答を得る事は出来ません。まずは質問する際にテンプレートを埋めて質問する所から始めてみるのがよいでしょう。 あくまで問題解決の情報交換がメインのサイトで、初心者に言語のレッスンをしたり、人力で検索してもらう場所ではないので、調査不足の〇〇を教えてください系の質問は、公式の言語リファレンスを読むか、ググってくださいとなります。幸い、C#に関してはMS公式の言語リファレンスが非常に充実していて、書籍もWebの情報も豊富なので、環境的には恵まれています。初歩の初歩から丁寧な指導が必要なら、メンターサイトでお金払って指導してもらいましょう。 最近は、非推奨事項に思いっきり引っかかっていたり、わざわざ質問のテンプレートがあるのに使わず、必要な情報を全く書いていない質問が多すぎるので、その上で更にマイナスがついているとなると、荒らしかと思われる可能性は十分に有り得ます。公園でゴミは持ち帰ってくださいって看板が立っているのに、無視してゴミ放置する人が沢山いたら嫌でしょう。みんなで使う場所は、正しく使いましょう。
guest

回答1

0

ベストアンサー

戻り値の設定にはプログラマが自由にデータ型をセットすることができる

という話の意味がわかりませんが…

メソッドの戻り値を配列とする場面ってのがあるのか? という話ならば,まぁ普通にあるんじゃねーの?としか.
「バイト列を返す」だの「多項式の係数群を返す」だのいう場合,最も手っ取り早いのが配列なのでは?
何なら,ちょっとした次元のベクトルを表現するのに配列を使うかもしれない.


質問内容とは関係ないけども,

実践ではやらないこと(3重ループ以上など)

何でやらないことになってるのかも謎.
3次元のデータを走査するとしたら,どうするつもりなんだろう?

投稿2021/02/09 02:01

fana

総合スコア11985

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

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

Kirby2318

2021/02/09 03:06

何でやらないことになってるのかも謎. 3次元のデータを走査するとしたら,どうするつもりなんだろう? http://c-lang.sevendays-study.com/day4.html 『このようにして、3重、4重のループを作ることも可能です。しかし、現実的に最も多いのは2重ループぐらいまでのようです。』とサイト内の一文があります。 この現実的を実践ではあまり使わないの一文からそう捉えていました。配列を戻り値としてあまり設定する場面がないを一例としてあげました。 ちなみにCのfor文とC#のfor文が実践的にどれくらい違うのか私にはわかりません。
Kirby2318

2021/02/09 03:08

実践でやらないというのは語弊ですね。少し言葉が足りなかったかもしれないですm(_ _)m
fana

2021/02/09 03:49 編集

> 現実的に最も多いのは2重ループぐらいまでのようです ほとんど内容の無い文章ですね. {単ループ,2重ループ,3重ループ,…,N重ループ,…,無限の深さでループ} を現実に目にする機会の多さを比較するならば,左側ほど多かろうというのは自然な話. 単に,(その文章を書いた人の感覚では)3重以上のループを目にする機会が少ない,という程度の話でしょう. #この質問の内容とは直接的に関係ない話なので,割とどうでもいいです.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問