alunote’s blog

C#,SQL,JavaScriptなどの技術メモをゆっくり投稿しています。

【C#】異なる型への変換方法について

今回は、異なる型への変換方法について記述します。
例えば、string型をDataTime型に変換したり、int型をlong型に変換したり。。。などなど
いろんな型変換を試してみます。

◆stringの型変換
stringの場合は、数値データ型.Parse(string str)で変換することが可能です。

例えば、string→intの場合

string str1 = "123";
int num1 = int.Parse(str1);

◆数値型の型変換
数値型に関しては、キャストを使用し明示的にデータを宣言することで変換することが可能です。

例えば、int→longの場合

int i = 123;
long l = (long)i;

次に、下記の通りに型に変換するプログラムを実装してみました。
・sbyte → short → int → long
・string → int
・string → DateTime

◆型変換のソースコード

using System;

class Task_5
{
    public static void Main()
    {
        sbyte sb = 123;
        short sh = (short)sb;
        int i = (int)sh;
        long l = (long)i;
        string str1 = "123";
        int num = int.Parse(str1);
        string str2 = "2018/7/2 8:00:00";
        DateTime dt1 = DateTime.Parse(str2);

        Console.WriteLine("sbyte:" + sb);
        Console.WriteLine("sbyte→short:" + sh);
        Console.WriteLine("short→int:" + i);
        Console.WriteLine("int→long:" + l);
        Console.WriteLine("string→int:" + num);
        Console.WriteLine("string→DateTime:" + dt1);
    }
}

◆型変換の実行結果
f:id:alunote:20180927103504p:plain

◆型変換できない事例
型の小さいものから大きいものへの代入は、暗黙的に型変換が行われて問題は起きません。
しかし、逆のパターンで型の大きいものから小さいものへの代入はコンパイルエラーになります。
※範囲内であればエラーにならない場合もある。
そのため、明示的に型変換を行って代入することをおすすめします。

以上です。
この記事が誰かの役に立つことを祈ります。