【C#.NET解説】型変換の神、狡猾な「Convert」が教える裏切りの準備

2024年11月12日火曜日

基本 型変換

t f B! P L

名前空間 System

Convert

自己紹介

私はConvert、.NETの万能で狡猾な変換マスター。データ型の世界を自在に操り、真実と偽りの狭間で踊る悪戯好きの神だ。私の言葉を信じるか否かは君次第だ。

基本機能

Convertクラスは、さまざまな型のデータを簡単に変換するために設計されている。文字列を数値に変換したり、逆に数値を文字列に変えたりと、柔軟な対応が可能だ。例えば、次のように使うことができる。

C#

// 文字列を整数に変換
string numberText = "42";
int number = Convert.ToInt32(numberText);
Console.WriteLine(number); // 出力: 42

// 小数を文字列に変換
double pi = 3.14159;
string piText = Convert.ToString(pi);
Console.WriteLine(piText); // 出力: "3.14159"

Convertクラスを使うと、手動で変換ロジックを書く必要がない。これはデータ処理の効率化に役立つ。

注意点

だが、すべてがうまくいくわけではない。変換に失敗する場合もあるのだ。例えば、文字列を数値に変換しようとしても、文字列の内容が数値として無効なら例外がスローされる。

C#

// 無効な文字列を整数に変換しようとする例
string invalidText = "abc";
try
{
    int invalidNumber = Convert.ToInt32(invalidText);
}
catch (FormatException ex)
{
    Console.WriteLine("変換に失敗しました: " + ex.Message);
}

変換元のデータが予期しない形式の場合には、例外処理を用意しておくことを忘れるな。

TryParseとの違い

ConvertクラスとTryParseメソッドは、どちらも型変換に使用されるが、挙動が異なる。Convertクラスは失敗時に例外をスローするが、TryParseは成功・失敗の結果をブール値で返す。

C#

// Convertを使用
string numberText = "123";
int number1 = Convert.ToInt32(numberText);
Console.WriteLine(number1); // 出力: 123

// TryParseを使用
string invalidNumberText = "abc";
if (int.TryParse(invalidNumberText, out int result))
{
    Console.WriteLine(result);
}
else
{
    Console.WriteLine("変換に失敗しました");
}

Convertは例外処理が必要だが、TryParseは変換が成功したかどうかをチェックするため、安全性が高い。

具体的な使い方

Convertクラスを用いて、複数の型をまとめて変換する例を紹介しよう。

C#

string numberText = "100";
string booleanText = "true";
string doubleText = "3.14";

try
{
    int number = Convert.ToInt32(numberText);
    bool boolean = Convert.ToBoolean(booleanText);
    double doubleValue = Convert.ToDouble(doubleText);

    Console.WriteLine($"整数: {number}, ブール値: {boolean}, 小数: {doubleValue}");
}
catch (Exception ex)
{
    Console.WriteLine("変換中にエラーが発生しました: " + ex.Message);
}

このように、Convertクラスを活用すると異なる型のデータを簡単に処理できる。

解説

Convertクラスの力を使えば、型変換が驚くほど簡単になる。だが、常にデータの妥当性を確認することが重要だ。TryParseを使うか、例外処理を適切に実装することで、予期しないエラーを防げる。これを活用して、君のプログラムをさらに強力なものにしてくれ。

このブログを検索

QooQ