[C#] 5. データタイプ変換(キャスト:Cast)とコメント(Comment)
こんにちは。明月です。
この投稿はデータタイプ変換(キャスト:Cast)とコメント(Comment)に関する説明です。
データタイプ変換(キャスト:Cast)
以前の投稿でデータタイプに関して説明しました。
link - [C#] 04. データタイプとリテラル(literal)、 Nullable
プログラムで我々がすべてのデータタイプを合わせてデータを入力するし、その入力データにより計算することはできません。
例えば、我々はプログラムで実数のデータと整数のデータを受け取りました。
using System;
namespace Exception3
{
class Program
{
// 実行関数
static void Main(string[] args)
{
// 整数タイプの変数
int a = 10;
// 実数タイプの変数
float b = 20.5f;
// 足す
int c = a + b;
// コンソールに出力
Console.WriteLine("c = " + c);
// 任意のキーを押してください
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
}
上の例は整数タイプのa変数と実数タイプのb変数の値を足して整数タイプのcの変数に格納したいです。
デバッグでデータタイプが違うというエラーが発生します。
そうすると我々は実数タイプ(float)のデータを整数タイプ(int)に変換しなければならないです。そのことをデータイプ変換、つまりキャスト(Cast)と言います。
実数から整数、整数から実数の変換はただ括弧でキャストが可能です。
using System;
namespace Exception3
{
class Program
{
// 実行関数
static void Main(string[] args)
{
// 整数タイプの変数
int a = 10;
// 実数タイプの変数
float b = 20.5f;
// 実数タイプを整数にキャストする。実数から整数にキャストすると少数点は切り捨てになる。
int c = a + (int)b;
// コンソールに出力
Console.WriteLine("c = " + c);
// 任意のキーを押してください
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
}
この括弧でキャストすることは数のデータタイプだけです。つまり、整数タイプから実数タイプ、実数タイプから整数タイプだけです。
そうなら数タイプではない文字列(String)タイプはどうでしょう。
using System;
namespace Exception3
{
class Program
{
// 実行関数
static void Main(string[] args)
{
// 整数タイプの変数
int a = 10;
// 文字列タイプの変数
string b = "20";
// Int32クラスのParse関数を利用すればキャストが可能。
int c = a + Int32.Parse(b);
// コンソールに出力
Console.WriteLine("c = " + c);
// 任意のキーを押してください
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
}
Int32クラスのParse関数を利用すればキャストが可能です。
Parse関数はStringタイプだけではなく、実数タイプ(float、double)のキャストも可能です。
改めてまとめると、キャストする時には数の関係なデータは括弧でキャストが可能ですが、確実にキャストをするためにはInt32クラスのParse関数を利用する方が良いです。
また、文字列のタイプをキャストする時に文字列に数字だけあることではないです。文字がある可能性もありますね。
using System;
namespace Exception3
{
class Program
{
// 実行関数
static void Main(string[] args)
{
// 整数タイプの変数
int a = 10;
// 文字列タイプの変数(数字だけではなく、文字も含める)
string b = "20a";
// Int32クラスのParse関数を利用すればキャストが可能。
int c = a + Int32.Parse(b);
// コンソールに出力
Console.WriteLine("c = " + c);
// 任意のキーを押してください
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
}
実行中でエラーが発生します。当たり前の話ですが、文字は数字に変換ができないのでエラーが発生しますね。
でも、プログラム中でデータが間違いにある可能性があるので、エラーを発生することよりキャストができないデータならデータデフォルト値(0)に設定する方法があります。
using System;
namespace Exception3
{
class Program
{
// 実行関数
static void Main(string[] args)
{
// 整数タイプの変数
int a = 10;
// 整数タイプの変数
int b = 10;
// 入力するデータがキャストできないならbに0に設定する。
Int32.TryParse("20a", out b);
// 足す
int c = a + b;
// コンソールに出力
Console.WriteLine("c = " + c);
// 任意のキーを押してください
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
}
上の例は各データタイプのクラスを利用してキャストしました。
C#にはキャスト専用クラスがあります。
using System;
namespace Exception3
{
class Program
{
// 実行関数
static void Main(string[] args)
{
// 整数タイプの変数
int a = 10;
// 文字列のタイプから整数(int)タイプにキャスト
int b = Convert.ToInt32("20");
// 足す
int c = a + b;
// コンソールに出力
Console.WriteLine("c = " + c);
// 任意のキーを押してください
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
}
Convertクラスの場合はキャスト専用クラスです。つまり、実数から整数、文字列から整数などをキャストする関数があります。
メソッド | 説明 |
---|---|
Boolean.Parse, Boolean.TryParse, Convert.ToBoolean | ブールタイプにキャスト |
Byte.Parse, Byte.TryParse, Convert.ToByte | バイナリタイプにキャスト |
Char.Parse, Char.TryParse, Convert.ToChar | ユニーコードタイプにキャスト |
Decimal.Parse, Decimal.TryParse, Convert.ToDecimal | 実数(decimal)タイプにキャスト |
Double.Parse, Double.TryParse, Convert.ToDouble | 実数(double)タイプにキャスト |
Single.Parse, Single.TryParse, Convert.ToSingle | 実数(float)タイプにキャスト |
Int16.Parse, Int16.TryParse, Convert.ToInt16 | 符号がある整数(short)タイプにキャスト |
Int32.Parse, Int32.TryParse, Convert.ToInt32 | 符号がある整数(int)タイプにキャスト |
Int64.Parse, Int64.TryParse, Convert.ToInt64 | 符号がある整数(long)タイプにキャスト |
SByte.Parse, SByte.TryParse, Convert.ToSbyte | 符号がある整数(sbyte)タイプにキャスト |
UInt16.Parse, UInt16.TryParse, Convert.ToUInt16 | 符号がない整数(ushort)タイプにキャスト |
UInt32.Parse, UInt32.TryParse, Convert.ToUnit32 | 符号がない整数(uint)タイプにキャスト |
UInt64.Parse, UInt64.TryParse, Convert.ToUnit64 | 符号がない整数(ulong)タイプにキャスト |
String.Parse, String.TryParse, Convert.ToString | 文字列にキャスト |
コメント(Comment)
プログラムを作成する時(コーディング)にはソース上でメモが必要な時があります。
コメントというのことはソース上でメモや様々な情報を表示するための方法です。
C#のコメントは三つの種類があります。
一般コメントの一行コメントと多行コメント(複数行コメント)があり、ソース開発が終わった後、ドキュメント(XMLDoc)を作成することができるXMLコメントがあります。
/*
多行コメント(複数行コメント)
プロジェクト名: コメント練習
開発者: 明月
作業日付: 2021/07/09
BLOG: www.nowonbun.com
*/
using System;
namespace Exception3
{
class Program
{
/// <summary>
/// XMLコメント
/// </summary>
/// <param name="args">パラメータ</param>
static void Main(string[] args)
{
// 一行コメント
// 任意のキーを押してください
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
}
コメントを利用してソース上でメモを作成することができます。つまり、コメントの内容はプログラムのビルドやコンパイルする時に全然影響されません。
XMLコメントの場合はプロジェクトが完了した後でドキュメントに出力が可能です。
上のプロジェクトのオプションにチェックするとデバッグ(F5)した後で、XMLファイルが生成されます。
XMLコメントは標準タグのXMLタイプの形式があります。それを従って作成することができます。
XMLコメントタグ | 説明 |
---|---|
summary | 形式あるいは形式メンバ設定 |
remarks | 詳細な説明 |
para | remarksの追加説明 |
value | プロパティの説明 |
example | 使用例 |
list | リストとテーブル生成 |
code | 何行目のコードで表示する時に使用 |
see | テキスト内部のリンク指定 |
seealso | 参考部分に表せるテキスト指定 |
exception | 例外説明 |
permision | 接近権限説明 |
param | メソッドのパラメター説明 |
return | 返却値を説明 |
c | 説明中で含めているコード |
プログラミング(ソース作成)はソース整理とドキュメント作成から始まって、ソース整理とドキュメント作成で終わりますという話があります。
一応、ソースを規約やルール、デザインパターンなどを利用して綺麗に作成することも重要ですが、ソース読みやすい方法でコメントをよく作成する方法もあります。特にXMLコメントなどをよく作成して置いたら、プログラム作成終了後でAPIドキュメントなどを別途で作成する必要もありません。
ここまでデータタイプ変換(キャスト:Cast)とコメント(Comment)に関する説明でした。
ご不明なところや間違いところがあればコメントしてください。
- [C#] 15. インタフェース(interface)2019/07/10 00:06:17
- [C#] 14. 抽象クラス(abstract)と抽象メソッド(abstract)、そして仮想関数(virtual)2019/07/08 23:04:09
- [C#] 13. クラスの継承と再定義(override)する方法、overrideとnewの差異2019/07/08 22:55:00
- [C#] 12. Staticとアクセス修飾子、そしてカプセル化2019/07/07 23:12:30
- [C#] 11. インスタンスう生成(new)とメモリ割り当て(StackメモリとHeapメモリ)そしてヌル(null)2019/07/07 22:54:13
- [C#] 10. クラスを作成する方法(コンストラクタ、デストラクタ)2019/07/06 00:53:17
- [C#] 9. 関数(Method)とオーバーロード、再帰呼び出し2019/07/06 00:38:29
- [C#] 8. 配列とリスト2019/07/05 00:12:42
- [C#] 7. 制御文2019/07/05 00:05:30
- [C#] 6. 演算子2019/07/04 00:09:43
- [C#] 5. データタイプ変換(キャスト:Cast)とコメント(Comment)2019/07/04 00:01:12
- [C#] 4. データタイプとリテラル(literal)、 Nullable2019/07/02 23:58:43
- [C#] 3. プログラミングの始めと変数と定数を使う方法2019/07/02 23:46:49
- [C#] 2. Visual Studioをインストールする方法2019/07/01 23:58:20
- [C#] 1. C#とは?2019/07/01 23:32:22
- check2024/04/10 19:03:53
- [Java] 64.Spring bootとReactを連結する方法(Buildする方法)2022/03/25 21:02:18
- [Javascript] Node.jsをインストールしてReactを使う方法2022/03/23 18:01:34
- [Java] 63. Spring bootでcronスケジューラとComponentアノテーション2022/03/16 18:57:30
- [Java] 62. Spring bootでWeb-Filterを設定する方法(Spring Security)2022/03/15 22:16:37
- [Java] JWT(Json Web Token)を発行、確認する方法2022/03/14 19:12:58
- [Java] 61. Spring bootでRedisデータベースを利用してセッションクラスタリング設定する方法2022/03/01 18:20:52
- [Java] 60. Spring bootでApacheの連結とロードバランシングを設定する方法2022/02/28 18:45:48
- [Java] 59. Spring bootのJPAでEntityManagerを使い方2022/02/25 18:27:48
- [Java] 58. EclipseでSpring bootのJPAを設定する方法2022/02/23 18:11:10
- [Java] 57. EclipseでSpring bootを設定する方法2022/02/22 19:04:49
- [Python] Redisデータベースに接続して使い方2022/02/21 18:23:49
- [Java] Redisデータベースを接続して使い方(Jedisライブラリ)2022/02/16 18:13:17
- [C#] Redisのデータベースを接続して使い方2022/02/15 18:46:09
- [CentOS] Redisデータベースをインストールする方法とコマンドを使い方2022/02/14 18:33:07