投稿

3月, 2012の投稿を表示しています

このシステム作ったやつらは…

現在、VB.NETで作成されたすげー不思議なプログラムを回収してます。 まぁ、コメントは適当だし、1メソッド1000行あったり、if文の中身が一緒だったり 自動生成クラスに手を加えているし(それを記述した資料・連絡は一切無し)、 循環参照してるし… まぁ、すごい奴等が作った事は安易に想像出来ました。 で、文句言いながら回収してるのですが、1つ不思議なことが出てきました。 ・ウィンドウを表示する時に、タスクバーに表示され無い事があります。 なぜなのだろう?処理はこんな感じ… 1.2重起動チェック 2.app.configファイルの取得 3.指定されたサーバーにSOAPでデータを取得 4.ウィンドウのLoadイベントで、初期化 5.ウィンドウを表示 コレだけ見ると、何も問題なさそうなのに… 手順: 1.アイコンをダブルクリック 2.エクスプローラなど別のウィンドウを操作(移動するなど)をする。 3.ウィンドウが前面に出ない。かつ、タスクバーに出ない。 4.後ろに表示されているウィンドウをアクティブにすると、タスクバーに表示される。 という変な動作。 Loadイベントでアクティブに設定しても駄目。 Shownイベントでアクティブに設定しても駄目。 TopMost=true ⇒ TopMost=false に設定しても駄目。 ん~他に思いつくものが無い… いやぁ~変なソースコードを記述する人たちは、 いろいろとやらかしてくれますね。 簡単なプロジェクトを作って再現させようにも、フツーに作ったら再現しない… はぁ…お客さんが文句言ってないから良いが… コードレビューが出来る奴が居ないプロジェクト(出来る時間の無いプロジェクト)なんて、 やめちまえっ! と言いたくなる…

また言語が変わって VB.NET になったのだが…

*******ここから追記******* ちなみに、DBとかXMLとかと紐付けるために、 Enumを全て連番固定値にするのは、仕方ないと思ってます。 私も、DBなどと紐付けるためのEnumの使い方に困ってます。 誰か、良い方法を教えて~~~~(> ~~~~~~~ここから引用~~~~~~~~~ ●列挙型の定義 Public Enum enumStatus   OK = 1   NG = 2   ERR= 3 End Enum ●特定の値(Value)に対する名称を取得する場合 strName = System.Enum.GetName(GetType(enumStatus), 2).ToString Console.WriteLine(strName) >結果  NG ~~~~~~~ここまで引用~~~~~~~~~ さて、上記のサンプルですが、文句を言いたいのが2点… 1.Enum型なんだから、宣言時に「OK = 1、NG = 2」…って代入するなっ! 何の為にEnum形使ってんだよ…そんな宣言なら、ただのconstで良いじゃないか… 2.「System.Enum.GetName(GetType(enumStatus), 2).ToString」この"2"って言う数字はなんだっ!? Enum型で数字を直接指定するなんて、ご法度だろう!? 特に2番目のほうがイライラする。 そして今修正しているコードが、1,2両方を使ってる…むかつく… ちなみに、自分なら下記にする。 ~~~~~~~ここから私の修正案~~~~~~~~~ ●列挙型の定義 Public Enum enumStatus   OK = 1   NG   ERR End Enum ●特定の値(Value)に対する名称を取得する場合 strName = System.Enum.GetName(GetType(enumStatus), enumStatus.NG).ToString Console.WriteLine(strName) >結果  NG ~~~~~~~ここまで私の代替案~~~~~~~~~ まぁ、名称を取ってくるコーディングがどれだけあるか微妙な気もするが… ちなみに、宣...

Visual Studio 2008 SP1の日本語化

Visual Studio 2008 SP1 でコーディングを行う時、メソッドを選ぶ時にメソッド説明を見ると思います。 その時、マウスをメソッドの上に持っていき、黄色いツールバーで説明を見ることが多いと思います。 が、SP1にすると、説明が英語になってしまうようです。 その英語を日本語に修正するツールが存在するようです。 説明されている方のURL: ttp://d.hatena.ne.jp/endlessdoor/20091225/1261704335 ダウンロード先: http://code.msdn.microsoft.com/KB957507/Release/ProjectReleases.aspx?ReleaseId=1854 ・VS90SP1-KB957507-JPN-x86.exe これをインストールすると、日本語になりました。 お試しあれ… 検索用: VS2008 Visual Studio 2008 SP1 ツールチップ メソッドの説明 関数の説明 名前空間の説明 日本語化 KB957507 KB957507 - Loc Intellisense to replace all Loc Int shipped with VS 2008 SP1