ブルーノのC#プログラミング & unity勉強日記

プログラミング素人、ブルーノの自主勉強ノートです。他のプログラミングを勉強したい方の助けになれば幸いです。その他趣味の雑記もしていきたいです

インデクサについて

みなさんこんにちは🌚

家のWi-Fiの調子が良くないのでせっかく無料体験中なのにネットで映画がうまく見れないブルーノです。ルーターはレンタルから自分のものに変えたはずなんですが.....

さて今回はインデクサについてです。インデクサは、使い方がプロパティに似ており、インスタンスを配列のように扱うことができるものです。

 

インデクサについて

インデクサは、次のように定義します。

配列の要素の型 this[インデックスの型 インデックス]

{

      get {};

      set {};

}

 

前回やったプロパティと同じ方法ですね。インデックスとは、単純に訳すなら英語で「索引」のことで、ようは目次みたいなものですね。収納するものの番号がこれに当てはまります。プロパティと同じように、getとsetアクセッサを使うことで配列のそれぞれのインデックスにアクセスすることができます。では、単純な例を下に貼ります。

f:id:covory10101101276:20170923220946p:plain

f:id:covory10101101276:20170923220954p:plain

ちゃんとセットした値全てを表示できましたね。配列には5つ要素がありますが、何も入れない場合も反映されるか見るために4つしか入れていません。普通に実行されるようですね。

一つ気になったことがありこのプログラムのBruno024クラスに配列を2つ入れるとどうなるのか、getやsetアクセッサにある配列の名にアクセスするのかなとも思いましたがそれだと少しスマートじゃない気もしました。アクセスするとスローもなく永遠に進まなくなるだけで、強制終了する時の警告文は「mono32が実行中ですが中止しますか?」でした。これを解決するために、インデクサの数も増やしたり、thisの部分を配列名に変えてみましたが、前者はthisが二つあり実行不可、後者はthisキーワードを用いていないので不可という結果になりました。特に後者はインデクサを使用する際の配列の指定はthisじゃなければならないということでとても興味深かったです。もしどなたかこれらについてわかる方がいらっしゃいましたらぜひ教えていただきたいです。

 

さて今回はここまでにしておきます。ここに書いたこと以上にこの要素は奥が深く、今後重要になってくるはずですので、よく理解を深めておきます。

 

時間というものは本当に一瞬で過ぎていきます。気を抜いたらあっという間に1日が終わっていて、何度も同じ繰り返しのように見えて、絶対に戻ってきているわけではないし、確実に終わりは訪れるものです。子供の頃は時間が経つのが遅く感じていましたが、今思うとあの頃はあらゆるものに対して自分の中で絶え間なく考察を繰り返していたからかなと思います。知っていくことが増えていく中で諦めや妥協は身に付けたくないですね。子供の頃見てたデジモンフロンティアのWith the Willという歌で同じことを言っていました。なんだか明日からまた頑張れそうです😄