.NET Framework

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)前回のメニューで"開く"を設置した・・・。 今回は"開く"を押したら、"開く"ファイルダイアログが表示され、ファイルを選択すると、ファイル名(正…

MainMenu

MainMenuは、ウィンドウ上部のメインメニューのクラス・・・。MainMenu クラス (System.Windows.Forms)ただし、これは.NET Framework 1.1までの古いクラス・・・。 2.0以降はMenuStripを使うのが推奨・・・。[ツール]-[ツールボックスアイテムの選択]から、…

EventHandler

EventHandlerは、ボタンなどのコントロールで発生したイベントに対する処理を書くイベントハンドラメソッド用のデリゲート・・・。EventHandler デリゲート (System)これまで、自動で生成されていたイベントハンドラとその登録処理を自前で手書きで書いてみ…

IDisposable

IDisposableは、割り当てられたアンマネージドリソースを解放する機構を実装するためのインターフェイス・・・。IDisposable インターフェイス (System)リソースを明示的に解放しないといけないクラスにDisposeメソッドを実装し、この中で解放処理を実行する…

ListView

ListViewは、リストビューを扱うクラス・・・。ListView クラス (System.Windows.Forms)MFCのCListCtrlの時と同様に、リストビューへのアイテム追加や、選択されているアイテムの取得などを行う・・・。を選択・・・。このように配置・・・。ちょっとForm1を…

ProgressBar

ProgressBarは、プログレスバーを扱うクラス・・・。ProgressBar クラス (System.Windows.Forms)今回は、ボタンを押すたびにプログレスバーの進捗を進める・・・。を選択・・・。と配置・・・。button1も下に配置・・・。Form1のLoad時に、プログレスバーの…

VScrollBar

VScrollBarは、垂直方向のスクロールバーを扱うクラス・・・。VScrollBar クラス (System.Windows.Forms)垂直方向のスクロールバーを設置し、つまみの値をラベルコントロールで表示・・・。を選択し、真ん中に配置・・・。右にラベルを貼る・・・。スクロー…

ComboBox

ComboBoxは、コンボボックスコントロールを扱うクラス・・・。ComboBox クラス (System.Windows.Forms)テキストボックス部分のテキストはcomboBox1.Text、リストボックス部分の選択されたアイテムはcomboBox1.SelectedItemに格納される・・・。button1を押し…