タグ

C#に関するiwwのブックマーク (87)

  • C# プロパティ

    概要プロパティ(property:所有物、特性)とは、JavaC++にはない(Visual Basicにはある)機能で、 クラス外部から見るとメンバ変数のように振る舞い、 クラス内部から見るとメソッドのように振舞うものです。 JavaC++がこの機能を持ってないことからも分かると思いますが、 プロパティはオブジェクト志向言語に必須の機能ではありません。 しかし、これから説明していくように、あると便利なものです。 プロパティとは 「実装の隠蔽」 で、 メンバ変数はクラス外部から直接アクセス出来ないようにして、 オブジェクトの状態の変更はすべてメソッドを通して行うべきだと書きました。 これを忠実に実行すると、クラスを利用する側のコードは以下の例のように少々見栄えの悪いものになってしまいます。 using System; // 「実装の隠蔽」で作った複素数クラス class Complex

    iww
    iww 2012/04/29
  • Code Life

    noto's blog

    iww
    iww 2012/03/25
  • とあるPGの研究記録(レコーダー): LinuxでC#.NET + OpenGLやってみた【MonoDevelop×Tao Framework】

    iww
    iww 2012/03/25
  • 2011-02-18 - ITは芸術だ レガシープログラマかどうかを判断する10項目

    ※2011.3.30追記 11個目の判断項目を追加しました。 また、「昔はね...」の補足説明を各項目に追加しました。 レガシープログラマ = モダンな言語のおいしい機能をうまく使いこなせていないプログラマ おいらは時々社内システムのコードレビューなんかをやっているのですが、「なんかちょっと前時代的だな〜」とか「ちょっと修正したらC言語でもコンパイルできそうだな〜」って思うことがよくあります。 おいらがレビューする言語は主にC#です。C#やJavaのような比較的モダンな言語のおいしい機能をうまく使いこなせていないプログラマを、ここでは「レガシープログラマ」と呼ぶことにします*1。 そこで、おいらがこれまでに見てきたコードの中から「これはレガシープログラマっぽい」と思った典型的な症例を10個11個挙げてみます。 レガシープログラマの判断項目 使われるローカル変数をすべてメソッドの最初に宣言す

    2011-02-18 - ITは芸術だ レガシープログラマかどうかを判断する10項目
    iww
    iww 2012/02/06
    C#の話か。
  • テスト自動化とは - ソフトウェアテスト自動化まとめサイト なんでも自動化サイト

    1.V字開発プロセスモデルによる分類 1.1.要件定義 VDM 形式手法(Formal Methods)により仕様の自動検証などを行う。 1.2.システム設計 モデル検査 Spin モデル検査により状態遷移図の状態で自動検証を行う。 LTSA モデル検査により状態遷移図の状態で自動検証を行う。 NuSMV モデル検査により状態遷移図の状態で自動検証を行う。 モデル駆動 ZIPC(商用:キャッツ株式会社) 状態遷移図による検証が可能 MDA モデルを実際に動かして動作検証する。Executable Umlなどを使用して仕様を記述。 IAR visualSTATE(商用:IAR SYSTEMS) ステートマシンを設計、検証、実装できるツール。20ステートまでの無料の評価版あり 1.3.詳細設計 Enterprise Architect(商用:SPARX SYSTEMS) テストツールではないが

    テスト自動化とは - ソフトウェアテスト自動化まとめサイト なんでも自動化サイト
  • C#のvarとtry〜catchが糞すぎる - やねうらおブログ(移転しました)

    C#3.0からはvarと書くと型を明示的に指定しなくても済む。 var hoge = new HogeClass(); しかし例外処理をするためにこれをtry〜catchで囲みたいとする。 try { var hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } このプログラムはコンパイルが通らない。catchのなかでは変数hogeにアクセスできない。try節が終わっているため、hogeのスコープが終わってしまうのだ。仕方ないのでhogeを外部のブロックに出す。 var hoge; try { hoge = new HogeClass(); hoge.XXX(); } catch { if (hoge!=null) hoge.YYY(); } しかしこれまたコンパイルが通らない。var hog

    C#のvarとtry〜catchが糞すぎる - やねうらおブログ(移転しました)