C#

 Computer >> コンピューター >  >> プログラミング >> C#
  1. C#のクラスとオブジェクトの違いとは?基本概念とサンプルコードでわかりやすく解説

    クラスとオブジェクトの基本的な違いC#におけるクラスとは、あるデータ型の設計図(ブループリント)を定義するものです。クラス自体はあくまで「型」の定義であり、それ単体ではメモリ上に実体を持ちません。一方、オブジェクトは、そのクラスをもとに生成された実体(インスタンス)を指します。クラスを構成するメソッドや変数は、まとめて「クラスのメンバー」と呼ばれます。ドット演算子でメンバーにアクセスするクラスのメンバーにアクセスするには、オブジェクト名の後にドット(.)演算子を付けます。ドット演算子は、オブジェクト名とメンバー名をつなぐ役割を果たします。まず、newキーワードを使ってクラスからオブジェクトを生

  2. C#のクラスと構造体(struct)の違いを徹底解説

    構造体(Struct)とは C#において、構造体(structure)は「値型」に分類されるデータ型です。関連性のあるさまざまな型のデータを、ひとつの変数でまとめて扱えるようにするための仕組みです。構造体を作成するには、structキーワードを使用します。 構造体を定義する際には、structステートメントを使います。このステートメントによって、プログラム内で複数のメンバーを持つ新しいデータ型が定義されます。 クラス(Class)とは クラスを定義するということは、あるデータ型の「設計図」を定義することを意味します。クラス定義はclassキーワードで始まり、その後にクラス名が続き、波括弧({

  3. C#におけるコンポジションとアグリゲーションの違いを徹底解説

    コンポジション(Composition)とはコンポジションは、オブジェクト間の強い「全体-部分」の関係を表す概念です。最大の特徴は、親オブジェクトが削除されると、その子オブジェクトも同時に破棄されるという点にあります。つまり、子オブジェクトは親オブジェクトなしには独立して存在できません。コンポジションはアグリゲーションの特殊な形であり、「part-of(部分である)」という関係を表現します。分かりやすい例として、「車(Car)はエンジン(Engine)を持っている」という関係が挙げられます。車が廃車になって破棄されれば、そのエンジンも一緒に破棄されるのが自然です。public class En

  4. C#の動的バインディング(dynamic)とは?仕組みと匿名型の活用例を解説

    動的バインディングとはC#における動的バインディング(Dynamic Binding)とは、dynamicキーワードを使用した際の型解決の仕組みです。通常の静的型付けでは、コンパイラがコンパイル時にすべての型チェックを行いますが、動的バインディングの場合、型チェックは実行時(ランタイム)まで延期されます。これにより、コンパイル時には型が確定していないオブジェクトに対しても柔軟に操作を行えるようになり、COMインターフェースやIronPythonなどの動的言語との連携、リフレクション処理の簡素化などに役立ちます。匿名型の制限を回避するために使う動的バインディングの実用的な活用例の一つが、匿名型(

  5. C#のアーリーバインディング(早期バインディング)とは?仕組みとオーバーロードの実装例を解説

    アーリーバインディングとはコンパイル時に関数とオブジェクトを結び付ける仕組みをアーリーバインディング(Early Binding/早期バインディング)と呼びます。スタティックバインディング(Static Binding/静的バインディング)という名称でも知られています。C#では、この静的バインディングによって静的ポリモーフィズム(静的多態性)を実現するための手法として、次の2つが用意されています。関数のオーバーロード(Function Overloading)演算子のオーバーロード(Operator Overloading)関数のオーバーロードとは関数のオーバーロードとは、同じスコープ内であれ

  6. C#の単項演算子とは?一覧とsizeof演算子の使い方を解説

    C#の単項演算子とは単項演算子(unary operator)とは、1つのオペランドだけを受け取って処理を行う演算子のことです。C#で利用できる主な単項演算子は以下のとおりです。+ - ! ~ ++ -- (type) * & sizeofそれぞれの演算子が持つ役割は次のようになっています。+ … 単項プラス(値をそのまま返す)- … 単項マイナス(符号を反転する)! … 論理否定(true と false を入れ替える)~ … ビットごとの補数(各ビットを反転する)++ … インクリメント(値を1増やす)-- … デクリメント(値を1減らす)(type) … 明示的な型変換(キャスト

  7. C#のユーザー定義データ型とは?構造体と列挙型の基本を解説

    C#におけるユーザー定義データ型には、「構造体(struct)」と「列挙型(enum)」の2種類があります。それぞれの特徴と使い方を詳しく見ていきましょう。 構造体(Structure)とは C#において、構造体は値型のデータ型です。1つの変数の中に、異なるデータ型の関連するデータをまとめて保持できるのが大きな特徴です。構造体を定義する際には、structキーワードを使用します。 構造体の主な特徴 メソッド、フィールド、インデクサー、プロパティ、演算子メソッド、イベントを持たせることができます。 コンストラクターを定義できますが、デストラクターは定義できません。また、既定のコンストラクターを

  8. C#のユーザー定義例外とは?カスタム例外の作成方法を実例で解説

    ユーザー定義例外(カスタム例外)とは他のプログラミング言語と同様に、C#でも開発者が独自の例外を簡単に作成できます。このように自分で定義した例外をユーザー定義例外(カスタム例外)と呼びます。ユーザー定義の例外クラスは、標準ライブラリが提供するSystem.Exceptionクラスを継承して作成するのが基本です。組み込みの例外だけでは表現しきれない、アプリケーション固有のエラー状態を明確に扱いたい場合に、ユーザー定義例外は非常に有効です。サンプルコード:TempIsZeroExceptionの作成以下の例では、組み込みの例外ではなく、温度がゼロの場合にスローされるカスタム例外「TempIsZer

  9. C#の代入演算子とは?種類と使い方をサンプルコード付きで解説

    C#の代入演算子とは C#の代入演算子は、変数に値を格納するために使用される演算子です。基本となる「=」のほかに、算術演算やビット演算と代入を1つの式でまとめて行える複合代入演算子が多数用意されています。複合代入演算子を活用すると、コードが簡潔になり、可読性の向上にもつながります。 以下の表は、C#で利用できる主な代入演算子の一覧です。 演算子説明使用例 =単純代入演算子。右側のオペランドの値を左側のオペランドに代入します。C = A + B は、A + B の計算結果を C に代入します +=加算代入演算子。左オペランドに右オペランドを加算し、結果を左オペランドに代入します。C +=

  10. C#における集約(Aggregation)とは?基本概念とコード例を解説

    C#における集約(Aggregation)とは集約(Aggregation)とは、C#においてオブジェクト同士が持つ方向性のある関係を指す概念です。あるクラス(全体)が別のクラス(部分)を保持するという、「has-a」の関係として表現されます。例えば、従業員(Employee)と住所(Address)の関係が代表的な例です。従業員は1つの住所情報を持ちますが、住所そのものは従業員に依存せず独立して存在できる点が特徴です。集約の具体例:従業員と部署の関係もう一つわかりやすい例として、従業員と部署の関係を挙げられます。1人の従業員は1つの部署に所属しますが、1つの部署には複数の従業員が在籍できます

  11. C#におけるカプセル化とは?アクセス修飾子を使った実装方法を解説

    カプセル化(Encapsulation)は、オブジェクト指向プログラミングにおける重要な概念の一つです。C#では、クラスの内部実装の詳細を外部から隠し、不正なアクセスや意図しない変更を防ぐためにカプセル化を利用します。具体的には、アクセス修飾子を使用することで実現できます。C#で利用できるアクセス修飾子C#でサポートされている主なアクセス修飾子は以下の5種類です。public:すべてのコードからアクセス可能private:同じクラス内からのみアクセス可能protected:同じクラスおよび派生クラスからアクセス可能internal:同じアセンブリ(プロジェクト)内からアクセス可能protect

  12. C#の列挙型(Enum)とは?基本的な使い方をサンプルコード付きで解説

    C#における列挙型(Enum:Enumeration)は、曜日、月、季節、製品カテゴリなど、関連する一連の名前付き定数をひとつのグループとして格納するためのデータ型です。Enumの定数にはデフォルトで0から始まる整数値が自動的に割り当てられ、宣言された順番に1ずつ増加していきます。定数のセットは固定されており、ループ処理などで簡単に走査(トラバース)できるのも大きな特徴です。Enumの基本的な特徴関連する名前付き定数をひとまとめに管理できる最初の定数にはデフォルトで「0」が割り当てられ、以降は1ずつ増加する値は明示的に変更することも可能型安全性が高く、無効な値の代入をコンパイル時に防げるEnu

  13. C#の例外処理とは?try・catch・finally・throwの基本をサンプルコードで解説

    例外(Exception)とは、プログラムの実行中に発生する問題やエラーのことを指します。C#では、try、catch、finally、throwという4つのキーワードを使って、こうした例外を適切に処理することができます。 例外処理で使う4つのキーワード try tryブロックは、例外が発生する可能性のあるコードを囲み、その範囲に対して例外処理を有効にします。監視対象となる処理は、このブロック内に記述します。 catch catchキーワードは、実際に発生した例外を捕捉(キャッチ)する役割を担います。tryブロック内で例外がスローされると、対応するcatchブロックが実行されます。 f

  14. C#のfinallyステートメントとは?例外処理における役割と使い方を解説

    C#におけるfinallyブロックは、例外がスローされたかどうかにかかわらず、指定した一連のステートメントを必ず実行するために使用します。たとえば、ファイルを開いた場合、処理中に例外が発生してもしなくても、最終的にはファイルを閉じる必要があります。このようなリソースの解放や後始末(クリーンアップ処理)に、finallyブロックが活用されます。エラー処理は、try・catch・finallyという3つのキーワードを組み合わせて実装します。tryブロックには例外が発生する可能性のあるコードを記述し、catchブロックで例外を捕捉して適切に処理し、finallyブロックには例外の有無に関係なく確実に

  15. C#のArrayListクラスにおけるIsFixedSizeプロパティの使い方を解説

    C#のArrayListクラスに用意されているIsFixedSizeプロパティは、そのArrayListが固定サイズかどうかを示す値(bool型)を取得するために使用されます。固定サイズの場合は「True」、要素の追加や削除が可能な可変サイズの場合は「False」が返されます。IsFixedSizeプロパティの基本的な使い方以下は、IsFixedSizeプロパティを使用したサンプルコードです。サンプルコードusing System; using System.Collections; class Demo { public static void Main() { A

  16. C#のArrayクラスにおけるIsReadOnlyプロパティの役割とは?

    C#のArray.IsReadOnlyプロパティは、配列が読み取り専用かどうかを示す値を取得するために使用されます。このプロパティがtrueを返す場合、その配列に対して要素の追加・変更・削除などの更新操作を行うことはできません。配列の作成と値の設定まず、Array.CreateInstanceメソッドを使って配列を作成し、値を設定してみましょう。Array arr = Array.CreateInstance(typeof(String), 3); arr.SetValue(Electronics, 0); arr.SetValue(Clothing, 1);IsReadOnlyプロパティの使

  17. C#のポリモーフィズム(多態性)とは?静的と動的な違いをわかりやすく解説

    C#におけるポリモーフィズム(多態性)は、同じインターフェースでありながら異なる振る舞いを実現できるオブジェクト指向プログラミングの重要な概念です。ポリモーフィズムには大きく分けて「静的(スタティック)」と「動的(ダイナミック)」の2種類があります。静的ポリモーフィズムでは、関数への応答がコンパイル時に決定されます。一方、動的ポリモーフィズムでは、応答が実行時(ランタイム)に決定され、これは「遅延バインディング(レイトバインディング)」とも呼ばれます。コンパイル時ポリモーフィズム(静的バインディング)コンパイル時にオブジェクトと関数を結び付ける仕組みを「早期バインディング(アーリーバインディン

  18. C#のオーバーロードとは?関数と演算子のオーバーロードを徹底解説

    C#におけるオーバーロードの概要C#では、静的ポリモーフィズム(コンパイル時ポリモーフィズム)を実現するために、次の2つの手法が用意されています。関数のオーバーロード(メソッドのオーバーロード)演算子のオーバーロード関数のオーバーロードとは同じ名前でありながら、パラメータが異なる2つ以上のメソッドを定義することを、C#では「関数のオーバーロード」と呼びます。関数のオーバーロードは、引数の個数を変更する方法と、引数のデータ型を変更する方法の2通りで実現できます。例えば、数値の掛け算の結果を出力する関数がある場合、オーバーロードされた各メソッドは同じ名前を持ちながら、引数の数が異なります。publ

  19. C#の配列クラスにおけるArray.Lengthプロパティの役割と使い方

    Array.LengthプロパティとはC#のArray.Lengthプロパティは、配列に含まれる要素の総数(配列の長さ)を取得するために使用されます。多次元配列の場合は、すべての次元の要素数の合計が返されるため、配列全体の規模を簡単に把握できます。配列の作成まず、Arrayクラスのインスタンスを作成し、値を設定してみましょう。Array arr = Array.CreateInstance(typeof(String), 3); arr.SetValue(Electronics, 0); arr.SetValue(Clothing, 1); arr.SetValue(Appliances, 2

  20. C#のArray.LongLengthプロパティとは?配列の全要素数を取得する方法を解説

    C#のArray.LongLengthプロパティは、配列のすべての次元に含まれる要素の総数を表す64ビット整数(long)を取得するためのプロパティです。通常のLengthプロパティは32ビット整数(int)を返しますが、LongLengthは非常に大きな配列でも正確な要素数を扱える点が特徴です。基本的な使い方たとえば、long型の2次元配列を次のように定義したとします。long[] arr1 = new long[15, 35];この配列に対してLongLengthプロパティを使うと、すべての次元を合計した要素の総数を取得できます。arr1.LongLengthサンプルコード配列クラスのAr

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