C#
class A { public class B { public void method(A a) { a.field = 10; // OK field = 10; // error } } private int field; }BはAのprivate, protectedなフィールドにアクセスできるけど、Aのインスタンスが必要。 class A { public static class B { ... }…
頭悪すぎるんじゃないかと…
お
俺のマルチスレッド経験がなさ過ぎるせいでデバッグがおわんね。うー。
コントロール内部の情報をいじるたびに再描画が発生する可能性がある場合は、再描画を一時的に禁止してその間に大量に処理をするのがWindowsだと一般的……だと思ったので調べてみたらちゃんと用意してくれてあった。大量に処理を始める前にBeginUpdate、処理…
新しい機能を色々覚えてきて最初の頃のコードを直したくなってきたけど我慢我慢…。
メソッドHogeがあったとする。Hogeの中ではコントロールhogeを操作する。そこでHogeの先頭、もしくは前提条件チェック終了後に if (hoge.InvokeRequired) { hoge.Invoke(new HogeCallback(Hoge), 引数); return; }こうしてやれば一々呼び分けも発生せずに意…
C#で別スレッドからコントロールを操作したい場合はInvokeを用いると良い事がわかった。基本的に以下のように用いる。 if (control.InvokeRequired) { control.Invoke(new delegateの名前(呼びたいメソッド), 引数); } else { 呼びたいメソッド(引数); }とす…
作成されたスレッド以外から操作されると例外が発生するらしい。確かに安全と言えば安全だけど…。CheckForIllegalCrossThreadCallsをfalseにすると例外が発生しなくなる……はずなんだけどまだ発生する。なんだ…。とりあえず別スレッドから発生した奴を元のス…
このクラスからしか呼ばれて欲しくない!っていう状況がある。このクラスからだけは追加したり消したりできるが、他のクラスではreadonlyみたいな。設計である程度どうにかできるんだけど、やっぱり色々冗長な部分が出てくるし、リファクタリングもしにくく…
経験則に基づくソース無し&環境に依存しまくりのメモなので絶対に参考にしないように。勝手に参考にして死なれても責任取れない。プリミティブ型だけで構成された構造体でちょこっと調査してみたところ 構造体の先頭アドレス → 不明 フィールドのオフセット…
構造体を書き込むのでアラインメント関連の調査 エンディアン調整は必要か? CreateFileとか使った方がよさげ? メモ: FileStream → 微妙 BinaryReader → ウンコ 構造体の中身をbyte[]に変換→それを書き込み?(一応固定長だが4nとかでアラインメントした方が…
最近気付いた。MSDNでTreeViewとかそう言うコントロール名で検索するとSystem.Web.UIの方のコントロールが出てきてしまい、それを見ると色々と勘違いする。System.Windows.Formsの方に入ってるコントロールは大体想像通りのことができる。もっと早く気付きた…
TreeView.CheckBoxes を true にするだけでおk。でもCheckBoxの下の枠が欠けててださいwwwww ON/OFFはTreeNode.Checkedで操作。
でおk。1/31追記: Process.GetCurrentProcess().MainModule.FileName
Javaのアレね。え?delegateで済ませって?済ませられねーから困ってんだよちくしょう。本当に一つのメソッドの中身をちょこっと書き換えるだけなのに新しいクラスなんて定義したくねーよ。
今回は本格的C#初体験という事もあってイベントを使わずに念のためObserverパターン通りにclassやinterfaceを作ってみた。どちらが良いのかは断言しかねるけど、C#だとイベントを使うと楽だし、色々と継承する必要もなく良いかもしれないと思った。でもinter…
goto?この時代にgoto?いや、俺別にgoto拒絶症じゃないから良いけどね。しかしgotoですか。
何とかしたい…
orz
効率よく動的に操作するための手段が色々と用意されているようなので頑張ればなんとでもなるんじゃないかと思ってきた。見た目は派手にできないけど。
をしたかったんだけど、どうもWndProcを書き換えたりする環境依存な方法しかない模様。このくらい用意してくれても良いのにって思うけど、環境によってはそもそもそんなことができないのかもな。切ない。まぁそれは良いとして、そうなるとTreeNodeのTextをも…
参照を比較したい場合は書くのがめんどくさいけどこれを利用した方が良さそう。やっぱり演算子のオーバーロードができると便利だけど怖いね。
Type obj = nullなもの as Type;これは合法なのかどうか。動作させてみた感じだとおk。ただ合法だというソースは未確認。言語仕様入手してくるのがめんどかったのでとりあえずtodo。
ストレートに書くとメモリアドレスが欲しいです!でもC#だとあるインスタンスがメモリ上の特定の位置に固定されるとは限らないらしいですねムキー。GetHashCode定義するのはだるいしなんかお手軽な方法ないのかな。
http://www.microsoft.com/japan/msdn/practices/type/Patterns/enterprise/ImpSingletonInCsharp.aspx プロパティ良いね。とりあえずまとめておくと 遅延生成が必要なければ簡単な実装で十分 遅延生成が必要な場合はlock用に一個objectを作って普通にDouble…
夢が広がりすぎて困る
Genericとか言ってもさー、C++っぽいtypeofとかtypedefがないと激しいことできねー気がするんですが、そう言うことしちゃいけない言語と解釈すれば良いんだろうか。寒いなぁ。usingとか同一ファイル内だけだしなー。まぁそれはそれでありがたいんだけど。と…
切実に
まじでー