C#初級プログラミング PR

C#初心者のための基礎!データ型の変換のやり方をわかりやすく解説#6

記事内に商品プロモーションを含む場合があります

データ型の変換とは?

データというのは数値型や文字列型などがあるため、用途に合わせて、型変換が必要になります。例えば画面に表示する場合の100は文字ですが、内部で計算に使用する場合は、数値型に変換しないと足し算などの計算はできません。そのように用途に合った型変換が必要なので、型変換のやり方を解説していきます。

データ型の変換の書き方

キャスト

キャストは数値同士などの似た者同士を変換するときに使います。例えばdouble型をint型に変換する場合に使います。

double d1 = 1.9d;
int a = (int)d1;
MessageBox.Show(a.ToString());

この場合aの値は「1」になります。

short shortValue = 10;
int intValue = shortValue;

Shortをintに変換する場合は、特になにも記述しなくても暗黙的な型変換が行われる。自分よりも大きな型に入れる場合はこのような記述ができる。

Parse

string value = "10";
int intValue = int.Parse(value);

この場合は文字列の10がParseでintに変換される。

string value = "aaa";
int intValue = int.Parse(value);

数値に変換できない文字列をintに変換しようとした場合はFormatExceptionとなります。

string value = "10.4";
int intValue = int.Parse(value);

浮動小数点数になりうる数値の文字列をintに変換しようとしてもFormatExceptionになります。

TryParse

string value = "10.4";
int intValue;
bool result = int.TryParse(value, out intValue);

TryParseの場合は戻り値がboolであり、変換できたらTrue、できない場合はFalseが返却されます。Intへの変換後の値はoutキーワードで指定した引数に格納されます。例外が発生しないことがParseとの違いです。

Convert

string value = "10";
int intValue = Convert.ToInt32(value);

ParseとConvertの違いはほとんどありません。違いは変換対象がNullの場合にConvertの場合は「0」ゼロになるのに対して、Parseの場合はArgmentNullExceptionとなります。違いはその程度です。

キャストと型変換 (C# プログラミング ガイド)

https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/casting-and-type-conversions

 

文字列を数値に変換する (C# プログラミング ガイド)

https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/types/how-to-convert-a-string-to-a-number

まとめ

Parse 失敗時は例外
TryParse 失敗時はFalse
Convert 失敗時は例外(Nullを数値に変換時は0になる)
ToString() 文字列に変換

 

C#初心者のための基礎文法
Udemyで販売しているC#のコースを 1つプレゼントします!