.NET Framework

Form.InitializeComponent

InitializeComponentは、.NET Frameworkのクラスでもメソッドでもないプロジェクト作成時に自動追加されるメソッドであるが、ここで基本的にコントロールの初期化をする模様。第3回 Visual Studio .NETのひな形コードを理解する (6/6):連載簡単!Visual Stu…

Form.Activated

フォームがユーザの操作によってアクティブになった時に、Form.Activatedイベントが発生する。Form.Activated Event (System.Windows.Forms) | Microsoft Docs Windowsフォームの表示直後に初期化処理を行うには?[2.0のみ、C#、VB]:.NET TIPS - @IT 全…

Type.GetType

Type.GetTypeにはいくつかあるが、静的でない引数無しのType.GetTypeは、Typeオブジェクトの現在のTypeを返す。Type.GetType Method (System) | Microsoft DocsMainClass.csで、と書く。tintはint型変数iのType。 t1はtintのType。 tint = System.Int32 t1 =…

Type

Typeは、型宣言を表すクラス。Type Class (System) | Microsoft DocsObject.GetTypeで取得出来るので色々な形で出力して型情報がどうなってるか確認する。BaseClass.csは、名前空間BGSTを付けている。 名前空間を含めたクラス名を返したいので。DerivedClass…

Object.GetType

Object.GetTypeで、そのオブジェクトの型情報Typeを取得できる。Object.GetType Method (System) | Microsoft DocsBaseClass.cs, DerivedClass1, DerivedClass2は前回と同じで、MainClass.csで、BaseClassのオブジェクトにそれぞれのクラスのインスタンスを…

Object.ToString

すべてのクラスはObjectを継承しており、ToStringも持っている。Object.ToString Method (System) | Microsoft Docs"現在のオブジェクトを表す文字列"というのが難しいけれども、BaseClass.csに、これを定義し、MainClass.csは、このように、int型変数、int…

Predicate<T>

引数があって、戻り値がboolの場合、Predicate<T>を使うといい。https://docs.microsoft.com/ja-jp/dotnet/api/system.predicate-1?view=netframework-2.0ラムダ式のトピックで作ったファイルチェックデリゲートをPredicate<T>に置き換える。 まず、ファイルチェッ</t></t>…

Func<T, TResult>

戻り値がある関数の場合は、定義済みデリゲートFunc<T, TResult>を使う。https://docs.microsoft.com/ja-jp/dotnet/api/system.func-2?view=netframework-3.5delegateのトピックで作った、文字列を括弧で囲んだ文字列を返すデリゲートを今度はそのままで、Func<T, TResult>を使う。ソ</t,></t,>…

Action<T>

定義済みデリゲートを使うことで、デリゲート型の定義が不要になる。 戻り値のない関数を扱う場合は、Action&ltT>を使う。https://docs.microsoft.com/ja-jp/dotnet/api/system.action-1?view=netframework-2.0delegateのトピックで作った、文字列を括弧で囲…

Delegate

Delegateクラスは、delegate型の基底クラス。Delegate Class (System) | Microsoft Docs基本的にシステムやコンパイラしか継承できない特殊なクラス。 ただ、delegate型のオブジェクトから、Delegateクラスのメンバは、使うことができる。 Delegate.Combine…

ArrayList

ArrayListは、必要に応じてサイズが拡大する動的配列クラス。ArrayList Class (System.Collections) | Microsoft Docsまあ、ジェネリクスが導入された2.0からは、List<T>が一般的であり、ArrayListは非推奨。Objectにいったんキャストしてから、目的の形にする</t>…

Form.Load

アプリケーションが起動し、フォームが初めて表示される直前にForm.Loadイベントが発生する。 (このフォームがロードされた時のイベント。)Form.Load Event (System.Windows.Forms) | Microsoft Docsここでコントロールの初期化処理などを行う。プロジェクト…

Application.Exit

Application.Exitは、アプリケーション(メッセージループ)を終了させる。Application.Exit Method (System.Windows.Forms) | Microsoft DocsApplication_[Windows アプリケーション]でApplicationだとnamespaceが被るので、Application_にして、プロジェクト…

IEnumerator

前回は、配列が持っているGetEnumeratorメソッドでIEnumeratorを返すことができた・・・。IEnumerator インターフェイス (System.Collections)IEnumeratorは、C++でいうイテレータで、コレクションの次の要素の取出しをするためのインターフェイス・・・。今…

IEnumerable

配列やリストなどのコレクションクラスは、foreachを使って、各要素を取り出すことができた・・・。 では、foreachで各要素を取り出せるようなコレクションクラスを作るにはどうしたらいいか・・・。 そのクラスにIEnumerableインターフェイスを実装すればい…

Array

配列も1つのオブジェクトであり、すべての配列はArrayクラスを継承している・・・。Array クラス (System)配列がArrayクラスの派生であることの確認と、Arrayが持つプロパティLengthで配列のサイズを取得する・・・。intArray.GetType().ToString()で型名を…

String

Stringクラスは、エイリアスであるstring型の実体・・・。String クラス (System)Stringとstringが同じかどうかの確認・・・。 また、IndexOfメソッドで指定の文字が何番目にあるかをチェック・・・。strTypeに"ABC"、strClassに"XYZ"をセット・・・。 (クラ…

Int32

Int32構造体は、エイリアスであるint型の実体・・・。Int32 構造体 (System)Int32とintが同じかどうかの確認・・・。 また、Parseメソッドで文字列を数値にパース・・・。intTypeに10、intStructに100を代入・・・。 ここで値を設定したインスタンスが出来て…

Object

これまでも出てきたobject型は、その正体はObjectクラスのエイリアスであり、すべての.NET Frameworkクラスの基底となるクラスである・・・。Object クラス (System)C#に出てくる型は、実体はCTSで定義されたクラスや構造体のエイリアス・・・。CTS 型Object…

Control.BeginInvoke

ButtonやTextBoxなどの基底クラスとなるControlクラスにも、BeginInvokeはある・・・。Control.BeginInvoke メソッド (Delegate) (System.Windows.Forms)これも非同期処理に関するものだが、C#コンパイラの用意するBeginInvokeとはちょっと違い、非同期処理…

AsyncResult

これまでは、BeginInvokeで非同期処理を実行してから、EndInvokeで非同期処理が終わるのを待っていた・・・。 しかし、これだと同期的に処理している事と変わらない・・・。 BeginInvokeで非同期処理を実行した後も、Mainは先の処理を進めつつ、一方で非同期…

AsyncCallback

AsyncCallbackデリゲートに、非同期処理完了後に呼び出すメソッドを指定できる・・・。AsyncCallback デリゲート (System)まず、デリゲートの生成から・・・。非同期処理で実行するasyncronousFunc、非同期処理完了後に呼び出すcallbackを生成・・・。Asyncr…

IAsyncResult

IAsyncResultを使って、実行している非同期処理の状態を取得できる・・・。IAsyncResult インターフェイス (System)今回は、IAsyncResult.IsCompletedで非同期処理が完了しているかを1秒毎に確認する・・・。今回は、引数も戻り値もないAsyncronousFuncDeleg…

ThreadPool.QueueUserWorkItem

ThreadPool.QueueUserWorkItemの2番目の引数には、実行するThreadFuncに渡すためのパラメータを指定できる・・・。ThreadPool.QueueUserWorkItem メソッド (WaitCallback, Object) (System.Threading)ワークアイテムに番号を振る・・・。こんな感じで、1~3…

ThreadPool

一定量のスレッドを準備しておき、キューに登録したワークアイテム(実行したい処理(タスク))にそれぞれ割り当てて、終わった後も再び使いまわせるような仕組みをスレッドプールという・・・。ThreadPoolは、そのスレッドプールを扱うクラス・・・。ThreadPoo…

Thread.Sleep

スレッドを一時的に止めるには、Thread.Sleepに休止する時間をミリ秒で指定する・・・。Thread.Sleep メソッド (Int32) (System.Threading)前回の"Main~"や"Thread~"を1つ出力するたびに1秒停止というのを繰り返す・・・。こんな感じで、MainもThreadFunc…

Thread

Threadはスレッドを扱うクラス・・・。Thread クラス (System.Threading)別スレッドを生成して、重たい処理などを任せるときに使う・・・。 といっても、現在は非同期処理が充実してるのでこれを使うことはほとんど無いだろう・・・。空で、Systemを追加・・…

Process

Processは、プロセスを扱うクラス・・・。Process クラス (System.Diagnostics)Process.Startで指定のアプリケーションを実行する・・・。空で、MainClass.csを追加したら、Systemを追加・・・。Systemに加えて、System.Diagnosticsのusingを追加・・・。 Pr…

ServiceBase

ServiceBaseは、サービスプログラムの基底となるクラス・・・。ServiceBase クラス (System.ServiceProcess)簡単なサービスを作成する・・・。空のプロジェクトで、MainClass.csを追加・・・。参照でSystem.ServiceProcessを追加・・・。イベントログを出力…

IpcServerChannel

IpcServerChannelは、IPCというプロセス間通信のサーバチャンネルを開くためのクラス・・・。IpcServerChannel クラス (System.Runtime.Remoting.Channels.Ipc)IPCサーバとIPCクライアント間でIPCプロセス間通信をしてみる・・・。今回はWindowsアプリケーシ…