c type casting explicit implicit data conversion with example
例を使用したC#でのデータ型キャスト:このチュートリアルでは、明示的および暗黙的な変換、文字列への変換、およびヘルパークラスを使用したデータ型変換について説明します。
C#のデータ型と変数 以前のチュートリアルで詳細に説明されました。
型キャストを使用して、あるデータ型を別のデータ型に変換する方法を学びました。型キャストは、暗黙的変換と明示的変換の2つの部分に分かれています。
このチュートリアルでは、C#型キャストについて詳しく見ていきましょう。
小さいデータ型が大きいデータ型に変換されるか、派生クラスが基本クラスに変換される場合、これは暗黙的な変換です。
一方、反対方向への変換は明示的変換として知られています。高いデータ型を小さなデータ型に変換するには、キャスト演算子が必要です。このタイプの変換はタイプセーフではなく、データが失われる可能性があります。
学習内容:
C#でのデータ型キャスト
このチュートリアルでは、あるタイプのデータを別のタイプのデータに変換する方法について詳しく説明します。 C#はコンパイル中は静的型です。つまり、変数の宣言後は、他のデータ型の値を格納するために使用することはできません。
配列に値を追加する方法java
ただし、これは、その型を変数型に変換することで克服できます。
文字列値を整数に変換してみましょう。
int a; a = 'some random string';
これをコンパイルすると、「タイプ「string」を「int」に暗黙的に変換できません」というエラーがスローされます。
データ型は、データ型に基づいてさらに分割できます。
- プリミティブ
- 非プリミティブ
プリミティブデータ型 は事前定義されていますが、非プリミティブデータ型はユーザー定義です。 byte、int、short、float、long、char、boolなどのデータ型は、プリミティブデータ型と呼ばれます。 非プリミティブデータ型 クラス、列挙型、配列、デリゲートなどが含まれます。
このチュートリアルでは、C#が型キャスト用に提供するさまざまな方法について説明します。
暗黙の変換
暗黙的な変換は、最も単純なタイプの変換です。このタイプの変換はタイプセーフであり、変換中にデータが失われることはありません。これらの変換は、派生クラスを基本クラスに変換することを扱います。
例えば、 別の変数に格納する必要のある値がデータを失うことなく直接収まる場合は、暗黙的な変換を直接使用できます。 「整数」の値があり、その値を「長い」に渡したいとします。
int i = 75; long j = i;
明示的な変換
暗黙的な変換では、データを失うことなく派生クラスを基本クラスに直接変換できることがわかりましたが、データが失われる可能性がある場合、コンパイラーは明示的な変換を実行する必要があります。
明示的な変換またはキャストは、プログラムがデータ損失の可能性を認識して変換を実行しようとしているという情報をコンパイラーに渡すプロセスです。
例えば、 高い数値を低い数値に変換する場合。
double d = 75.25; int i; i = (int)d;
ここで、「i」を印刷すると、「75」が印刷されることがわかります。小数点以下のデータはすべて変換で失われます。
異なるヘルパークラスを使用した変換
文字列を数値に変換したり、バイト配列を整数に変換したり、16進文字列を他の数値タイプに変換したりするなど、互換性のない異なるタイプ間で変換するには、直接変換できないため、異なるヘルパークラスが必要です。
データ型は、convertクラスに存在するメソッドを使用するか、さまざまな数値型で使用できるTryParseメソッドを使用して、別のデータ型に変換できます。文字列を数字に変換する場合は、TryParseの方が便利です。非常に簡単で効率的です。
int number = Int32.Parse(“123”);
ここでは、解析を使用して文字列を整数に変換しました。
Convertメソッドである別の変換メソッドを見てみましょう。
内部に存在する静的メソッド クラスを変換する 基本データ型への変換、またはその逆の変換に非常に役立ちます。サポートされているデータ型には、Char、Boolean、Int32、int64、Double、Decimal、String、Int16などがあります。Convertクラスは、他の変換のメソッドもサポートしています。
文字列に変換
Convert.ToStringメソッドは、データ型を文字列に変換します。の中に 例 以下では、整数データ型を文字列データ型に変換しています。
int number = 75; string s = Convert.ToString(number);
InvalidCastException
あるタイプを別のタイプに変換するために実行された操作が有効かどうかをコンパイラーが理解できない場合があります。これにより、実行時にコンパイラが失敗します。型変換が失敗すると、無効な例外がスローされます。
InvalidCastExceptionは、明示的または型変換の実装が、変換に使用される両方のデータ型でサポートされていない場合にスローされます。
結論
このチュートリアルでは、変換のタイプと、異なるデータタイプ間で変換を実行する方法を学習しました。暗黙的な変換とは、派生クラスがintのような基本クラスに変換されてfloat型になる変換です。
明示的な変換は、データ損失を引き起こす可能性のある変換です。明示的な変換は、基本クラスを派生クラスに変換します。ヘルパークラスの助けを借りて、他のさまざまなデータ型で変換を実行する必要がある場合があります。 「Parse」や「ConvertTo」などのヘルパークラスは、あるデータ型を別のデータ型に変換するさまざまな方法を提供します。
また、コンパイラが2つの型間の変換を理解しない場合にスローする例外についても学びました。
推奨読書
- 例を含むC#データ型と変数
- C ++データ型
- C ++での型変換
- データマイニング:データ分析におけるプロセス、技術、および主要な問題
- データマートチュートリアル-データマートの種類、例、実装
- 移行テストの種類:各種類のテストシナリオ
- データ収集戦略を備えた10以上の最高のデータ収集ツール
- テストデータ管理用のIBMRational QualityManagerのデータプール機能