晶2001/10/24参照型の配列ここまでのサンプルソースは、整数型を使って記述してきたが、他の値型のデータ型でも同様に扱うことができる。参照型に関しては、同じとはいかない。以下に、この具体例を示す。}文字列の配列を使用したサンプル・プログラム4整数型などの参照型の配列とは異なり、配列のインスタンスを作成しただけでは、配列の要素にアクセスできない。これを実行すると以下のようになる。2の値を文字列に変換したものが入っており、各要素の文字列の長さが表示される。ここで注目すべきは12行目である。配列を宣言した直後、配列に値を入れる前に、それを参照しようとすると、nullを参照したというエラーになってしまう。これは、参照型の配列インスタンスをnewで作成しても、中身はnullのままでインスタンスは作成されていないことから起こる現象である。参照型を配列変数で使うには、配列のインスタンスを作るだけでは十分ではなく、それに加えて、個々の要素のインスタンスも作成しなければならないということである。要素の数が10個なら、配列自身と要素を合わせて、計11回のnewを行う必要がある。このサンプルソースでは、16行目のToStringメソッドの中で文字列がnewされている。念のために16行目で何が起きているかを詳しく説明しておこう。ar[i]というのは、もちろん、i番目の配列arを示している。イコールの後半の値が、ここに格納される。イコールの後ろはというと、まず、i*2という式が計算されている。iも2も整数なので、2倍しているということだ。その計算結果に、いきなりToStringメソッドがくっついている。整数型の数値は、int(正式にはSystem.Int32)というstructの値である。このstructはメソッドを持っている。そのメソッドの中の1つがToStringである。このメソッドの機能は文字列に変換することなので、数値は文字列に変換される。その結果、文字列型の配列に、素直に入れることが可能になるのである。配列を宣言する際に、決まりきった値を、あらかじめ決め打ちで入れてしまいたい場合がある。これを実現するために、C#では、配列の作成時に初期値を指定することができる。宣言の構文には省略構文が存在する。以下のサンプルソースで、それを説明する。}配列の作成時に初期化を行っているサンプル・プログラム5初期化を伴った配列の宣言では、要素数などを省略することができる。これを実行すると以下のようになる。初期化を行った3つの配列の各要素が表示される。基本的な構文は9行目で示すようなものである。[4]の部分はすでに解説したとおりの意味を持つ。中カッコで囲み、カンマで区切った式のリストを記述する。これを初期化リストという。これにより、配列変数が作成されるときに、その式の値が個々の要素の中に格納される。9行目のコードが実行された時点ですでに変数ar1の0番目の要素には0が、1番目の要素には1が、......というように値が格納済みになるのである。初期化リストが指定されている場合、10行目のように、newに対応する要素数を記述しないという方法もとれる。省略できるのは、初期化リストの中の項目数を数えれば、何個の要素を持つ配列になるべきかが明らかに分かるためだ。突き詰めていくと、11行目のように、newもデータ型も角括弧も書かず、ただ初期化リストだけをイコール記号の右側に置くという書式も可能である。この場合は初期化リストの項目数から要素の数が確定し、データ型は行頭のintから確定可能である。7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。TranslatorはPowerPoint用のアドイン。