こんばにちは、ユウです。
今回は変数とデータ型最後の個所となります。
この単元は知っておくと便利なので、程よく覚えておきましょう!
本記事での学習
☑オブジェクト型とボックス化の利便性を知れる
☑文字列型の詳しい使い方が理解できる
☑演算子について知れる
今回C#を紹介するにあたって、発行元:SB クリエイティブ株式会社 著者:粂井 康孝(くめい やすたか)さんの「猫でもわかるC#プログラミング」を参考に紹介しています。
オブジェクト型とボックス化
C#のデータ型には値型と参照型が存在します。
データ型・・・データを直接アクセスする
参照型・・・データを間接アクセスする
参照型は次のような種類があります。
□クラス型
- オブジェクト型
- 文字列型(文字型とは違います)
□配列型
□デリケート型
配列型、デリケート型についてはまだ触れません。
今回の記事ではクラス型について紹介していこうと思います。
まずは、オブジェクト型について解説していきましょう。
C#にはオブジェクト型という特別な型が存在しています。
C#型としてはobject、.NET型としてはSystem.Objectとなり、この型にはなんでも代入することができます。
int a = 0;
object b;
b = a;
このように、何でも入れることができてしまいます。
それでは一度コードを書いてみましょう。
このプログラムはobjectの変数「o」に値型の様々なデータを代入しています。
このように値型からオブジェクト型に変換させることをボックス化(boxing)と言います。
それでは、逆にobject型変数に格納した値を値型の変数に代入するためにはどうすべきでしょうか。
この場合は型キャストを使います。
オブジェクト型から値型に変換することをボックス化解除(unboxing)といいます。
使い方は以下のコードのようになります。
文字列型
文字列型はC#型としてstring、.NET型としてはSystem.Stringとなります。この型はすでにこれまでに使用しているのでなじみがあるかと思います。
ここでは文字列型の特徴について解説していきます。
文字列リテラルの文字列型変数の代入は、
str = “abc”;
のように行ってきました。これはstring型のオブジェクトを作成しています。
つまり、stringクラスのインスタンスを作成ということです。
ここでは、「strはstringクラスのプロパティやメソッドを使える」と認識してください。
stringクラスにはLengthプロパティがあります。これを使用すると文字列の長さを調べることができます。
また、CompareToというメソッドは他の文字列と比較することができます。
他にもCopyメソッドで文字列のコピーができ、IndexOfメソッドでは文字列の検索ができます。str[n]とすると、文字列str中のn+1番目の文字を取得することができます。
こういうのは実際にコードを見てもらうと理解しやすいと思います。
is演算子とas演算子
参照型のみを対象とした演算子が存在します。それがis演算子とas演算子です。
これらの演算子は次のように使用します。
式 is(もしくはas) データ型
式が指定のデータ型であればtrueを返し、そうでないときははfalseを返します。
is演算子は次のように使います。
as演算子は式を指定のデータ型に変換します。
式もデータ型も参照型ではなくてはなりません。失敗するとnullで返されてしまいます。
as演算子は次のようになります。
最後に
今回でやっと変数とデータ型の単元が終了となります。
この単元は知っておくと、のちの開発が楽になっていくので、覚えておくようにしてください。
個人的にはそこまでがっつりしなくてもいいとは思います。
それでは今回はこれで以上となります。
最後まで読んでいただきありがとうございます。