パーフェクトC#
おー。かなりお久〜。
図書館でこやつ発見
[改訂新版] パーフェクトC# (PERFECT SERIES 1)
- 作者: 醍醐竜一,斉藤友男
- 出版社/メーカー: 技術評論社
- 発売日: 2008/09/12
- メディア: 大型本
- クリック: 8回
- この商品を含むブログ (10件) を見る
だったので読んでます。
未だ半分も読めてません(厚みあるのよ、この本。てか重い。)が、色々と知らんことありました。
<ラベル>
ピクチャーみたく、Zoomとかはできませんが、写真おける。使わんかな。
<グループボックス内のコントロール>
タブオーダがそないなるとですか・・・
<テキストボックス>
オートコンプリート機能。そんなんあるんですか。WebBrowserのURL入力する際とかで出てくるやつ系。
<フォーム>
AcceptButton,CancelButtonプロパティでEnter,ESCによるボタンイベントを選べる。
まーtextBoxでEnter許容している場合とかがあるでしょうから、副作用ありますね。
<チェックボックス>
Appearanceプロパティをbuttonにすると、リボンみたいに使える。
<ラジオ>
同上
<リストボックス>
MultiColumnプロパティでリストを複数列で表示できる。便利やけど他のアプリでみたことないので、使わんかな。
SelectionModeプロパティでマルチ選択できる。これは使う。
<コンボボックス>
DropDownStyleプロパティをDropDownListにすると凸る。あれ・・・6からできたっけな?最近コピペばっかで覚えてない。
こんなん書いても「へー」もらえるのはV[CB]6を未だ使っている(使わされている)方ぐらいかな。
■
続くといいながら、パワポは飽きた&もういいかな的で終了です。
代わりにまたこれ!
- 作者: ビル・ワグナー,鈴木幸敏
- 出版社/メーカー: 翔泳社
- 発売日: 2011/02/16
- メディア: 大型本
- 購入: 12人 クリック: 73回
- この商品を含むブログ (13件) を見る
じゃ重複するかもしれませんが、気になったとこだけ書きます。
- constよりreadonlyを使おう。全ビルドならどうでもえーんやけどね。パフォーマンスは下がるが気になるレベルではない。
- ToString()はオーバーライドしましょう。いいことあります。
- as is 使いましょう。ってゆーかcastするか?
- Propertyにしましょう。今なら{get; set;}でいけるし
- メンバ変数の初期化はコンストラクタではなく、メンバ初期化子でやれ。変数宣言時にやれってこと。
- さらに初期化を0でするなら、意味ないからやめよう。既に0だし。
- メンバ初期化時に例外が発生するなら、コンストラクタで。try書けないから。
- static変数の場合は、例外のことを考慮するとstaticコンストラクタで初期化しれ。
- unmanagedリソースに対し、忘れる事無くDispose()するには、usingで囲むのが理想。例外にも対応できるし。
- とはいえ・・・IDisposableインタフェースを実装していないリソースではコンパイルすら通らないが。
一旦うp
■
かなり前に買ってたんですが、ふと目に留まったのもあり以下の本を読みました。
いきなりスゴイ! PowerPoint【超実践! これ一冊で完全マスター】 (100%ムックシリーズ)
- 作者: 河合浩之
- 出版社/メーカー: 晋遊舎
- 発売日: 2011/08/18
- メディア: ムック
- 購入: 3人 クリック: 46回
- この商品を含むブログ (8件) を見る
- 円や四角は楕円や長方形より、正円形や正方形の方が美しく見える。へー
- 角丸は丸みが小さい方が整って見える。へー
- 図形は整列させた法が説得力が増す。
- 塗り色は用意されている配色を選ぶ
- 画面の切り替えってやったことなかった。アニメーションばかりしてた・・・
- 文字の効果>反射は使ったことなかったけど、いい感じ。
- 背景次第で陰付きもいい。
- 一つの画像を上下で割って、下からスライドインって思いつかんね。
続く
■
- Firstメソッドにはパラメータありとなしがあって、ありを使えばWhere(条件).First-->First(条件)でいける
- FirstOrDefaultを使えば、存在有無とデータ取得の両方を実現できる。Where()+First()-->FirstOrDefault()
- SortしてFirstすれば最小値が取れるが、これはMinと同じ。しかし既にSortされたシーケンスならパフォーマンスはFirstの勝ち
- パフォーマンスだけ考えれば、OrderBy()よりSort使うべし。一時的なソートならしゃーないけど。まっ量によるわね。
とか書いてるうちに読み終わった。さてどうしよう。ちょっと@ITでもいこっか。
■
- 射影・・・・・Enumerable.Range(1, 9).Select(c=>c*2)
- 射影*2・・・・Enumerable.Range(1, 9).SelectMany( (l)=>Enumerable.Range(1, 9), (l, r)=> l +"x"+r+"="(l*r))
- SkipWhileとWhereの大きな違いは、SkipWhileはスタート位置がスキップされるだけで、その後はチェックされない
- Take(10)・・・先頭から10個とる・・・カウンタいらない系
- TakeWhile()・・先頭から条件成立するまでとる・・・所謂ストッパありき系
- ORDER BY 1,2 ・・OrderBy().ThenBy()
- ORDER BY 1, 2 DESC・・・ OrderBy().ThenByDesending()
- SELECT UNION SELECT・・a.Union(b)
メソッド一覧はこんなもんで、以降はさらに各メソッドをマニアックに調べていくらしい。
うむうむ。
■
さて、ショートコーディングも読み終えたんで、積ん読より以下を今日からやってみます。
- 作者: 川俣晶
- 出版社/メーカー: 技術評論社
- 発売日: 2012/01/19
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 9回
- この商品を含むブログ (4件) を見る
- Directory.GetFiles(dir)は全部拾うまで戻らない。Directory.EnumerateFiles(dir)ならIEnumerable
を返すので早い - 並列クエリ(ParallelQuery)・・・難しい言葉が出てきた。イメージとして縦処理を横処理にして、夫々を別プロセッサ(別コア)で処理する感じ
- int[] ar = { 1, 2, 3 }; ar.AsParallel()の戻りが並列クエリ
- さらにar.AsParallel().AsEnumerable()で直列クエリに戻せる
- 上記の方法では結果は順不同となるが、ar.AsParallel().AsOrderd()をかます事で、並列クエリの結果の順番を強制することができる
- int[] ar = { 1, 2, 3 }; ar.Any(x=>x==3)とまで書かんでも、ar.Contains(3)が奇麗
- 重複をさせたなければ ar.Distinct()やっぱ、この名前
- 複数のシーケンスの差シーケンスを求める ar1.Except( ar2 ) こんな簡単でいいんでしょうか・・・
あーまだまだあるなー
■
読むとやるとでは、大きな違い。いざ書いてみると書けない。
- Encoding.GetEncoding("Shift_JIS")も日本ロケールでの読み込み限定とすれば、Encoding.Defaultにできる
- versionとれ。FileVersionInfo.GetVersionInfo( Assembly.GetExecutingAssembly().Location );
この後、Paralells Desktopが逝かれる(原因はBootCampフォルダを誰かがMountしっぱなしだったり、ディスクエラーが
原因だったのですけど)など色々ありましたが、ショートコードプログラミングの本自体は終了しました。
VS2010でのテスト駆動方法も書いてあったので、助かりました。
後は書きまくる&常にショートを心掛ける
ですね。敢えてC#で書けってことやね。