C# 非同期Begin/End(APM)

対応している型

System.IO.Stream
System.IO.Ports.SerialPort
System.Net.Dns
System.Net.Sockets.Socket
System.Net.WebRequest
System.Data.SqlClient.SqlCommand

C# デリゲート(匿名メソッド・ラムダ式)

 

C# lockメモ

 

C# async/awaitメモ

 

C# ショートコードプログラミング・Effective C#

C# ショートコードプログラミングをサラっと読んでみて気になった部分のみメモしておく。

・使っていない引数を削除する。

・少ない利用ならusing宣言を削除する。

・不要な改行を削除し1行にまとめる。

・メソッドを式化する。

・オーバーロードを引数のデフォルト値で置き換える。

・TryParseと三項演算子
int.TryParse(“a”, out int result) ? result : 99)

・null合体演算子を複数使う。
a ?? b ?? c ?? d

・null合体演算子
左辺がnullでない場合は左辺を返す。
左辺がnullである場合は右辺を返す。
??

・null条件演算子
左辺がnullである場合はnullを返す。
左辺がnullでない場合は右辺を評価する。
?.
?[]

・null合体演算子と条件演算子
string n = user?.Name ?? “名無し”

・型判定と型変換を同時に行う。パターンマッチング。
キャストが可能か判断し可能なら右辺の変数に代入される。
if(x is int y){}
switch(x) {case int i}

・配列の縮小・拡大
Where().ToArray()
Concat().ToArray()
Append().ToArray()
Prepend().ToArray()

・コレクションの間に挿入
x.Take().Append().Concat(x.Skip())

・例外フィルタ
try{} catch() when(){}

・名前が必要ない型はタプル

・string.Formatから文字列補完式
$”{}”

Effective C#の第一章(C#言語イディオム)を読んで一言。

・ローカル変数でvarを利用

・constよりreadonlyを利用

・キャストは()よりisかasを利用

・string.Format()より補完文字列を利用

・シンボルの文字列リテラルはnameofで取得

・クラス間のやりとりにデリゲートを利用

・null条件演算子を利用

・ボックス化、ボックス化解除を避ける。値型>参照型(ボックス化)

・継承したメソッドを再定義しない

C# Linqメモ

定番なものだけ

 

VBA 表から行

 

PHP+JavaScript(Vue.js) メモプログラム

メモを普段テキストファイルにパッと書くことが多いので、ブラウザに書けたらどうだろうと思い作成。使えそうなら認証付ける予定。

 

C#+JavaScript(Vue.js) 工数管理プログラム

タブレット等を使って入力してもらうことを想定しWebインターフェース。専用サーバーやソフトを利用したくないので、リクエストを自前で処理。

C#のサーバーVer2

最初はTask.Runで非同期にしてWhileで待受していた。BeginGetContext/EndGetContextを利用する場合。

 

C# サーバー

最低限の動作。

あるいはこんな書き方

フォームを使う場合