C# / 応用
■ 例1 Program.cs using System; namespace GenericDemo1 { class uArrayList<DATA> { DATA[] value; int dataNum = 0; public uArrayList(int max) { value = new DATA[max]; } public void add(DATA val) { try { if (dataNum < value.Length) { value[dataNum] </data>…
■ 注意事項 * 参照の追加で「System.Windows.Forms」を追加する必要がある 手順 * [参照]-[参照の追加]-[アセンブリ]で、「System.Windows.Forms」をチェックし、 「OK」ボタン押下 ■ サンプル 例1:Hello World namespace SampleDemo { class Program { st…
WMI * Windows 上でいろんな情報を取得することが出来る機能 注意点 環境設定 * 参照の追加で、「System.Management」 を追加 WMI Library Win32_Process * プロセスを表す Win32_ComputerSystem * Windows環境のシステムオペレーションを表す 参考文献 http…
SNMP・サンプルプログラム [1] Trap受信 ⇒WMI SNMP Providerを入れれば、WMIからSNMPの値を取れるようになる。 http://challengeandresponse.blogspot.jp/2012/07/csnmp-trap.html http://msdn.microsoft.com/en-us/library/windows/desktop/aa393020.aspx […
レジストリへの読み込み 手順 [1] Registry.LocalMachine.OpenSubKey()で、レジストリキーのインスタンスを取得 [2] GetValue()で値を取得 サンプル // 操作するレジストリ・キーの名前 String registryKeyName = @"SOFTWARE\Microsoft\.NETFramework"; // …
共有キー暗号方式による暗号化 特徴 * 単一の共有キーを使用してデータの暗号化と複合化を行う * 公開キー暗号方式と比較して高速 ⇒ 大量のデータストリームに対して暗号変換を実行する場合に適している 暗号化アルゴリズム * 以下の関連記事を参照のこと。 …
.NET アプリケーションのメモリ種類 [1] スタック(ローカル変数を保持するための空間。容量が比較的小さい。) [2] ヒープ(参照型のデータのインスタンスを保持するための空間。容量が非常に大きい。) [2-1] アンマネージ ヒープ [2-2] マネージ ヒープ C…
■ IPアドレスを取得する サンプル sing System; using System.Net; using System.Windows.Forms; using System.Linq; using System.Net.Sockets; namespace SampleForm { public partial class Form1 : Form { public Form1() { InitializeComponent(); } pr…
概要 http://mzs184.blogspot.jp/2008/01/gc.html より抜粋 * ガベージコレクションは、あくまでも new したオブジェクトを解放してくれるもの => ファイルリソースやネットワーク接続リソースについては、Disposeなどで、 明示的に解放する処理を記述する必…
■ IntPtr構造体 * ポインタを利用することなどに利用 ■ IntPtr のあれこれ IntPtr型に変換 構文 long 元データ; IntPtr 新データ = new IntPtr(元データ); ポインタを取得する 構文 var pointer = 【クラス】.ToPointer(); サンプル Bitmap bitmap = new Bit…
■ サンプル public bool IsImage(string imagePath) { ImageCodecInfo[] decoders = ImageCodecInfo.GetImageDecoders(); Bitmap bitmap; try { bitmap = new Bitmap(imagePath); } catch (Exception) { return false; } bool isImage = false; foreach (Ima…
Assembly ( アセンブリ )について * [Propeties]-[AssemblyInfo.cs]に、バージョン名などのシステム情報が格納されている Assembly情報の編集 * [Propeties]をクリックし、[アプリケーション]-[アセンブリ情報]ボタンをクリックし、編集できる Assembly情報…
■ コンピュータ名 / マシン名 構文 Environment.MachineName ■ ユーザ名 構文 Environment.UserName; サンプル http://www.atmarkit.co.jp/fdotnet/dotnettips/642displayname/displayname.html を参照のこと private string GetFullName() { // ドメイン名 …
方法 2つの方法がある [1] Process.GetProcessesByName()を使用する [2] Mutexを使用する サンプル [1] Process.GetProcessesByName() [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(…
■ 拡張メソッドの作成方法 * 静的クラスの 第一引数に、 this キーワードを修飾子として付けた static メソッドを書く 抜粋 public static string ToStringInJapanese(this Sex sex) ■ サンプル 拡張メソッド(本体) public enum Sex { Male, Female, } pub…
英語・日本語用のシステムを作成する 前準備 * デフォルト(フォームのプロパティ「Language : (既定)」)で英語用にシステムを作成する。 手順 [1] フォームのプロパティ「AutoScaleMode : None」に変更する (英語フォントと日本語フォントの差によって、コ…
■ WebClient * Webページにアクセスする ■ サンプル * 下記の例の場合、もっと綺麗に書けるが、とりあえずサンプルとして。。。 private void button1_Click(object sender, EventArgs e) { WebClient wc = new WebClient(); using (Stream st = wc.OpenRead…
■ ジェネリック * 型だけ違って、処理の内容が同じものを作る時に使う。 http://ufcpp.net/study/csharp/sp2_generics.html 利点 クラスやメソッドを汎用的に使えるようにする 構文 クラス定義 【アクセスレベル】class 【クラス名】<型引数> { // クラス定…
■ オペレータ(Operator) * 演算子のオーバーロード * 独自作成したクラスなどに使えそう 構文 public static 戻り値の型 operator演算子 (引数) 例 public static bool operator ==(DataList source1, DataList source2) { return ... // boolの戻り値 } p…
■ 処理時間計測 * Stopwatchクラスを使用する ■ サンプル Stopwatch sw = new Stopwatch(); // 測定開始 sw.Start(); // 何らかの処理 // 測定終了 sw.Stop(); // TimeSpan構造体で書式付き表示(出力例:00:00:00.9984668) TimeSpan ts = sw.Elapsed; // 測…
■ プリンタ * PrintDocument を利用する 【1】 印刷に関するサンプル デザイン部 * printDocument1 x 1 * printDialog1 x 1 + Document : printDocument1 + UseEXDialog : True * printPreviewDialog1 x 1 + Document : printPreviewDialog1 * pageSetup…