C#の暗黙的な型変換(Implicit Conversion)とは?基本とサンプルコードで解説
C#の暗黙的な型変換とは
C#における型変換には、「暗黙的な型変換(implicit conversion)」と「明示的な型変換(explicit conversion)」の2種類があります。このうち暗黙的な型変換は、C#のコンパイラが自動的に、かつ型安全な方法で実行してくれる変換のことです。
代表的な例としては、次のようなものが挙げられます。
- 小さい整数型から大きい整数型への変換(例:int から long へ)
- 派生クラスから基底クラスへの変換(アップキャスト)
これらの変換ではデータの損失や例外が発生する恐れがないため、開発者が明示的にキャストを記述する必要はありません。コンパイラが安全性を保証したうえで、自動的に変換を行ってくれます。
int を long に暗黙的に変換する例
それでは、2つの int 型の値を足し合わせて、long 型の変数に代入する例を見てみましょう。
int val1 = 11000; int val2 = 35600; long sum; sum = val1 + val2;
上記のコードでは、int 型同士の加算結果を long 型の変数 sum に代入していますが、エラーは発生しません。これは、コンパイラが自動的に暗黙的な型変換(拡大変換)を行っているためです。int よりも表現範囲が広い long 型への代入は安全であると判断され、特別な記述なしに変換が完了します。
完全なサンプルコード
続いて、実際に動作するプログラム全体を確認してみましょう。
using System;
using System.IO;
namespace Demo {
class Program {
static void Main(string[] args) {
int val1 = 11000;
int val2 = 35600;
long sum;
sum = val1 + val2;
Console.WriteLine("Sum= " + sum);
Console.ReadLine();
}
}
}実行結果
Sum= 46600
まとめ
暗黙的な型変換は、小さい型から大きい型への「安全な」変換にのみ許可されています。逆に、大きい型から小さい型への変換(例:long から int へ)はデータ損失のリスクがあるため、明示的なキャストが必要となります。型変換のルールを正しく理解しておくことで、意図しないバグを防ぎ、より安全で読みやすいコードを書くことにつながります。
-
C言語の型変換入門:暗黙的変換と明示的変換(キャスト)の違いを徹底解説
あるデータ型を別のデータ型へ変換することを「型変換(type conversion)」と呼びます。C言語における型変換には、主に以下の2種類があります。 暗黙的な型変換(implicit conversion) 明示的な型変換(explicit conversion) 暗黙的な型変換とは 演算対象(オペランド)同士のデータ型が異なる場合、コンパイラが自動的に行う型変換です。 プログラマが特に指示しなくても、小さいデータ型から大きいデータ型への変換が自動的に実行されます。これを「型の昇格」とも呼びます。 int i,x; float f; double d; long int l;
-
C/C++の型キャストとは?基礎から整数昇格・通常の算術型変換まで解説
型キャスト(型変換)とは、あるデータ型の変数を別のデータ型へ変換する手法のことです。例えば、long型の値を単純なint型の変数に格納したい場合、longをintへキャストすることができます。値をある型から別の型へ明示的に変換するには、キャスト演算子を次の形式で使用します。(型名) 式キャスト演算子の使用例次の例では、キャスト演算子によって整数変数同士の除算が浮動小数点演算として実行されます。#include <stdio.h> main() { int sum = 17, count = 5; double mean; mean = (double) su