-
C#のプリプロセッサディレクティブとは?種類と使い方をわかりやすく解説
C#には独立したプリプロセッサは存在しませんが、ディレクティブはあたかもプリプロセッサが存在するかのように処理されます。C#におけるプリプロセッサディレクティブは、主に条件付きコンパイルを行うために使用されます。プリプロセッサディレクティブは、実際のコンパイルが開始される前に、情報を前処理するようコンパイラへ指示を出す役割を担います。C#で使える主なプリプロセッサディレクティブ一覧番号ディレクティブと説明1#defineシンボル(文字列の並び)を定義します。2#undef定義済みのシンボルを未定義状態に戻します。3#ifシンボルがtrueと評価されるかどうかをテストできます。4#else#if
-
C#でユーザー定義例外を作成する方法|サンプルコード付きで解説
例外(エクセプション)とは、プログラムの実行中に発生する問題のことです。C#における例外は、ゼロ除算を試みた場合など、プログラムの実行中に生じる例外的な状況に対する応答として扱われます。C#では、標準ライブラリが提供する例外だけでなく、開発者自身が独自の例外クラスを定義することもできます。これを「ユーザー定義例外」と呼びます。ユーザー定義の例外クラスは、Exceptionクラスから派生させて作成するのが基本です。以下に、具体的な実装例を示します。サンプルコードusing System; namespace UserDefinedException { class TestFitnes
-
C#の配列型におけるrefパラメータ(参照渡し)の使い方を解説
C#のrefパラメータ(参照渡し)とは?C#では、refキーワードを使うことで、引数を「参照渡し」でメソッドに渡すことができます。参照パラメータとは、変数が格納されているメモリ上の場所への参照のことです。値渡しの場合とは異なり、refを使って引数を渡すと、新しいストレージ領域は作成されません。そのため、メソッド内での変更が呼び出し元の変数に直接反映されます。refパラメータの宣言方法通常の変数をrefパラメータとして宣言する例は以下の通りです。public void swap(ref int x, ref int y) {}配列型の変数をrefパラメータとして宣言する場合は、次のように記述しま
-
C#における再帰的なメソッド呼び出し(再帰処理)とは?基本と実装例を解説
C#の再帰的なメソッド呼び出しとはC#において、メソッドが自分自身を呼び出す仕組みのことを「再帰(Recursion)」と呼びます。再帰を活用すると、繰り返しの処理を簡潔で読みやすいコードとして表現できる場合があります。ここでは、再帰を利用して数値のべき乗を計算する例を見ていきましょう。再帰の基本的な考え方べき乗の計算では、指数(p)が0でない限り、関数が自分自身を呼び出し続けます。これが再帰処理です。if (p != 0) { return (n * power(n, p - 1)); }上記のコードでは、nは基数そのものです。メソッドが呼び出されるたびに指数pが1ずつ減っていくため
-
C#のシールドクラス(sealedクラス)とは?基本と使い方を解説
C#のシールドクラスとはC#では、sealedキーワードを付けたクラス(シールドクラス)は、他のクラスから継承することができません。これにより、クラスの設計意図を守り、意図しない継承による改変や拡張を防ぐことができます。また、sealedキーワードはメソッドに対しても使用できます。メソッドにsealed修飾子を付けると、そのメソッドはそれ以上オーバーライドできなくなります。なお、sealedメソッドは必ず派生クラスの一部である必要があり、かつオーバーライドされたメソッドでなければならない点に注意してください。シールドクラスのコード例以下は、C#におけるシールドクラスの具体的な使用例です。usi
-
C#の静的クラス(static class)とは?特徴と基本的な使い方を解説
C#の静的クラスとはC#における静的クラス(static class)とは、インスタンス化できないクラスのことです。静的クラスには静的メンバー(staticメンバー)のみを含めることができ、オブジェクトを生成せずに直接利用します。また、静的クラスは自動的にsealed(シールド)として扱われるため、継承することもできません。さらに、インスタンスコンストラクターを定義することもできないという特徴があります。静的クラスの主な特徴newキーワードによるインスタンス化ができない静的メンバー(staticフィールド、staticメソッドなど)のみを持つことができるsealedとして暗黙的に宣言され、継承
-
C#の静的コンストラクターとは?特徴と使い方を実例付きで解説
静的コンストラクター(static constructor)とは、static 修飾子を付けて宣言される特別なコンストラクターのことです。クラスの中で最初に実行されるコードブロックであり、クラスのライフサイクル全体を通じて必ず一度だけ実行されるという大きな特徴を持っています。 静的コンストラクターの主な特徴 アクセス修飾子(public や private など)を指定することはできません。 引数(パラメーター)を受け取ることができません。 コードから明示的に呼び出すことはできず、最初のインスタンスが生成される前、または静的メンバーが初めて参照される前に、CLR(共通言語ランタイム)によって
-
C#の静的ポリモーフィズムとは?静的バインディングの仕組みと実装例をわかりやすく解説
静的ポリモーフィズム(Static Polymorphism)とは静的ポリモーフィズムとは、関数とオブジェクトの結び付け(バインディング)がコンパイル時に行われる仕組みのことです。このため「静的バインディング(Static Binding)」とも呼ばれます。コンパイルの時点でどのメソッドが呼び出されるかが確定するため、実行時のオーバーヘッドが少なく、高いパフォーマンスを発揮できるのが特徴です。C#では、静的ポリモーフィズムを実現する手法として、主に次の2つが用意されています。関数(メソッド)のオーバーロード演算子のオーバーロード関数のオーバーロード(Function Overloading)関
-
C#の構造体(struct)とは?特徴と定義方法をわかりやすく解説
C#における構造体(struct)は、値型に分類されるデータ型です。1つの変数の中に、文字列や数値など異なるデータ型の関連データをまとめて格納できるのが大きな特徴です。構造体を作成する際には、structキーワードを使用します。C#の構造体の主な特徴メソッド、フィールド、インデクサー、プロパティ、演算子メソッド、イベントを持つことができます。コンストラクターを定義できますが、デストラクターは定義できません。また、引数なしの既定のコンストラクターは自動的に定義されるため、開発者が独自に定義することはできません。クラスと異なり、他の構造体やクラスを継承することはできません。他の構造体やクラスの基底
-
C#のインターフェイスとは?基本概念と実装例をわかりやすく解説
インターフェイスとは インターフェイス(Interface)とは、プロパティ、メソッド、イベントといったメンバーを定義するための仕組みです。大きな特徴は、インターフェイス自体にはメンバーの宣言のみが含まれ、実際の処理内容(実装)は、そのインターフェイスを実装するクラス側で定義しなければならないという点です。 この仕組みにより、派生クラスが共通して従うべき標準的な構造を提供できます。結果として、コードの一貫性が保たれ、保守性や拡張性の向上にもつながります。 インターフェイスの宣言方法 C#では、interfaceキーワードを使って次のようにインターフェイスを宣言します。 public inte
-
C#でのオブジェクトのシリアル化方法をわかりやすく解説
C#では、オブジェクトをファイルに保存したり、ネットワーク経由で送信したりする際に「シリアル化(シリアライズ)」を行います。シリアル化とは、オブジェクトの状態をバイトストリームに変換する処理のことです。BinaryFormatterを使ったシリアル化の手順以下のコードでは、BinaryFormatter.Serialize(stream, reference) メソッドを使用して、サンプルオブジェクトをシリアル化しています。1. コンストラクタの定義まず、Employeeクラスに値を受け取るコンストラクタを定義します。public Employee(int id, string name, i
-
C#でのユーザー定義のカスタム例外クラスの作成方法
例外とクラスの関係C#における例外は、すべてクラスとして表現されます。標準ライブラリで提供されている例外クラスの多くは、System.Exceptionクラスを直接または間接的に継承して構成されています。アプリケーション固有のエラー状態を表現したい場合には、独自の例外クラス(カスタム例外)を定義するのが有効です。ユーザー定義の例外クラスは、Exceptionクラスを継承することで作成できます。カスタム例外クラスの定義手順独自の例外クラスを作成する際の基本的な流れは以下の通りです。Exceptionクラス(またはその派生クラス)を継承した新しいクラスを定義するコンストラクタでbaseキーワードを
-
C#でジャグ配列の要素にアクセスする方法を解説
ジャグ配列とはジャグ配列(Jagged Array)とは、配列の中に配列を格納する構造を持つ「配列の配列」です。各要素となる配列はそれぞれ異なる長さを持つことができるため、柔軟なデータ構造として活用できます。ジャグ配列から特定の要素にアクセスするには、対象となる配列のインデックスと、その中の要素のインデックスを続けて指定します。ジャグ配列の宣言例ここでは、整数型の配列を5つ持つジャグ配列を宣言しています。int[][] a = new int[][]{new int[]{0,0}, new int[]{1,2}, new int[]{2,4}, new int[]{3,6}, new int[
-
C#で多次元配列の要素にアクセスする方法を解説
C#の多次元配列から特定の要素にアクセスするのは非常に簡単です。取得したい要素のインデックスを角括弧内にカンマ区切りで指定するだけでOKです。例えば、次のように記述します。a[2,1]上記の記述は、行インデックス2(3行目)・列インデックス1(2列目)にある要素にアクセスすることを意味します。今回使用する[4, 2]サイズの配列は以下の通りです。0 0 1 2 2 4 3 6この配列の場合、a[2,1] にアクセスすると「4」という値が取得できます。サンプルプログラムここまでの内容を踏まえて、2次元配列を宣言し、forループですべての要素を出力した後、特定の要素に直接アクセスする完全なコードを
-
C#で小文字を大文字に変換する方法
C#で文字列内の小文字を大文字に変換するには、ToUpper()メソッドを使用します。このメソッドは、文字列内のすべての英字を対応する大文字に変換した新しい文字列を返します。基本的な使い方たとえば、次のような小文字の文字列があるとします。str = david;この文字列を大文字に変換するには、ToUpper()メソッドを以下のように呼び出します。Console.WriteLine(Converted to UpperCase : {0}, str.ToUpper());実行結果は「DAVID」となり、元の文字列「david」がすべて大文字に変換されて表示されます。サンプルコード以下は、C#で
-
C#の値パラメーター・参照パラメーター・出力パラメーターの違いを徹底解説
C#では、メソッドに引数を渡す方法として「値パラメーター」「参照パラメーター」「出力パラメーター」の3種類があります。それぞれの仕組みと挙動の違いを理解することは、バグの少ない効率的なコードを書くうえで非常に重要です。本記事では、それぞれの特徴をコード例とともにわかりやすく解説します。 値パラメーター(値渡し) 値パラメーターは、引数の実際の値をコピーしてメソッドの仮引数に渡す方式です。このため、メソッド内でパラメーターに行った変更は、呼び出し元の引数には一切影響しません。 C#において、これはパラメーターを渡す際のデフォルトの仕組みです。メソッドが呼び出されると、各値パラメーターに対して新
-
C#で三角関数の角度を度からラジアンに変換する方法
C#のMathクラスが提供する三角関数(Math.Cos、Math.Sin、Math.Tanなど)は、引数としてラジアンを受け取ります。そのため、日常的によく使う「度(°)」単位の角度をそのまま渡すと、意図しない結果になってしまいます。度をラジアンに変換するには、角度に Math.PI / 180 を掛けます。これにより、度単位の値がラジアン単位へ正しく変換されます。変換の基本式Math.PI * 角度 / 180.0サンプルコード以下は、45度のコサインを求める例です。変換なしの場合と変換ありの場合を比較できます。using System; class Program { stati
-
C#で大文字を小文字に変換する方法【ToLower()メソッドの使い方】
C#で大文字を小文字に変換するには、ToLower()メソッドを使用します。このメソッドは、文字列内のすべての英字を小文字に変換した新しい文字列を返します。 変換元の文字列を用意する まず、例として次のような大文字の文字列が格納された変数があるとします。 str = TIM; このように大文字で構成された文字列を、後ほど小文字へ変換していきます。 ToLower()メソッドで小文字に変換する 上記の大文字の文字列を小文字に変換するには、ToLower()メソッドを呼び出すだけです。 Console.WriteLine(Converted to LowerCase : {0}, str
-
【初心者向け】C#の長方形配列(多次元配列)から要素へアクセスする方法
C#における長方形配列(rectangular array)は、行と列で構成される表形式の多次元配列のことです。すべての行が同じ長さを持つことから「長方形」と呼ばれています。本記事では、長方形配列の基本と、特定の要素へアクセスする方法をサンプルコード付きで解説します。長方形配列の要素にアクセスする基本長方形配列の要素にアクセスするには、行と列のインデックスをカンマで区切って指定します。インデックスは0から始まるため、注意が必要です。a[0,1]; // 1行目・2列目の要素を取得サンプルプログラム以下は、3×3の2次元配列(長方形配列)を宣言し、値を代入したうえで各要素にアクセスするC#のコー
-
C#のArrayクラスとは?主要なメソッドとプロパティを実例付きで解説
C#におけるArrayクラスは、すべての配列の基底クラスとなる重要なクラスです。System名前空間で定義されており、配列の操作や情報取得に役立つ多彩なメソッドとプロパティが用意されています。この記事では、Arrayクラスの代表的なメソッドとプロパティを一覧形式で整理し、最後にReverseメソッドを使った回文判定のサンプルコードを紹介します。Arrayクラスの主なメソッド以下は、C#のArrayクラスでよく使われるメソッドの一覧です。No.メソッドと説明1Clear配列内の指定範囲の要素を、要素の型に応じてゼロ・false・nullに設定します。2Copy(Array, Array, Int