-
C#樹林
【C#】クラスの継承(Inheritance):基本クラスのメンバーを派生クラスで再利用する方法
継承とは:コードの再利用と拡張 オブジェクト指向プログラミングにおいて「継承(Inheritance)」は、既存のクラス(親クラス)の機能やデータ構造を受け継ぎながら、新しいクラス(子クラス)を定義する仕組みです。 継承を利用することで、共通のフィー... -
C#樹林
【C#】コンストラクタのオーバーロードと「this」による呼び出し:初期化ロジックの共通化
オブジェクト初期化の多様性 クラスや構造体を設計する際、インスタンスの生成方法(初期化のパターン)を複数提供したい場合があります。例えば、すべての値を個別に指定して生成する場合もあれば、一つの値を基準に残りを自動設定して生成する場合もあり... -
C#樹林
【C#】コンストラクタの定義と活用:クラスの初期化を正しく行う方法
クラスとコンストラクタ C#のクラス(class)は、オブジェクト指向プログラミングにおける「設計図」です。この設計図から実際の「モノ(インスタンス)」を生成する際、そのオブジェクトが最初から正しいデータ(名前やIDなど)を持っている状態にするた... -
Python樹林
Pythonのbytes型(バイト列)入門:バイナリデータの作成と扱い方
Pythonで文字列(str型)はUnicode文字を扱いますが、画像ファイル、音声データ、ネットワーク通信のパケットなどを扱う際には、生のバイナリデータが必要になります。 このバイナリデータを表現するために使用されるのが bytes型(バイト列) です。bytes... -
Python樹林
Python辞書の要素を削除する方法:del文、pop()、clear()の使い分け
Pythonの辞書(dict)は、不要になったデータを削除するための方法をいくつか提供しています。特定のキーを指定して削除する場合や、削除した値を再利用したい場合、あるいは辞書全体をリセットしたい場合など、目的に応じて適切な方法を選択する必要があ... -
Python樹林
Python辞書の検索:キー・値・ペアの存在をin演算子で確認する方法
Pythonの辞書(dict)を使用する際、特定のキーが登録されているか、あるいは特定の値が含まれているかを判定したい場面は頻繁に訪れます。例えば、設定ファイルに特定の項目が存在するかを確認したり、特定のエラーコードが発生しているかを調べたりする... -
Python樹林
Python辞書の全要素を取得:keys(), values(), items() の使い方とリスト変換
Pythonの辞書(dict)に格納されたデータ全体にアクセスしたい場合、キーだけの一覧が欲しい、値だけを集計したい、あるいはキーと値をセットで処理したいといった場面があります。 Pythonには、これらの目的に応じた3つの標準メソッド keys(), values(), ... -
Python樹林
Python辞書の要素を追加・更新する方法:キー指定による代入操作
Pythonの辞書(dict)は「ミュータブル(変更可能)」なオブジェクトです。そのため、作成した後でも新しいキーと値のペアを追加したり、既存のキーに対応する値を変更したりすることができます。 興味深い点として、Pythonでは「新しい要素の追加」と「既... -
Python樹林
Python辞書の値を取得する方法:キー指定([])とget()メソッドの使い分け
Pythonの辞書(dict)に格納されたデータを利用するには、対応する「キー」を指定して「値」を取り出す必要があります。 この操作には主に2つの方法があります。一つは角括弧 [] を使う基本的な方法、もう一つは .get() メソッドを使う安全な方法です。 こ... -
Python樹林
Pythonの辞書(dict)を作成する3つの方法:{} と dict()
Pythonにおける**辞書(dict)**は、キー(Key)と値(Value)をペアにしてデータを格納する、非常に重要なデータ型です。「"name"」というキーに「"Tanaka"」という値を、「"id"」というキーに「101」という値を関連付ける、といった使い方をします。 リ... -
Python樹林
Pythonのset(集合)演算:union, intersection, difference の使い方
Pythonのset(集合型)は、単に重複しない要素を格納するだけでなく、数学の「集合」と同じように、**論理演算(集合演算)**を行うための強力なメソッドを備えています。 和集合: 2つのsetのすべての要素(重複なし) 積集合: 2つのsetに共通する要素 差... -
C#樹林
【C#】コンストラクタの基本:newキーワードとクラスの初期化メソッド
クラスの「コンストラクタ」とは C#の「クラス(class)」は、オブジェクト(モノ)を作るための「設計図」です。この設計図からnewキーワードを使って実際の「オブジェクト(インスタンス)」を生成する際、そのオブジェクトが使用可能な状態になるように... -
C#樹林
【C#】式形式のメンバー(Expression-Bodied Members):=>でメソッドやプロパティを簡潔に書く方法
{ return ...; } の冗長性 C#のクラスでメソッドやプロパティを定義する際、その処理内容が非常に単純な場合があります。 例えば、privateなフィールドの値を返すだけのgetアクセサーや、2つのプロパティを足した結果を返すだけのメソッドなどです。 // 従... -
Python樹林
Pythonのset(集合)で要素の存在を確認する方法(in 演算子)
Pythonのset(集合型)は、重複する要素を持たないという特徴の他に、もう一つ非常に重要な利点があります。それは、特定の要素がその set の中に**「含まれているかどうか(存在するかどうか)」を非常に高速に判定できる**ことです。 リスト(list)でも... -
Python樹林
Pythonのset(集合)から要素を削除する:remove, discard, clear の違いと使い方
Pythonのset(集合型)は、要素の追加だけでなく、不要になった要素の削除も自由に(ミュータブルに)行えます。 要素を削除する方法はいくつかありますが、特に .remove() と .discard() の動作の違いを理解しておくことが重要です。また、すべての要素を... -
Python樹林
Pythonのset(集合)に要素を追加する:.add()メソッドの使い方
Pythonのset(集合型)は、作成した後でも要素を追加したり削除したりできる「ミュータブル(変更可能)」なデータ型です。リストの .append() とは異なり、set への要素の追加には .add() メソッドを使用します。 この記事では、.add() メソッドの基本的... -
C#樹林
【C#】paramsキーワード:可変長引数のメソッドを定義する方法
メソッドの引数と「可変長」 C#でメソッドを定義する際、通常は引数の数と型を固定します(例: int Calulate(int a, int b))。 しかし、時には「引数が2個の場合も、5個の場合も、10個の場合も、すべて同じメソッドで処理したい」という要求があります。... -
C#樹林
【C#】メソッドのオーバーロード(Overloading):同名で引数が異なるメソッドを定義する方法
メソッドのオーバーロードとは C#のクラス設計において、同じ名前を持ちながら、引数(パラメータ)の構成が異なるメソッドを複数定義する技術を「メソッドのオーバーロード(Overloading)」と呼びます。 例えば、Console.WriteLine()メソッドは、WriteLi... -
C#樹林
【C#】クラスの「メソッド」を定義する方法:振る舞いを実装する基本
クラスとメソッド(振る舞い) C#の「クラス(class)」は、データ(状態)と振る舞い(アクション)を一つにまとめた設計図です。 データ(状態): privateな「フィールド」やpublicな「プロパティ」で表されます。(例: string Name, int Health) 振る... -
C#樹林
【C#】プロパティとバッキングフィールド:setアクセサーで検証ロジックを実装する方法
自動実装プロパティの利便性と限界 C#のクラス設計において、データを外部に公開する最も簡単な方法は「自動実装プロパティ」を使用することです。 // 自動実装プロパティ public int Quantity { get; set; } この { get; set; } 構文は非常に簡潔ですが、... -
C#樹林
【C#】プロパティの初期化:コンストラクタを省略し宣言時にデフォルト値を設定する方法
プロパティの初期値設定 C#のクラス設計において、プロパティ({ get; set; })がnewでインスタンス化された時点で、nullや0といった型のデフォルト値ではなく、特定の「初期値」を持っていてほしい場合があります。 従来、この初期値の設定は、主にコンス... -
C#樹林
【C#】読み取り専用プロパティを定義する3つの方法 (get;, private set, =>)
読み取り専用プロパティの重要性 C#のクラス設計において「カプセル化」は非常に重要な原則です。これは、クラスの内部データをprivateフィールドで保護し、外部からの不正なアクセスや意図しない変更を防ぐことを意味します。 特に、オブジェクトが一度作... -
C#樹林
【C#】プロパティ(Property)の基本:{ get; set; }によるカプセル化
クラスのデータと「カプセル化」 C#のクラスは、データ(状態)と振る舞い(メソッド)を一つにまとめた設計図です。クラスが持つデータを「フィールド(メンバー変数)」として定義できますが、これをpublic(公開)にしてしまうと、クラスの外部から誰で... -
C#樹林
【C#】クラス(class)の定義と基本:フィールド、プロパティ、コンストラクタ、メソッド
クラスとは:オブジェクト指向の設計図 C#はオブジェクト指向プログラミング(OOP)言語であり、その中心的な概念が「クラス(class)」です。 クラスとは、特定のデータ(状態)と振る舞い(機能)を一つにまとめた「設計図」のようなものです。 クラス (... -
C#樹林
【C#】Queue
の基本:FIFO(先入れ先出し)コレクションの使い方 Queue<T>とは何か? FIFO(先入れ先出し) C#のSystem.Collections.Generic名前空間には、List<T>(動的配列)やStack<T>(スタック)と並び、Queue<T>(キュー)という特定の操作に特化したコレクションが用意されています。 Que... -
C#樹林
【C#】Stack
の基本:LIFO(後入れ先出し)コレクションの使い方 Stack<T>とは何か? LIFO(後入れ先出し) C#のSystem.Collections.Generic名前空間には、List<T>やDictionary<TKey, TValue>の他に、Stack<T>という特定の操作に特化したコレクションがあります。 Stack<T>(スタック)は... -
C#樹林
【C#】HashSet
の集合演算:UnionWith, IntersectWith, ExceptWith の使い方 HashSet<T>と集合演算 HashSet<T>は、重複しない要素を高速に管理(追加、削除、検索)できるC#のコレクションです。 HashSet<T>の真の強力さは、AddやContainsといった基本的な操作だけでなく、数学的な「集合演算」を非常に効率的に実... -
C#樹林
【C#】HashSet
の基本:重複しない要素を高速に管理するコレクション HashSet<T>とは何か? C#のSystem.Collections.Generic名前空間には、List<T>やDictionary<TKey, TValue>といった便利なコレクションが用意されています。その中でもHashSet<T>は、ユニークな(重複しない)要素を管理することに... -
C#樹林
【C#】DictionaryのKeysプロパティですべてのキーを順に処理する方法
Dictionaryとキー(Key) Dictionary<TKey, TValue>は、C#においてキー(Key)と値(Value)をペアで管理するコレクションです。foreachループでDictionary自体を処理すると、KeyValuePair<TKey, TValue>(キーと値の両方を含むオブジェクト)... -
C#樹林
【C#】Dictionary<TKey, TValue>の基本:キーと値のペアを扱うコレクション
Dictionary<TKey, TValue> とは C#においてDictionary<TKey, TValue>は、**キー(Key)と値(Value)**のペアをセットで格納するコレクションです。 List<T>がインデックス(0, 1, 2...)で要素を管理するのに対し、Dictionaryは"Produc...