-
C#で0除算するとどうなる?無限大か例外か、正しい挙動と対処法を解説
C#において、0による除算(ゼロ除算)を行うと、System.DivideByZeroException という例外がスローされます。これは、割る数(除数)が0である場合に発生するエラーを処理するための専用クラスです。実際に try-catch を使った例外処理のサンプルコードを見てみましょう。コード例using System; namespace ErrorHandlingApplication { class DivNumbers { int result; DivNumbers() { result = 0;
-
C#のオブジェクトとクラスの違いとは?基本概念と使い方を実例で解説
C#におけるクラスとオブジェクトの基本的な違い C#はJavaと同様にオブジェクト指向プログラミング言語であり、「クラス」と「オブジェクト」という2つの重要な概念を持っています。 クラスは、データ(フィールド)と処理(メソッド)をひとまとめにした「設計図」や「テンプレート」のようなものです。一方、オブジェクトは、そのクラスをもとに実際に生成された「実体(インスタンス)」を指し、現実世界のモノや概念をプログラム上で表現します。 つまり、クラスはあくまで定義であり、それ自体はメモリ上に実体を持ちません。newキーワードを使ってインスタンス化することで、初めて操作可能なオブジェクトが生成されます。
-
C#のconstとreadonlyの違いとは?使い分けのポイントを徹底解説
C#には、後から変更できない値を持つフィールドを定義するためのキーワードとして「const」と「readonly」の2種類があります。どちらも定数のように扱われますが、値が決まるタイミングや初期化の方法に重要な違いがあります。本記事では、それぞれの特徴と適切な使い分けのポイントを詳しく解説します。 const(定数)とは constで宣言されたフィールドは「コンパイル時定数」と呼ばれ、プログラムの実行中に値を変更することはできません。宣言と同時に必ず値を代入する必要がある点が大きな特徴です。 const int a = 5; constの主な特徴 宣言時に必ず初期化しなければならない
-
C#における「初期化」と「代入」の違いをわかりやすく解説
C#プログラミングにおいて、「初期化」と「値の代入(アサイン)」は似ているようで異なる概念です。この記事では、両者の違いを配列を例にしてわかりやすく解説します。 配列の宣言 まず、配列を宣言するコードを見てみましょう。 int[] n; // 宣言 このように宣言しただけでは、配列はメモリ上でまだ使用可能な状態になっていません。宣言はあくまで「配列変数の存在」をコンパイラに伝えるだけです。 初期化とは 配列変数を初期化すると、メモリ上に実体が確保され、そこへ値を代入できるようになります。 重要なポイントとして、C#において配列は参照型です。そのため、newキーワードを使って明示的にインスタ
-
C#のRead()メソッドとReadLine()メソッドの違いとは?使い分けのポイントを解説
C#でコンソールアプリケーションを開発する際、ユーザーからの入力を受け付けるために使われるのがConsole.Read()とConsole.ReadLine()です。どちらも標準入力からデータを読み取るメソッドですが、動作や戻り値に重要な違いがあります。本記事では、それぞれの特徴と使い分けのポイントをわかりやすく解説します。 Read()メソッドとは Read()メソッドは、標準入力ストリームから次の1文字を読み取ります。戻り値はint型であり、読み取った文字に対応するUnicode文字コード(整数値)が返されます。文字そのものではなくコードポイントが返される点に注意が必要です。 また、コンソ
-
C#におけるオーバーライドとメソッドの非表示(シャドウイング)の違いとは?
C#におけるオーバーライドとメソッドの非表示(シャドウイング)の違い C#では、継承関係にあるクラス同士で同じ名前のメソッドを扱う方法として、「オーバーライド(override)」と「メソッドの非表示(シャドウイング)」という2つのアプローチがあります。どちらも親クラスのメソッドを子クラスで再定義する点は似ていますが、その仕組みや実際の挙動には明確な違いがあります。 メソッドの非表示(シャドウイング)とは メソッドの非表示は、「シャドウイング(shadowing)」とも呼ばれる手法です。この場合、子クラスは override キーワードを使わずに、親クラスと同じ名前のメソッドを独自に定義でき
-
C#の値渡しと参照渡し(refパラメーター)の違いを徹底解説
C#では、メソッドに引数を渡す方法として「値渡し」と「参照渡し」の2種類があります。それぞれの仕組みの違いを理解することは、バグの防止や効率的なコード設計において非常に重要です。本記事では、両者の違いをわかりやすく解説します。 参照パラメーター(参照渡し)とは 参照パラメーターとは、変数が格納されているメモリ上の位置(アドレス)への参照を表すものです。参照パラメーターは、メソッドに渡された実引数と同じメモリ位置を共有します。 そのため、パラメーターを参照渡しにした場合、値渡しとは異なり、新しいストレージ領域は作成されません。メソッド内でパラメーターに行われた変更は、呼び出し元の変数に直接反映さ
-
C#におけるTrimStart()とTrimEnd()の違いを徹底解説
C#には、文字列の不要な文字を取り除くための便利なメソッドが用意されています。その中でもTrimStart()とTrimEnd()は、それぞれ以下のような役割を持つ文字列操作メソッドです。TrimStart(): 文字列の先頭から、指定した一連の文字の出現箇所をすべて削除するTrimEnd(): 文字列の末尾から、指定した一連の文字の出現箇所をすべて削除するどちらも引数としてChar型の配列を受け取り、その配列に含まれる文字だけを対象に削除処理を行います。それでは、具体的な使用例を見ていきましょう。TrimStart()メソッドとはTrimStart()メソッドは、配列で指定された文字が文字列
-
C#におけるスレッドの中止(Abort)方法をわかりやすく解説
Abort()メソッドは、実行中のスレッドを強制的に終了(破棄)するために使用されるメソッドです。 このメソッドが呼び出されると、ランタイムはThreadAbortExceptionという例外をスローすることで対象のスレッドを中止させます。特徴的なのは、この例外が通常のcatchブロックでは捕捉できない点です。制御は最終的にfinallyブロック(存在する場合)へと移行します。 スレッドを中止する際は、以下のように対象のスレッドに対してAbort()メソッドを呼び出します。 childThread.Abort(); 注意:最新の.NET環境での扱い Thread.Abort()は.NET Fr
-
C#でポインタを使ってデータ値を取得する方法
ポインタとは、別の変数のアドレス(メモリ上の場所)を値として格納する特殊な変数のことです。ポインタ変数が参照しているアドレスに格納されたデータを取得するには、ToString()メソッドを使用します。 コード例 以下に、ポインタからデータ値を取得する具体的なサンプルコードを示します。 ToString()); Console.WriteLine(Address is: {0} , (int)p); } Console.ReadKey(); } } } 出力結果 このコードを実行するには、
-
【C#】String.Join()メソッドで文字列配列を連結する方法
String.Join()メソッドとはC#のString.Join()メソッドは、文字列配列のすべての要素を1つの文字列に連結するためのメソッドです。各要素の間には、引数で指定した区切り文字(セパレーター)が自動的に挿入されます。たとえば、区切り文字として改行コード「\n」を指定すれば、配列の各要素がそれぞれ別の行に配置された、複数行の文字列を簡単に作成できます。基本的な構文String.Join(\n, starray);第1引数: 要素間に挿入する区切り文字第2引数: 連結対象の文字列配列戻り値: 連結された1つの文字列サンプルコード以下は、5つの文字列要素を持つ配列を改行コードで連結し、
-
中軌道衛星(MEO)とは?特徴・軌道の種類・主な用途を解説
中軌道衛星(MEO:Medium Earth Orbit)は、地球を取り巻く2つのヴァン・アレン放射線帯の間に位置する人工衛星です。「中間円軌道(ICO:Intermediate Circular Orbit)」と呼ばれることもあります。中軌道衛星の運用高度はおよそ2,000kmから35,000kmの範囲にあり、低軌道(LEO)よりも高く、静止軌道(GEO)よりも低い領域に属します。公転周期は高度によって異なり、約2時間から23時間超まで幅があります。軌道形状による中軌道衛星の分類円軌道の中軌道衛星 − 一定の高度を一定の速度で周回します。軌道が安定しており、GPSなどの測位衛星に多く採用され
-
C#でキーに基づいてDictionary(HashMap相当)をソートする方法
実は「HashMap」はJavaのクラスであり、C#には存在しません。C#においてHashMapに相当するのは、キーと値のペア(key-value pair)を格納するコレクションであるDictionaryです。本記事では、C#のDictionaryをキー順にソートする方法を、具体的なサンプルコードとともに解説します。1. Dictionaryの準備まずは、ソート対象となるDictionaryを作成します。ここでは、スポーツ名をキー、番号を値として登録します。Dictionary<string, int> d = new Dictionary<string, int>(
-
C#の連鎖例外(Chained Exceptions)とは?基本的な使い方と実装例を解説
連鎖例外とは連鎖例外(Chained Exceptions)とは、複数のtry-catch文が連鎖的に組み合わさり、発生した例外を順番に処理しながら上位の呼び出し元へ伝播させていく仕組みです。C#では、新しい例外をスローするときにコンストラクタの第2引数として元の例外(内部例外:InnerException)を渡すことで、例外同士をチェーンのようにつなぐことができます。これにより、「どこで・どのような原因で」例外が発生したのかという情報を失うことなく、呼び出し階層全体で例外を追跡できるようになります。それでは、実際に連鎖例外を作成してみましょう。まずは、エントリポイントであるMainメソッドに
-
C#でデリゲートを使って数学演算を呼び出す方法を解説
C#では、デリゲート(delegate)を活用することで、メソッドを引数として渡し、柔軟に数学演算を呼び出すことができます。本記事では、数値の除算を例に、デリゲートを使った数学演算の呼び出し方を具体的なコードとともに解説します。 1. 演算用クラスとメソッドの定義 まず、演算処理を行うクラスとその中のメソッドを定義します。ここでは、受け取った値を5で割るDivideFuncメソッドを作成します。 public class Demo { public static double DivideFunc(double value) { return value / 5;
-
C#のマネージコードとは?CLRによる実行の仕組みを解説
マネージコード(Managed Code)とは、その実行が共通言語ランタイム(CLR:Common Language Runtime)によって管理されるコードのことです。CLRはマネージコードを受け取り、それをマシンコードにコンパイルしたうえで実行します。CLRが提供する主な機能このランタイムであるCLRは、以下のような機能を自動的に提供します。ガベージコレクションによる自動メモリ管理型安全性の保証例外処理やセキュリティの管理これにより、開発者はメモリ解放などの低レベルな処理を意識せずに済み、アプリケーションのロジックに集中できます。マネージコードの仕組みマネージコードは、C#やF#といった高
-
C#で同じ底のべき乗の除算を実行する方法
同じ底を持つべき乗同士の除算では、指数同士を引き算することで結果を求められます。これは数学の法則 am ÷ an = am−n に基づいています。この記事では、C#を使ってその計算を実装する方法を解説します。手順1:底を設定するまず、底となる値を設定します。ここでは 10 を使用します。double n = 10;手順2:除算用の2つの指数を設定する次に、除算に使用する2つの指数を設定します。double e1 = 10; double e2 = 8;サンプルコード以下は、同じ底のべき乗の除算結果を求める完全なコード例です。using System; class Demo { stat
-
C#でリストの最初の要素をポップ(削除)する方法
C# のリスト(List<T>)から最初の要素をポップ(先頭から取り除く)したい場合は、RemoveAt() メソッドを使用します。このメソッドは、引数で指定したインデックス位置にある要素をリストから削除します。 先頭の要素を削除するには、インデックス 0 を指定して RemoveAt(0) を呼び出します。 リストを作成する まず、操作対象となるリストを用意します。 List<string> myList = new List<string>() { Operating System, Computer Networks, Comp
-
C#で同じ底の指数の乗算を計算する方法
数学では、同じ底を持つ指数同士を掛け合わせると、指数部分を足し合わせることで計算できます。つまり、ne1 × ne2 = n(e1 + e2) という法則が成り立ちます。この記事では、C#を使って同じ底の指数の乗算を実装する方法を解説します。手順1:底(基数)を設定するまず、底となる数値を設定します。ここでは例として「2」を使用します。double n = 2;手順2:2つの指数を設定する次に、掛け合わせる2つの指数を設定します。double e1 = 5; double e2 = 4;この場合、「25 × 24」を計算することになります。指数法則に従うと、結果は「2(5+4)」=「29」とな
-
C#のchecked/uncheckedコンテキストとは?オーバーフローチェックの違いを解説
C#では、コードをchecked(チェックあり)またはunchecked(チェックなし)のコンテキストで実行できます。 checkedコンテキストでは算術オーバーフローが発生した時点で例外がスローされますが、uncheckedコンテキストでは算術オーバーフローは無視され、処理がそのまま続行されます。 checked:オーバーフローチェックを有効にする checkedキーワードを使用すると、整数型の算術演算や変換に対してオーバーフローのチェックを明示的に有効にできます。使い方はシンプルで、式の前にcheckedキーワードを付けるだけです。 なお、オーバーフローチェックは、コンパイラオプション(/