C#

【C#】型変換(キャスト)とは?初心者でも簡単な使い方を解説

こんにちは、リバティエンジニアのFUNA(フナ)です。

現役でフリーランスのエンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。

 

この記事はこんな方におすすめ

  • C#のキャストについて知りたい
  • C#でのキャストのやり方が知りたい

 

今回は、C#での「型変換(キャスト)」について、初心者の方にもわかりやすく理解できるように解説します。

 



 

【C#】キャストとは?

C#ではコンパイルされる時に静的に型が指定されるため、「型」が変数の「型」に暗黙的に変換することができない限り、再びその変数を宣言したりその変数とは違う型の値を代入したりすることができません。

 

ここでひとつ例を紹介します。

C#ではstringの変数をint型の変数に暗黙的に変換することはできないので、int型で宣言した変数に"Hello"という文字列を代入することはできません

int test;
test = "Hello";

上記のような状態ですね。

このような時に、別の型への代入を可能にするために型変換をする必要があります。

このことを「キャスト」といいます。

 

C#キャストのサンプル

では早速様々な、型から型へのキャストのサンプルをご紹介します。

string型から数値型へのキャスト

// int型へキャスト
int a = int.Parse("123");

// long型へキャスト
long a = long.Parse("123");

// float型へキャスト
float a = float.Parse("123.45");

// double型へキャスト
double a = double.Parse("123.45");

 

数値型からstring型へキャスト

// int型からキャスト
int i = 123; 
string = i.ToString(); 

// long型からキャスト 
long l = 123; 
string a = l.ToString(); 

// float型からキャスト 
float f = 123.45; 
string a = f.ToString(); 

// double型からキャスト 
double d = 123.45; 
string a = d.ToString();

 

指定する型へキャストする

簡単に指定した型へのキャストをご紹介します。

データ型 hensuu = (データ型)obj;

 

このように異なるデータ型の「hensuu」と「obj」を”()”で代入先のデータ型を記述することでキャストすることができます。

 

例えば以下のように使用できます。

int a = 1; 
double b = 2.3; 
a = (int)b;

 

これはintの変数にdoubleの値を代入する際のサンプルコードです。

この方法を使う際の注意点として、もしキャストができないような場合には例外が発生します。

 

C#で型変換(キャスト)できるかチェックする方法

想定している型とは違う型が予想される場合は、型のチェックをしてから型変換をするほうが例外も出ずに安全に処理できるので、ぜひ使ってください。

サンプルコードをご紹介します。

// int型にキャストできるかどうかチェックする 
int aa; 
string str = "123"; b
ool b = int.TryParse(str, out aa); 

// DateTime型にキャストできるかどうかチェックする 
DateTime aa; 
string str = "2014/11/3"; 
bool b = DateTime.TryParse(str, out aa); 

// 変数objがSample型かどうかを判定してから型変換する(方法A) 
if (obj.GetType() == typeof(Sample)) 
{
  Sample s = (Sample)obj;
} 

// 変数objがSample型かどうかを判定してから型変換する(方法B) 
if (obj is Sample)
{
  Sample s = (Sample)obj;
}

 

このように結構簡単にできるので、もしユーザが入力する項目などで想定外のパターンが予想される場合は是非使ってみてください。

 

まとめ

今回は、C#のキャスト(型変換)についてお話しました。

C#ではC言語やC++などよりも簡単に便利に型の相互変換を行うことができるので、ここで覚えておいてください。

他にもC#の記事が色々あるので良かったら見ていってください。

 

>> C# 世界一わかるデリゲート(delegate)について

>> 【C#】enum (列挙型)がわかる!かんたん徹底解説

>> 【結論】未経験でプログラミングの独学はぜんぜん可能

 

C#カテゴリの関連記事

【C#】 ファイルパスの徹底攻略。取得や結合、ファイルの存在チェック

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今回はC#における「ファイルパス」の取り扱いについてご紹介 ...

【C#】dictionaryとは?初期化の方法や基本の使い方をカンタン解説

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今回はC#の「dictionary」について初期化の仕方な ...

【C#入門】LINQ(リンク)とは?わかりやすく解説!

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今回は、まだLINQ(リンク)を使いこなせていない方や、初 ...

【C#】型変換(キャスト)とは?初心者でも簡単な使い方を解説

今回はC#のキャストとは何なのかについて解説します。C#ではコンパイルされる時に静的に型が指定されるため、「型」が変数の「型」に暗黙的に変換することができない限り、再びその変数を宣言したりその変数とは違う型の値を代入したりすることができません。そんな時に便利なキャストがあります。

【C#】enum (列挙型)がわかる!かんたん徹底解説

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今回はC#で列挙型(enum)についてお話します。 目次 ...

【C#】プロパティとは?利用するメリットはあるのか。

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今回はC#で便利な機能の一つ「プロパティ」についてお話して ...

【C#】 usingステートメントとは?サンプルコードで解説

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今回は自動でインスタンスを解放してくれる便利な機能「usi ...

【C#】コンストラクタとデストラクタ

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今回は、C#におけるコンストラクタとデストラクタの役割や使 ...

 

最近の投稿

「ワーケーション」とは?環境省が推している理由やメリットを解説

「ワーケーション」とは?2020年7月に、菅官房長官が「ワーケーション」の普及について表明してSNSやニュースで「ワーケーション」が話題になりました。環境省が推進している理由や導入メリット・デメリットを解説します。

レバテックキャリアは未経験でも転職できるのか?リアルな口コミで検証します

IT特化型転職エージェントの「レバテックキャリア 」は未経験でも転職することができるのか?について実際に利用した方のクチコミを元に調査しました。

レバテックキャリアの悪い評判は本当なのか?利用者から聞く実態と噂の真偽

【2020年10月更新】IT系の転職エージェントで有名な「レバテックキャリア」ですが、なぜ悪い評判や悪い口コミが多いのか?その理由について説明します。また、是非登録すべき他の転職エージェントもご紹介していますので、参考にしてみてください。

その会社は大丈夫?知っておきたいブラック企業の特徴

就職先がブラック企業ではないか不安… 転職を考えているけど、ブラックな会社だったらどうしよう… こういった悩みや不安を抱えている方も多くいると思います。 就職や転職をした際に「この会社、ブラックだった ...

【2020年最新保存版】副業と複業の違いやそれぞれの意味について徹底解説!

こんにちは、リバティエンジニア[?]のFUNAです。 現役エンジニアとしてアプリケーション開発やWeb制作、SEOやブログ運営をしています。 今、話題になっている「テレワーク」という働き方を利用して「 ...

Copyright© FUNA BLOG , 2020 All Rights Reserved.