.NET Framework

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アプリケーシ…

EventLog

EventLogは、イベントログを出力するクラス・・・。EventLog クラス (System.Diagnostics)イベントログを出力してみる・・・。空のプロジェクトで、Systemを参照し、MainClass.csは、これだけ・・・。 "EventLog_"がイベントソースで、ログが"Log Message!"…

NetworkInterface

NetworkInterfaceは、ネットワークインターフェイスに関する情報を持つクラス・・・。NetworkInterface クラス (System.Net.NetworkInformation)ネットワークインターフェイスの名前一覧を出力する・・・。空の場合は、Systemを参照し、usingではSystem.Net.…

WebRequest

Webページを取得する場合など、HTTPリクエストを作成するには、WebRequestを使う・・・。WebRequest クラス (System.Net)"http://bgstation0.com"のトップページのHTMLを取得する・・・。今回は空のプロジェクトで・・・。 (コンソールでもいいんだけど・・…

DateTime

日時を取得したい場合は、DateTime構造体を使う・・・。DateTime 構造体 (System)DateTime.Nowで現在日時情報が取得できるので、それをTimerで1秒ごとに行い、その都度Labelを更新していくような、簡単な時計を作る・・・。まず、Labelを選択・・・。真ん中…

Timer

Timer(System.Windows.Forms)は、これまでのようなFormウィンドウを持つWinFormsアプリのタイマークラス・・・。Timer クラス (System.Windows.Forms)今回は、5秒ごとにメッセージボックスを出す・・・。メニューをこのように配置して、"開始"クリックと"終…

OpenFileDialog

OpenFileDialogは、"開く"ファイルダイアログのクラス・・・。OpenFileDialog クラス (System.Windows.Forms)前回のメニューで"開く"を設置した・・・。 今回は"開く"を押したら、"開く"ファイルダイアログが表示され、ファイルを選択すると、ファイル名(正…