C#樹林– category –
プログラミング言語のC#を勉強したときのノートです。
-
C#樹林
C#でdouble型(浮動小数点数)を==で比較してはいけない理由と、安全な比較方法
double型(浮動小数点数)の==比較に潜む罠 C#で数値を扱う際、double型(やfloat型)の値を == 演算子で直接比較すると、意図しない結果になることがあり、これは重大なバグの原因となります。 例えば、0.1 + 0.2 を計算すれば、当然 0.3 になるはずです... -
C#樹林
C#のcheckedキーワード:数値演算オーバーフローを検知し例外をスローする方法
数値演算の「オーバーフロー」とは C#において、intやlongといった整数型には、格納できる数値の範囲に上限(int.MaxValueなど)と下限(int.MinValueなど)があります。 もし計算結果がこの最大値を超えたり、最小値を下回ったりした場合、その現象を「オ... -
C#樹林
C#のMath.Roundメソッド:四捨五入と「銀行家の丸め」(ToEven)の重要な違い
C#における数値の「丸め」 C#でdoubleやdecimalといった小数点以下の数値を持つデータを扱う際、計算結果を指定した桁数に「丸める」処理は不可欠です。一般的に「四捨五入」と呼ばれる処理ですが、C#の標準メソッドであるMath.Roundは、デフォルトの動作... -
C#樹林
C#:指定した小数点以下の桁数でMath.Floor(切り捨て)とMath.Ceiling(切り上げ)を行う方法
C#における小数点の丸め処理 C#のMath.Floor()メソッドとMath.Ceiling()メソッドは、それぞれ数値を切り捨て(床関数)、切り上げ(天井関数)して整数にするための標準的な関数です。 Math.Floor(10.7) は 10 になります。 Math.Ceiling(10.2) は 11 にな... -
C#樹林
C#の数値丸め:Math.Floor(切り捨て)とMath.Ceiling(切り上げ)の動作と違い
小数点以下の数値処理 C#でdoubleやdecimalといった小数点以下の値を持つ数値を扱う際、計算の要件に応じて「小数点以下を切り捨てて整数にしたい」または「小数点以下を切り上げて整数にしたい」という場面があります。 intへのキャスト (int) が「0(ゼ... -
C#樹林
C#でべき乗(累乗)を計算する方法:Math.Pow()メソッドの使い方
C#におけるべき乗計算 プログラミングでは、ある数値のn乗(例: 2の10乗、5の3乗など)を計算したい場面があります。このような計算を「べき乗」または「累乗」と呼びます。 C#では、標準の数学関数を提供するSystem.Mathクラスに、このべき乗計算を行うた... -
C#樹林
C#で絶対値を取得する方法:Math.Abs()メソッドの正しい使い方
絶対値とは 「絶対値」とは、数学において、ある数値から0(ゼロ)までの距離を表す値です。そのため、絶対値は常に0(ゼロ)または正の数となり、負の数になることはありません。 5 の絶対値は 5 です。 -10 の絶対値は 10 です。 0 の絶対値は 0 です。 ... -
C#樹林
C#の数値型:int, doubleなどの最大値・最小値を取得する方法 (MinValue, MaxValue)
数値型の「範囲」を理解する重要性 C#は静的型付け言語であり、int(整数)やdouble(浮動小数点数)などの数値型には、格納できる値の範囲(最小値と最大値)が厳密に定められています。 計算処理を行う際、結果がその型の最大値を超える(オーバーフロー... -
C#樹林
C#のインクリメント(++)・デクリメント(–)演算子:前置と後置の重要な違い
インクリメント・デクリメント演算子とは C#で数値変数を扱う際、「変数の値を1だけ増やす」または「1だけ減らす」という操作は、forループのカウンターや状態管理などで頻繁に発生します。 この操作は count = count + 1; や count += 1; とも記述できま... -
C#樹林
C#の算術演算子ガイド:加算、減算、乗算、除算、剰余の基本
C#における数値計算の基本 C#で数値データを扱う際、四則演算(足し算、引き算、掛け算、割り算)は最も基本的な操作の一つです。C#では、これらの計算を行うために「算術演算子」が用意されています。 この記事では、+(加算)、-(減算)、*(乗算)、/... -
C#樹林
C#のbreakキーワード:forやwhileループを即座に中断する方法
ループ処理の「中断」 C#のforやwhileといった繰り返し処理(ループ)は、通常、指定された条件式がfalseになるまで実行され続けます。しかし、プログラムのロジックによっては、条件が満たされる前であっても、特定の事態が発生した時点で即座にループを... -
C#樹林
C#のcontinueキーワード:ループ処理をスキップして次の繰り返しに進む方法
ループ処理における「スキップ」の必要性 C#でfor、foreach、whileなどのループ(繰り返し処理)を実装する際、特定の条件に合致した場合にのみ、その回(イテレーション)の処理を中断し、すぐに次の繰り返しに進みたいというケースがあります。 例えば、... -
C#樹林
【C#】foreachループの基本:コレクションや配列の全要素を簡単に処理する方法
コレクション処理と foreach ループ C#プログラミングでは、List<T>や配列(string[]など)といった「コレクション」に格納された複数のデータを、先頭から順に一つずつ取り出して処理する場面が非常に多くあります。 forループを使用してインデック... -
C#樹林
C#の繰り返し処理:for, while, do-whileループの使い分けと基本構文
繰り返し処理(ループ)とは プログラミングにおいて、同じ、あるいはよく似た処理を特定の回数や条件が満たされるまで何度も実行したい場合があります。このような処理を「繰り返し処理」または「ループ」と呼びます。 C#には、この繰り返し処理を実現す... -
C#樹林
C#の型変換(キャスト)解説:(型名)の正しい使い方とデータ損失リスク
C#における型変換の重要性 C#は静的型付け言語であり、変数はすべて厳密な型(int、double、stringなど)を持っています。原則として、異なる型同士の代入はできません。 しかし、プログラムのロジック上、ある型の値を別の型として扱いたい場合があります... -
C#樹林
C#の条件演算子(?:)ガイド:if文を簡潔に記述する方法
単純な条件分岐と if 文 プログラミングでは、「もしAという条件が満たされていればBという値を、そうでなければCという値を採用する」という場面が非常に多くあります。 例えば、ユーザーのステータス(bool値)に応じて表示用の文字列("有効" または "... -
C#樹林
C#の論理演算子:&& (AND) と || (OR) の正しい使い方と評価順序
複雑な条件分岐と論理演算子 プログラミングにおいて、if文などで条件を判定する際、「Aという条件が真である」といった単一の条件だけでなく、「A かつ Bが真である」や「A または Bが真である」のように、複数の条件を組み合わせて判断したいケースが頻... -
C#樹林
C#のswitch文とswitch式:効率的な多分岐処理の書き方
多分岐処理とswitch文 if-else if-else構文は、複数の条件を順番に評価して処理を分岐させる強力な手段です。しかし、単一の変数が多数の特定の値のどれと一致するかを判定する場合、if-else ifを連鎖させるとコードが冗長になり、可読性が低下することが... -
C#樹林
C#の多分岐処理:if-else if-else文の正しい使い方と注意点
条件分岐の「多分岐」とは C#のif文は、条件が真(true)か偽(false)かの2択(if-else)だけでなく、3つ以上の複数の選択肢から処理を分岐させることも可能です。 例えば、「Aの場合は処理1、AではないがBの場合は処理2、どちらでもない場合は処理3」と... -
C#樹林
C#の条件分岐「if」文の基本:if-else、else if の使い方を解説
条件分岐とは プログラミングでは、「もしAという条件が満たされていれば、Bという処理を行う」といったように、状況に応じて実行する内容を変更したい場面が数多くあります。このような処理の流れを「条件分岐」と呼びます。 C#において、この条件分岐を... -
C#樹林
C#の文字列補間($)入門:変数を埋め込む効率的な文字列整形術
文字列整形における課題 C#でプログラムを記述する際、変数や式の値を組み合わせて一つの文字列を生成する場面は非常に多くあります。 従来は、+演算子による文字列連結や、string.Formatメソッドが用いられてきました。 // 従来の方法 1: + 演算子 string... -
C#樹林
C#の逐語的リテラル文字列(@)の使い方とメリット:ファイルパスや複数行テキストを簡単に
C#における文字列記述の課題 C#で文字列リテラルを扱う際、特定の文字は「エスケープシーケンス」を用いて表現する必要があります。例えば、バックスラッシュ(\)は\\と2回続けなければならず、改行は\nと記述します。 特にWindowsのファイルパスや、複数... -
C#樹林
C# 文字列リテラル完全ガイド:エスケープシーケンスの正しい使い方
C#における文字列と特殊文字 C#において、文字列は通常、ダブルクォーテーション(")で囲んで表現されます。しかし、文字列の内部に「改行」や「タブ」といった制御文字、あるいは「ダブルクォーテーション」自体を含めたい場合があります。 このような特... -
C#樹林
C#における定数の定義「const」キーワードの正しい使い方と readonly との違い
プログラミングにおける「定数」の重要性 プログラミングにおいて、「定数」とは、一度値を設定したらプログラムの実行中に変更できない値のことを指します。C#では、このような値を定義するために主にconstキーワードが用いられます。 定数を利用すること... -
C#樹林
C#の型推論「var」の適切な使い方と、主要数値型の詳細ガイド
C#プログラミングにおける変数宣言 C#は静的型付け言語であり、変数を使用する際にはその変数がどのようなデータ(数値、文字列、真偽値など)を保持するかをコンパイラに伝える「型」を宣言する必要があります。従来は型名を明示的に記述する方法が一般的... -
C#樹林
C#からPythonスクリプト(.py)を実行する3つの方法を徹底比較
C#を用いた開発プロジェクトにおいて、Pythonが持つ豊富なライブラリ(例えば、機械学習のTensorFlowやPyTorch、データ分析のNumPyやPandasなど)を活用したい場面が出てくることがあります。その際、C#のプログラムから直接Pythonスクリプト(.pyファイル... -
C#樹林
セキュリティ学習:「トロイの木馬」と「バックドア」の仕組みと違いとは? 侵入者の特定は可能か
セキュリティを学ぶ上で、「トロイの木馬」や「バックドア」といった用語は頻繁に登場します。これらはしばしば混同されがちですが、その仕組みや目的は異なります。 また、もし仮にこれらの手口で侵入された場合、ログ(痕跡)は残るのか、そして犯人を特... -
C#樹林
【C# WinForms】画像ビューワー作成チュートリアル (ファイル選択・一覧表示)
Windows Formsを使ったGUIアプリケーション開発に慣れるには、実際に動くものを作ってみるのが一番です。 この記事では、画像ファイルを選択して表示する、シンプルな「画像ビューワー」の作成手順を詳しく解説します。OpenFileDialogやFolderBrowserDialo... -
C#樹林
【C# WinForms入門】じゃんけんゲーム作成チュートリアル (テキスト表示から画像表示まで)
C#の学習において、コンソールアプリケーションから一歩進んで、ボタンや画像があるグラフィカルなアプリケーション(GUIアプリ)を作ってみたいと思う方も多いでしょう。 この記事では、GUIアプリ開発の入門として非常に人気のあるWindows Formsを使い、... -
C#樹林
【C#応用】タイマーとイベントで時計アプリ作成!GUIの基礎を学ぼう
C#で動的なアプリケーション、例えばリアルタイムで表示が変わる時計や、一定時間ごとに何かをチェックするプログラムを作るにはどうすればよいのでしょうか。 この記事では、それを実現するための2つの重要な概念「タイマー」と「イベント」を解説し、そ...