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の初期化はこれでOK!初期化の方法や基本を簡単解説

C#では連想配列を扱うためのクラスとして「Dictionaryクラス」があります。今回はC#での「Dictionaryクラス」について初期化の仕方などの基本から、要素の取り出しや存在確認なども解説します。

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

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

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

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

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

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

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

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

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

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

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

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

 

 

Kindle Unlimitedで無料で本が読める

 

Kindle Unlimitedを無料で試す

 

なら最初の30日間は無料でコーディング・デザイン・ブログ・英語・Youtubeの参考書・キャリア・副業・マーケティング・漫画・美容知識・雑誌などが読み放題です。

人気の本もあるので是非お試ししてみてください!30日以内に解約すればお金は全くかかりません。

 


最近の投稿

【今すぐ行動しよう】フリーランスエンジニアとブログの相性は抜群!

フリーランスエンジニアがスキルや経験から得たビジネスノウハウを共有する手段として「ブログ」は非常におすすめです。自身のスキルや知識のアウトプットや、実際に自分が経験したことを共有して同じような境遇の人の手助けになるような情報を公開することで自分に帰ってくるメリットは非常に多いです。今回はそのあたりについて紹介していきます。

【経験談】フリーランスのエンジニアは本当に大変なの?安定のコツやポイント

フリーランスのエンジニアは「大変だからやめとけ」という話をよく聞くので、そのことについて現役でフリーランスエンジニアとして生活している私が、その話の実態を解説しようと思います。フリーランスエンジニアの大変なところはもちろんありますが、それ以上にメリットが多いので私個人的には非常におすすめしています。

【幸福度UP】フリーランスエンジニアの「田舎暮らし」実現できます

フリーランスエンジニアとして田舎で暮らす人が増えてるって聞くけど、本当なのかな?どうやったら実現できるのか?今回はフリーランスエンジニアとして田舎で生活をしたいという方向けに、実現可能なのか、実現するにはどうすれば良いのかをご紹介します。

【単価交渉で収入アップ】フリーランスが単価交渉を成功させる4つのポイント

フリーランスが収入をアップさせるための重要な手段のひとつに「単価交渉」があります。今回は、現役でフリーランスとしてエンジニアをしている私が実践して効果のあった単価交渉の方法やコツをご紹介します。

【 今なら無料!】タスク管理ツール「Backlog」を無料で使う方法と手順

今回は、普段のタスク管理からプロジェクトの管理まで幅広く使えるツール「Backlog」を無料で使うための方法とその手段を画像つきで紹介しました。もし気に入らなければ、期間内に解約してしまえば費用はかかりません。また、以外と知られていない「フリープラン」も紹介しているので、是非参考にしてみてください。

Copyright© FUNA BLOG , 2021 All Rights Reserved.