C#

 Computer >> コンピューター >  >> プログラミング >> C#
  1. C#のis演算子とas演算子の違いと使い方を徹底解説

    C#には、オブジェクトの型を安全に扱うための便利な演算子として「is」と「as」が用意されています。この2つの演算子は似たような場面で使われますが、役割と動作は大きく異なります。本記事では、それぞれの演算子の特徴、構文、そして具体的なコード例を通じて、その違いをわかりやすく解説します。 is演算子とは 「is」演算子は、オブジェクトの実行時の型(ランタイム型)が指定した型と互換性があるかどうかを判定するために使用します。判定結果はブール値(true / false)として返されるため、if文などの条件分岐と組み合わせて使うのが一般的です。 構文 expr is type expr:判定対象とな

  2. C#プログラミング言語の主な機能・特徴を徹底解説

    C#とはどのようなプログラミング言語かC#(シーシャープ)は、Microsoftが開発したモダンで汎用性の高いオブジェクト指向プログラミング言語です。C#は共通言語基盤(CLI:Common Language Infrastructure)向けに設計されており、CLIは実行可能コードとランタイム環境から構成され、異なるコンピューターのプラットフォームやアーキテクチャ上で、さまざまな高水準言語を利用できるようにする仕組みを提供しています。この記事では、C#が備えている主な機能について、ひとつずつわかりやすく解説していきます。C#の主な機能一覧C#には、開発者の生産性とコードの品質を高めるための多

  3. C#の静的クラス(static class)とは?特徴と使い方を実例で解説

    C#における静的クラス(static class)は、インスタンス化できない特殊なクラスです。静的クラスには静的メンバーのみを持たせることができ、インスタンスメンバーを定義することはできません。また、静的クラスは自動的にシールクラス(sealed)として扱われるため、継承することもできません。さらに、インスタンスコンストラクターを含めることはできませんが、静的コンストラクターを定義することは可能です。静的クラスの主な特徴newキーワードによるインスタンス化ができない静的メンバー(staticメンバー)のみを持つことができる暗黙的にsealedとして扱われ、継承できないインスタンスコンストラクタ

  4. C#の静的バインディングと動的バインディングの違いを徹底解説

    C#におけるポリモーフィズム(多態性)は、大きく分けて「静的」と「動的」の2種類があります。静的ポリモーフィズムでは、関数への応答がコンパイル時に決定されるのに対し、動的ポリモーフィズムでは、実行時(ランタイム)に決定されます。この記事では、それぞれの仕組みと特徴について詳しく解説します。 コンパイル時ポリモーフィズム(静的バインディング) コンパイル時にオブジェクトと関数を結び付ける仕組みを「早期バインディング(アーリーバインディング)」と呼びます。これは「静的バインディング(スタティックバインディング)」とも呼ばれ、メソッドのオーバーロードなどが代表例です。どのメソッドが呼び出されるかがコ

  5. C#のパラメーター配列(params)とは?基本構文と使い方を実例で解説

    C#のパラメーター配列(params)は、メソッドを宣言する際に、引数として渡される値の個数が事前にわからない場合に非常に便利な機能です。paramsキーワードを使うことで、呼び出し側は任意の数の引数を渡すことができ、メソッド側ではそれらを1つの配列として受け取ります。paramsキーワードの基本構文paramsキーワードは、以下の構文で使用します。public int function_name(params int[] variable_name) {}このように、パラメーターの型の前にparamsを付けるだけで、可変長の引数リストを受け取れるようになります。なお、paramsパラメーター

  6. C#のポインターデータ型とは?宣言方法とunsafeコードの使い方を解説

    C#のポインターデータ型とはポインター(pointer)とは、別の変数のメモリアドレスを値として保持する特殊な変数です。つまり、ポインターはメモリ上の特定の場所を直接指し示すことができます。通常の変数や定数と同様に、ポインターも使用する前に必ず宣言する必要があります。ポインターの宣言構文C#でポインターを宣言する基本的な構文は以下の通りです。type *var-name;具体的な宣言例を見てみましょう。int *ip; /* 整数型(int)へのポインター */ double *dp; /* 倍精度浮動小数点型(double)へのポインター */このように、*(アスタリスク)を使って

  7. C#のスレッド入門:基本概念とライフサイクルをわかりやすく解説

    スレッドとは スレッド(Thread)とは、プログラム内の実行パスのことです。各スレッドはそれぞれ固有の制御フローを持ちます。アプリケーションが複雑で時間のかかる処理を含む場合は、複数の実行パス(スレッド)を用意し、各スレッドに特定のタスクを担当させることで、処理を効率的に進められます。 スレッドのライフサイクルは、System.Threading.Threadクラスのオブジェクトが生成された時点で始まり、スレッドが中止されるか、実行を完了した時点で終わります。 スレッドのライフサイクルにおける4つの状態 スレッドのライフサイクルには、主に以下の状態が存在します。 未開始状態(Unstar

  8. C#のstaticキーワードとは?静的メンバーの基本と使い方を実例で解説

    C#では、staticキーワードを使用することで、クラスのメンバーを静的(スタティック)として定義できます。クラスのメンバーをstaticとして宣言すると、そのクラスのオブジェクトをいくつ生成しても、静的メンバーのコピーはメモリ上に1つだけしか存在しないことになります。つまり、staticキーワードは「そのメンバーがクラスに対して1つのインスタンスのみを持つ」ことを意味します。すべてのオブジェクトがこの唯一のコピーを共有するため、静的変数は値が共通して扱われる定数の定義などに適しています。また、静的メンバーにはクラス名を介して直接アクセスできるため、インスタンスを生成する必要がありません。静的

  9. C#の三項演算子(条件演算子)の使い方を解説

    C#における三項演算子は、条件演算子とも呼ばれる演算子です。3つのオペランドを受け取り、ブール式(真偽値)を評価した結果に応じて、いずれか一方の値を返します。if-else文を1行で簡潔に記述できるため、条件分岐のコードを読みやすくしたい場面でよく使われます。三項演算子の基本構文b = (a == 1) ? 20 : 30;この式の動作は以下のとおりです。最初のオペランド (a == 1) の評価結果がtrue(真)の場合 → 2番目のオペランド 20 が返される最初のオペランドの評価結果がfalse(偽)の場合 → 3番目のオペランド 30 が返されるサンプルプログラム実際に三項演算子を使っ

  10. C#のStackとQueueクラス徹底解説!基本操作からサンプルコードまで

    C#には、データを効率的に管理するためのコレクションクラスが多数用意されています。その中でも特に重要なのがStack(スタック)とQueue(キュー)です。この記事では、それぞれの特徴、主要なメソッド、そして実際に動作するサンプルコードを交えて詳しく解説します。 Stack(スタック)とは Stackクラスは、LIFO(Last-In, First-Out:後入れ先出し)方式でオブジェクトを管理するコレクションです。最後に追加した要素が最初に取り出される仕組みで、直前の状態に戻る処理(Undo機能)や、深さ優先探索など、後入れ先出しのアクセスが必要な場面で活用されます。 Stackクラスの主

  11. C#で1行コメントを書く方法をわかりやすく解説

    C#でプログラムの可読性を高めるために欠かせないのが「コメント」です。特に、1行だけで完結する短い説明を書きたい場合には、単一行コメント(//)を使用します。単一行コメントの基本スラッシュ2つ(//)を行頭またはコードの後に記述すると、その行の//以降がコメントとして扱われ、プログラムの実行には一切影響しません。// 変数の宣言 int i = 20;このように、変数や処理の目的を簡潔にメモしておくことで、後からコードを見返したときや、他の開発者が読むときに内容を素早く理解できるようになります。サンプルプログラム以下は、C#で単一行コメントを記述する実際のサンプルプログラムです。using S

  12. C#のStackクラスを徹底解説!PushとPopの使い方とサンプルコード

    C#のStackクラスは、LIFO(Last-In, First-Out:後入れ先出し)方式でオブジェクトを管理するコレクションです。最後に追加した要素から順に取り出したい場合に活用されます。 Stackクラスには、以下のような便利なプロパティが用意されています。 Count … スタック内に格納されている要素数を取得します。 Push操作:スタックへの要素追加 Pushメソッドを使うと、スタックの先頭(一番上)に新しい要素を追加できます。 Stack st = new Stack(); st.Push(A); st.Push(B); st.Push(C); st.Push(D); この

  13. C#のイテレータ関数とは?yield returnの使い方をサンプルコードで解説

    イテレータメソッドとは、コレクションに対して独自の反復処理(カスタムイテレーション)を行うためのメソッドです。C#では yield return ステートメントを使用することで、各要素を一度に1つずつ順番に返すことができます。イテレータは現在の処理位置を記憶しており、次に反復処理が呼び出された際には、その続きの要素が自動的に返されます。 以下に、C#におけるイテレータメソッドの基本的な使用例を示します。 サンプルコード using System; using System.Collections.Generic; using System.Linq; namespace Demo {

  14. C#の正規表現における数量詞(Quantifier)の使い方を徹底解説

    数量詞とは数量詞(Quantifier)とは、正規表現において、直前の要素(1文字、グループ、または文字クラス)が入力文字列の中に何回出現すれば一致とみなされるかを指定するための記号です。繰り返しを扱うパターンを作成する際に欠かせない存在です。たとえば、パターン \d*\.\d に含まれる * は「直前の要素が0回以上繰り返される」ことを意味します。このパターンは「.0」「19.9」「219.9」のような文字列に一致します。C#で使える主な数量詞の一覧以下の表に、C#の正規表現で利用できる主な数量詞とその動作、パターン例、一致例をまとめました。数量詞説明パターン一致例*直前の要素と0回以上一致

  15. C#でデリゲートを宣言する方法をわかりやすく解説

    C#におけるデリゲート(delegate)とは、メソッドへの参照を保持するための仕組みです。デリゲートは参照型の変数であり、特定のメソッドへの参照を格納します。この参照は実行時に自由に入れ替えることができるのが大きな特徴です。デリゲートは、イベントの実装やコールバックメソッドの処理において特に活躍します。また、すべてのデリゲートは、暗黙的に System.Delegate クラスから派生している点も押さえておきましょう。デリゲートの宣言構文C#でデリゲートを宣言する際の基本的な構文は以下のとおりです。delegate <戻り値の型> <デリゲート名> <パラメータ

  16. C#でタプルを宣言する方法を徹底解説!基本構文とサンプルコード

    C#でタプルを宣言する基本構文 C#でタプルを宣言するには、Tuple<T1, T2> クラスを使用します。以下は、int型とstring型の2つの要素を持つタプルを宣言する基本的な形式です。 Tuple<int, string> tuple = new Tuple<int, string>(20, Tom); このように、Tuple の後ろの山括弧内に各要素の型を指定し、コンストラクタの引数として実際の値を渡すことでタプルを作成できます。 タプルの各要素へのアクセス方法 タプルの要素には、Item1、Item2 といったプロパティを使ってアクセスします。

  17. C#のジャグ配列とは?宣言・初期化・要素アクセスの方法をサンプルコード付きで解説

    ジャグ配列(Jagged Array)とはC#におけるジャグ配列とは、「配列の配列」のことです。通常の二次元配列と異なり、内側の配列(行)ごとに異なる長さを持つことができるため、「ギザギザの配列」とも呼ばれます。ジャグ配列の宣言int型のジャグ配列 points を宣言するには、次のように角括弧を2つ重ねて記述します。int[][] points;ジャグ配列の初期化宣言したジャグ配列は、次のように初期化できます。int[][] points = new int[][]{new int[]{10,5},new int[]{30,40}, new int[]{70,80},new int[]{60

  18. C#で配列の次元数(ランク)を定義・取得する方法

    C#において、配列の次元数(ランク)を調べたい場合は、Arrayクラスが提供する Rank プロパティを使用します。このプロパティは、配列が持つ次元の数を整数値として返します。Rankプロパティの使い方次元数を取得するには、以下のように記述します。arr.Rankここで、arrは対象となる配列です。例えば、次のような2次元配列を考えてみましょう。int[] arr = new int[3,4];行数・列数を取得するにはGetLengthメソッドを使う配列の次元数だけでなく、各次元の要素数(行数や列数など)を取得したい場合は、GetLength メソッドを使用します。引数には対象の次元のインデッ

  19. C#の#undefディレクティブとは?使い方とサンプルコードをわかりやすく解説

    #undefディレクティブとは C#における#undefディレクティブは、#defineディレクティブによって定義されたシンボルの定義を解除するために使用します。基本構文は次のとおりです。 #undef シンボル名 例えば、シンボル「One」の定義を解除したい場合は、以下のように記述します。 #undef One 定義が解除されたシンボルは、#ifディレクティブによる条件分岐においてfalseとして評価されます。 サンプルコード 以下は、#defineと#undefを組み合わせた具体的な使用例です。 #define One #undef Two using System; namespa

  20. C#でNullReferenceException(null参照例外)を防ぐ・適切に処理する方法

    C#の開発において、NullReferenceException(null参照例外)は最も頻繁に発生するランタイムエラーの一つです。この記事では、null参照例外が発生する仕組みと、それを未然に防ぐための実践的な方法を解説します。 NullReferenceExceptionとは? NullReferenceExceptionは、nullを参照しているオブジェクトのメンバー(フィールドやメソッド)にアクセスしようとしたときにスローされる例外です。つまり、実体が存在しないオブジェクトに対して操作を行おうとすると、プログラムがクラッシュしてしまいます。 null参照例外が発生する例 まず、以下

Total 2668 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:15/134  20-コンピューター/Page Goto:1 9 10 11 12 13 14 15 16 17 18 19 20 21