C#でvarを使う
C#のvarについてまとめてみました。
MSDN/OSSでのガイドライン
MSDNとGithubのC#プロジェクトでスター数が多いdotnet/corefxとmono/monoのガイドラインです。
- https://msdn.microsoft.com/ja-jp/library/ff926074.aspx
- https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md
- http://www.mono-project.com/community/contributing/coding-guidelines/
これらを見るとvarは右辺から型がはっきり分かる場合に限り使い、それ以外の場合は型を明示的に書くとなっています。
var stream = new FileStream(...); // good var stream = OpenStandardInput(); // bad InputStream stream = OpenStandardInput(); // good
varを使った場合の可読性について
型を明示的に使う理由として型が明示的な方が可読性が高くなるというものがあります。
しかし場合によってはvarを使っても可読性が損なわれないことがあります。
var tmp = ary[0]; ary[0] = ary[ary.Length - 1]; ary[ary.Length - 1] = tmp;
上記では配列の最初の要素と最後の要素を交換しています。
aryの型は分かりませんがコードを理解する上ではあまり必要ないように思えます。
コードによっては型が明示されていた方が読みやすい例もあるでしょうが、
varを使った場合に可読性が下がるかはケースバイケースだと考えます。
(上意見に関しましては後述の参考文献も参考のこと)
また最近のIDEではvarを使っていてもマウスオーバーで型が示されるためあまり困らないというのもあります。
varのメリット
varを使うメリットがいくつかあります
- コードを書くのが楽になる
varならば書き始めるときその型が分からなくても良いですし、
ストローク数が少なくてすみます。
- リファクタリング時の影響が小さくなる
型を明示的に書いていた場合リファクタリング時にそれらが置換されてしまいますが、
varの場合はそれが起きません。
- 長い型を書く場合と比べてスッキリする
まとめ
個人的には以下のような感じにしています。
基本的にvarが使える場合はvarを使います。
ただし型をちゃんと書いた方が可読性が高い場合は型を書くようにします。
(プロジェクトにコーディング規約がある場合はそれに従います。)
ScalaでListからArrayにコピーする
val list = List("a", "b", "c") var array = new Array[String](list.length) for( Pair(i, c) <- 0 to list.length-1 zip list) { array(i) = c } array.foreach(println) // a // b // c
Mac OS X(Leopard)でlaunchdを使ってsynergycを自動で起動させる
※synegyについて
winとmac(とlinuxも可能)のマウスとキーボードとクリップボード共有ツール
サーバとクライアントがあり、サーバ機の使っているマウスとキーボードが他のクライアント機で使えるようになる
Winをサーバ、macをクライアントにする設定
○Win編
1.
http://synergy2.sourceforge.net/
からSynergyInstaller-1.3.1.exe をダウンロードしてインストール
2.
設定で「このコンピュータのキーボードとマウスを共有する(サーバ)」にチェックする
3.
設定を開いて
スクリーン名(=マシン名)を追加
例:
WIN-PC(Win)
mac-pc.local(mac)
リンクの設定をする
例:
WIN-PC の右側は mac-pc.local
mac-pc.local の左側は WIN-PC
4.
オプションの自動起動の設定でPCの起動時に立ち上がるようにする
○mac編
1.
http://synergy2.sourceforge.net/
からsynergy-1.3.1-1.OSX.tar.gz をダウンロードして解凍
2.
解凍したらsynergyフォルダをアプリケーションフォルダにつっこむ
3.
plistの作成
Macintosh HD>Developer>Applications>Utilities>Property List Editorを開き
Root Labelsynegyc ProgramArguments item 1 /Applications/synergy/synergyc item 2 -f item 3 192.168.XX.XX ←win機のアドレス Disabled false RunAtLoad true
を書いて~/ライブラリ/LaunchAgentsフォルダに保存する。(~/はユーザフォルダ。LaunchAgentsフォルダが無ければ作成)
※Mac OS X 10.5以降の場合 -f オプションをつけないと起動できません
(ターミナルから/Applications/synergy/synergyc -f 192.168.XX.XXを呼び出してテストした方がいいかも?)
4.
システムを再起動するか、コンソールでlaunchctl load ~/Library/LaunchAgents/synergyc.plistを実行するとsynergyクライアントが開始されます
(ちゃんとsynergycが実行されているかを確認するにはコンソールでlaunchctl listを実行してみて下さい)
5.
Winでjisキーボードを使っている人はキーボードレイアウトの設定が必要です
http://msyk.net/macos/winkeyboard/
ポストイットの手帳収納
便利そうなのを発見しました。
http://www.mmm.co.jp/office/post_it_style/kit.html
アルミの名刺入れにポストイットを入れるのも手かも。
今日の買い物
入門 ベンチャーファイナンス―会社設立・公開・売却の実践知識
- 作者: 水永政志
- 出版社/メーカー: ダイヤモンド社
- 発売日: 2006/02
- メディア: 単行本
- 購入: 10人 クリック: 83回
- この商品を含むブログ (12件) を見る
- 作者: ジム・コリンズ,山岡洋一
- 出版社/メーカー: 日経BP社
- 発売日: 2001/12/18
- メディア: 単行本
- 購入: 24人 クリック: 210回
- この商品を含むブログ (188件) を見る
- 作者: 三枝匡
- 出版社/メーカー: 日本経済新聞社
- 発売日: 2001/09/17
- メディア: 単行本
- 購入: 3人 クリック: 28回
- この商品を含むブログ (29件) を見る
実践! MBAトレーニング 新・ビジネス思考 (ボンド大学・BBT MBAプログラム)
- 作者: 大前研一
- 出版社/メーカー: PHP研究所
- 発売日: 2002/12/14
- メディア: 単行本
- クリック: 1回
- この商品を含むブログ (3件) を見る
後で読みます。