ブックマーク / csharper.blog57.fc2.com (6)

  • C#と諸々 「C#できます」と言い放ったあいつがJavaプログラマであることを見分ける10の質問、やってみた

    C#がメインで他もまぁ諸々なブログです おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`) つーかコメント欲しい(´・ω・`) 「C#できます」と言い放ったあいつがJavaプログラマであることを見分ける10の質問 - とC#について書くmatarilloの日記 仕事で C# 使わなくなって久しい僕なので、あまり自信ないけど…。 * ==演算子のオーバーロードを実装してEqualsメソッドと同じ処理を実行するようにしてもよい場合はどのような時か? 同値であるオブジェクトを同一であるとして扱う場合。 * ループ内でなければ、たとえ100個の文字列型変数であってもまとめて+演算子で連結してよい理由を説明せよ。 +演算子が99回繰り返されるのではなく100個の文字列を一つにまとめるという処理に最適化されるため。 * List<int>のように値型を格納するジェネリックコレクションを使

  • C#と諸々 久々に業務エラーについて

    C#がメインで他もまぁ諸々なブログです おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`) つーかコメント欲しい(´・ω・`) 以前業務エラーについての記事を書いてから、もう 1 年半以上が経ちます。 今でもこの記事にコメントを頂くことがあり大変有難いのですが、実は、現在はまたもや異なる見解、というか捉え方をしています。(何度もすみません…) といっても、「業務エラーは戻り値で表すべき」という考えになったというわけではありません。 以前は業務エラーは「戻り値」で表すべきか「例外」で表すべきかについて悩んでいましたが、今の僕は、そもそも業務エラーを表すのはこのどちらでもないと考えています。 まず、 戻り値は、メソッドが結果を返すためのものです 例外は、メソッドが例外的事象を通知するためのものです このことは以前の記事にも書いてあります。 そして、これが全てです。 戻り値も例外も、

    masakanou
    masakanou 2009/08/03
    >戻り値も例外も、業務エラーを表すためのものではないのです。
  • C#と諸々 MVP (Model View Presenter)パターン

    C#がメインで他もまぁ諸々なブログです おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`) つーかコメント欲しい(´・ω・`) MVP パターンについて、僕なりに理解していること、こうした方が良いと思うことを書き綴ってみようと思います。 MVP パターンは書籍「ドメイン駆動」で知りましたが、GUI Architectures は英文苦手なので読んでません。だから、違うこと言っている可能性もあります。どちらかというと、僕が MVP パターンを適用する時の個人的な考え方、ということになるかもしれません。 また、ここでは特に、ASP.NET 開発で MVP パターンを適用する場合について書いていきます。もしかしたら、それ以外の開発では若干当てはまらない点があるかもしれません。 [MVP パターンとは] MVP (Model View Presenter) パターンは、MVC (Mod

    masakanou
    masakanou 2008/12/22
    読む
  • C#と諸々 PowerShell で Visual Studio のソリューションから VSS の関連付けを削除する関数

    C#がメインで他もまぁ諸々なブログです おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`) つーかコメント欲しい(´・ω・`) ビルド自動化のために。 PowerShell で Visual Studio のソリューションから Visual SourceSafe の関連付けを削除する関数。 この関数が行うことは以下の3つ 指定したフォルダ内の全てのファイル・フォルダから、"読み取り専用" 属性を外す mssccprj.scc 等の VSS ファイルを全て削除 ソリューションファイル, プロジェクトファイル ( ※ ) に記述されている VSS の設定を削除 ※ C# プロジェクト, VB プロジェクト, Web 配置プロジェクト, セットアッププロジェクトに対応。 [ パラメータ ] solutionFolderPath ソリューションが格納されているフォルダのパス。 [ De

  • C#と諸々 GetType メソッドでボックス化される理由

    GetType メソッドは Object クラスで定義されている非仮想メソッドなので、GetType メソッドを値型に対して呼び出す際はボックス化が必要 と書きましたが、もうちょい詳しく書いときます。 # 今回の記事は Nullable 型に限らない話です。 [ Object クラスに定義されている非仮想メソッド ] Object クラスには他にも非仮想メソッドとして MemberwiseClone メソッドが定義されていますが、このメソッドを呼び出す場合も同様にボックス化が発生します。 ポイントは次の 2 点です。 ・ インスタンスメソッドは自分自身を取得できる インスタンスメソッドでは、this キーワードにて自分自身を取得できます。しかしこれは、C# の話であって、IL レベルでは、this キーワードに相当する機能は用意されていません。 ではどうやって自分自身を取得するかというと、

    masakanou
    masakanou 2008/10/06
    読む 構造体のなかでToStringをオーバーライドするのはボックス化を避けるため
  • C#と諸々 ASP.NETでの例外処理

    C#がメインで他もまぁ諸々なブログです おかしなこと書いてたら指摘してくれると嬉しいです(´・∀・`) つーかコメント欲しい(´・ω・`) ASP.NETでは、ハンドルされなかった例外はGlobal.asaxのApplication_Error(HttpAplication.Errorイベントのハンドラ)で処理できる。 発生した例外は this.Server.GetLastError()で取得できるのだが、例外は基的にHttpUnhandledExceptionにラップされている(必ずではない)ので注意する必要がある。 例外を処理したら this.Server.ClearError()でクリアすること。ただし、Web.configのcustomErrorsセクションに設定したエラー処理方法を適用させたい場合はクリアしない。 Global.asax void Application_Err

    masakanou
    masakanou 2008/09/08
    >this.Server.GetLastError()で取得できるのだが、例外は基本的にHttpUnhandledExceptionにラップされている(必ずではない)ので注意する必要がある。
  • 1