タグ

C#に関するharu-sのブックマーク (24)

  • 除算と剰余の整数オーバーフロー - 当面C#と.NETな記録

    プログラムでは整数の四則演算はよくよく注意しないと足をすくわれることがあります。 整数と呼んでるものが普通と違って範囲があって循環しているためです。最大値と最小値の絶対値が 1 ズレているのもいや〜な問題の元になります。 この 1 ズレのため除算で整数オーバーフローが発生します。除算でですよ。 int の最小値を -1 で割ったときに結果が表現できないためです。除算と剰余ではただこの 1 ケースのみオーバーフローが起きます。 このケースは仕様書にちゃんと書いてあります。仕様書によると checked では例外スロー。unchecked では「unchecked コンテキストでは、System.ArithmeticException (またはコンテキストでのサブクラス) がスローされるか、または左のオペランドを結果値としてオーバーフローを報告しないかは、実装で定義されます。」実装依存だそうで

    除算と剰余の整数オーバーフロー - 当面C#と.NETな記録
    haru-s
    haru-s 2011/02/06
  • Microsoft、タイプセーフOS「Verve」を鋭意開発中 | エンタープライズ | マイコミジャーナル

    Microsoft Research is dedicated to conducting both basic and applied research in computer science and software engineering. Microsoft ResearchでOSの研究開発に取り組んでいるChris Hawblitzel氏が、現在取り組んでいるOS「Verve」についてVerve: A Type Safe Operating Systemでインタビューに答える形でアイディアや概要を紹介している。Verveの論文は2010年3月末ごろの作成されたものがSafe to the Last Instruction: Automated Verification of a Type-Safe Operating System (PDF)として公開されている。 「Verve」

    haru-s
    haru-s 2010/12/20
    D言語的に待望のOSktkr
  • 今日もだらだらと書き散らすお4 - やねうらお−よっちゃんイカを食べながら、しばし休息しよう。|CSV形式の悲劇

    2次元のリレーショナルデータと言えば、いまだにCSV形式が主流である。これは、読み込みが楽だというのが主な理由だ。Excelのbookだと読み込みが一筋縄ではいかない。 ところで、このCSV形式、encodingは言うまでもなくshift-jisである。いまさらunicodeに変わられても以前のCSVファイルと互換性がなくなってしまうのでそれはそれで迷惑というものだ。 しかしshift-jisでは国際化の流れに立ち向かうことは出来ない。いい加減、unicode版のCSV形式も用意すべきである。 それはそうと、CSV形式のファイルをExcelで開くといろいろ困ったことが起きる。 例えば、"0123XXXYYY"という電話番号だ。これはすべて数字なので数字としてみなされて先頭の0が除外されてしまう。Excelで開いて保存するだけで電話がかからなくなるので大問題である。CSV形式の顧客リストを2

    今日もだらだらと書き散らすお4 - やねうらお−よっちゃんイカを食べながら、しばし休息しよう。|CSV形式の悲劇
    haru-s
    haru-s 2010/06/18
    CSV読み込み
  • transparent-enumerable.cs

    haru-s
    haru-s 2010/05/24
    .net remoting
  • .NET Remotingでチャットアプリケーションを実装する - coma2n’s diary

    今までチャットアプリケーションを作った事が無かったので、ためしに作ってみた。 .NETでこういうクライアント⇔サーバー間で通信をするアプリケーションを作る場合、.NET Remotingを使うのが普通。いまさらソケット開いて、がちゃがちゃリスニングしたりするのなんてめんどくさくてやってられないからね。 プロジェクト構成 NChat.Client クライアントアプリケーション(WinExe) NChat.Service サーバーアプリケーション(WinService) NChat.Interface クライアントとサーバーで共有するライブラリ(Lib) 画面イメージ クライアントのUIはこんな感じにする。 実装 まずサーバーアプリケーション側で、「ChatManager」というクラスを用意する。 public class ChatManager : MarshalByRefObject, I

    .NET Remotingでチャットアプリケーションを実装する - coma2n’s diary
    haru-s
    haru-s 2010/05/24
  • .NET Remotingによる対戦型のテニスゲームの作成

    はじめに 対戦型のテニスゲームを作成して、.NET Remotingを使ってみましょう。 対象読者 C#を使って.NET Remotingを覚えたい人。 必要な環境 Windows Visual Studio 2005 解説概要 物理的に離れたPCで実行して結果を得る方法では、Webサービスが便利です。しかし、Webサーバが必要であったり、オーバヘッドが気になったりします。ここでは、別々のPC上での対戦型テニスゲームの作成を通して、.NET Remotingの使い方を見ていきます。 プロジェクトの作成 Visual Studio 2005(以下、VS2005)を起動しましょう。VS2005のExpress版ならば、Microsoftのサイトから無料でダウンロードできます。[ファイル]-[新規作成]-[プロジェクト]を選択し、プロジェクトの種類で[Visual C#]の[Windows]、テ

    .NET Remotingによる対戦型のテニスゲームの作成
    haru-s
    haru-s 2010/05/24
  • クラス ライブラリ開発のデザイン ガイドライン

    更新 : 2007 年 11 月 クラス ライブラリ開発のデザイン ガイドラインは、.NET Framework を拡張し、.NET Framework と対話するためのライブラリを開発するためのものです。.NET Framework デザイン ガイドラインの目的は、開発に使用されるプログラミング言語に依存しない統一化されたプログラミング モデルを用意することによって、ライブラリ デザイナが API の一貫性と使いやすさをユーザーに提供できるようにすることです。.NET Framework を拡張したクラスおよびコンポーネントを開発するときは、これらのデザイン ガイドラインに従うことを強くお勧めします。一貫性のないライブラリ デザインは、開発者の生産性を損なうだけでなく、ライブラリを採用する意欲を失わせます。 これらのガイドラインは、クラス ライブラリのデザイナが、さまざまなソリューション

    クラス ライブラリ開発のデザイン ガイドライン
    haru-s
    haru-s 2010/04/15
    クラス設計
  • マルチスレッド (C# によるプログラミング入門) - ++C++; // 未確認飛行 C++

    概要 .NET Framework では、マルチスレッドプログラムを作成するためのクラスライブラリを提供しています。 C# でマルチスレッドプログラムを作成する場合、これらライブラリ中のクラスを用いて行うことになります。 また、C# ではスレッド間の同期を取るために lock 文という構文を用意しています。 ポイント C# なら、Thread クラスとデリゲートで並行処理・並列処理もお手軽。 実際には、スレッドを直接作らず、スレッド プールというものを介して使う。 .NET Framework 4 以降なら、Task クラスを利用。 排他処理は lock 文で。 マルチスレッドとは まず、スレッドに関して簡単に説明しておきます。 簡単に言うと、スレッド(thread: 糸、筋道)とは一連の処理の流れのことを言います。 図1 に示すように、 処理の流れが一道な物をシングルスレッド、 複数の

    マルチスレッド (C# によるプログラミング入門) - ++C++; // 未確認飛行 C++
    haru-s
    haru-s 2010/03/28
  • TCPを利用した複数クライアント接続可能なチャットアプリケーションの作成:CodeZine

    はじめに ここでは、複数のクライアントが同時に接続できるTCPを利用したクライアントサーバー型チャットアプリケーション(僭越ながら、「DOBON Chat」と命名させていただきます)のサンプルを示し、その要点を解説します。 .NET FrameworkではTCPを利用したデータ通信を行うためのクラスとして、TcpClient及びTcpListenerクラス(共にSystem.Net.Sockets名前空間)が用意されています。これらのクラスは内部でSocketクラス(System.Net.Sockets名前空間)を使用しており、Socketクラスをより簡単に扱えるようにするためのクラスであると言えます。しかしSocketクラスを直接扱う場合と比べて機能的に劣り、しかも取り扱いの難しさもそれほど変わるとは思えません。そこでここでは、TcpClientとTcpListenerクラスを使わずに、

    TCPを利用した複数クライアント接続可能なチャットアプリケーションの作成:CodeZine
  • @IT:.NET TIPS Win32 APIやDLL関数を呼び出すには? - C#

  • 連載:[完全版]究極のC#プログラミング - @IT

    第2回 簡潔なコーディングのために (2017/7/26) ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21) Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基の「キ」をマスターしよう 第1回 明瞭なコーディングのために (2017/7/19) C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える Presentation Translator (2017/7/18) Presentation TranslatorはPowerPoint用のアドイン。プレゼンテー

    haru-s
    haru-s 2009/08/01
    一回読んでみてもいいかな
  • Java やってる人が C# を使うとはまること - ぐるぐる~

    ここでは、Java SE 5.0 以降を知っている人が C# 2.0 を使うことになった場合を考える*1 *2。 あと、ライブラリについては触れないことにする*3。 命名規約 まず、命名規約が全然違う。Java ではメソッド名にキャメル形式*4を使うけど、C# では Pascal 形式*5を使い、Java では定数名に大文字アンダーバー区切り*6を使うけど、C# では Pascal 形式を使う。 C# に関する命名規約としては、ここだとかここだとかにあるので、参考にするといい。 間違っても、オブジェクト倶楽部のは参考にしないこと*7。 struct の扱い Java ではユーザ定義型は全て参照型だけど、C# では値型も作成できる。また、標準ライブラリの中に struct で定義されたものもある。 で、何にはまるかというと、struct は class と違い、「値渡し」される*8、つまりコ

    Java やってる人が C# を使うとはまること - ぐるぐる~
    haru-s
    haru-s 2009/03/15
  • The Future of C#のまとめ - 匣の向こう側 - あまりに.NETな

    The Future of C# | pdc2008 | Channel 9 VS2010がダウンロードできないので、不貞腐れてPDC2008のヘジたんセッションをまとめてみました。ヒアリングが壊滅的に苦手なので、あまり当てにならないと思います・・・(^^; C#の進化 C#1.0 Managed Code C#2.0 Generics C#3.0 LINQ C#4.0 ? C#はマネージコードから始まってジェネリック、LINQと進化してきた。 トレンド Declarative Dynamic Concurrent 宣言型(Declarative) LINQで関数型言語の要素を取り入れている。 命令型(Imperative)はHow(どのように)に重点を置いているが、 宣言型はWhat(何を)に重点を置いている。 ハードウェアの進歩により、HowをJIT等に任せられるようになるので「何を」

    The Future of C#のまとめ - 匣の向こう側 - あまりに.NETな
    haru-s
    haru-s 2008/11/02
  • [サンプル] イテレータとマイクロスレッド

    概要 ゲーム開発の分野を中心として、 マイクロスレッド(microthread)あるいはコルーチン(coroutine)、ファイバー(fiber)などと呼ばれる概念が考えられています。 C# 2.0 の「イテレーター」構文を使うと、 マイクロスレッドと似たようなことができます。 デモ → シューティングゲーム風。 ( ソース一式 (zip 形式)。) マイクロスレッドとは 狭い分野でしか使われてない言葉なので、 定義も用語もあまりはっきりと固まっていないんですが、 ここでの説明は数ある定義のうちの1つだと思ってください。 マイクロスレッドというものの背景には、 アクションゲームやシューティングゲームの敵や弾の動作ロジックをどう書こうかという話があります。 シューティングゲームなどでは、時間をフレームと呼ばれる単位に区切って、 1フレームごとに敵や弾の位置を更新するという方式をとる場合が多い

    [サンプル] イテレータとマイクロスレッド
    haru-s
    haru-s 2008/10/29
    fiber
  • CodeProject: ListView in VirtualMode and checkboxes. Free source code and programming help

    haru-s
    haru-s 2008/09/16
  • ReSharper

    ReSharper provides on-the-fly code analysis and eliminates errors in C#, VB.NET, XAML, ASP.NET, and XML

    ReSharper
    haru-s
    haru-s 2008/09/16
  • C# で COM コンポーネントを公開する - てっく煮ブログ

    C#C# で COM コンポーネントを作って、JScript や VBScript から使う方法ですよ。以下、簡単な目次。プロジェクトを作るCOM 参照可能にするC# で実装するCOM コンポーネントとして登録する完成!!ここでは、Visual Studio 2005 を使ってるけど、それ以外のバージョンでも同じようにできるはず。1. プロジェクトを作るVisual C# のクラス ライブラリ プロジェクトを作る。2. COM 参照可能にするプロジェクトのプロパティから [アプリケーション] の [アセンブリ情報] ボタンを押す。[アセンブリ情報] ダイアログが表示されるので、[アセンブリを COM 参照可能にする] をチェックして [OK] ボタンを押しておく。これで、ComVisibleAttribute が true になって、クラスライブラリが COM として参照できるようになる。

    haru-s
    haru-s 2008/09/16
  • C# と VB.NET の入門サイト

    当サイトは、Visual C# .NET と Visual Basic .NET (VB.NET) を中心とした .NET プログラミング初心者用の入門サイトです。C# と VB.NET だけでなく、Visual C++ .NET (C++/CLI)、Visual J# .NET (Java) などについてもサポートしています。初心者・入門者向きのサンプルコードが主な内容となっております。Visual Basic 6.0 (VB6) 以前のプログラマのために Visual Basic 6.0 (VB6) についても提供しておりますので、ステップアップにご利用ください。

    haru-s
    haru-s 2008/09/16
  • 汎用的に使用できる定義済みのデリゲート型は?[C#、VB] - @IT

    .NET Framework 2.0のジェネリックや.NET Framework 3.5でのラムダ式などの導入により、C#やVBでデリゲートの仕組みを使用する機会が増えている。これに伴い、.NET Frameworkのクラス・ライブラリには、汎用的に使用できるデリゲート型の定義が多く追加されている。 ここでは、そのような定義済みのデリゲート型をまとめてみた。以下の2つの表はそれをC#およびVisual Basic(以下、VB)で表記したものだ。MethodInvoker型はSystem.Windows.Forms名前空間で定義されているが、それ以外はすべてSystem空間で定義されている。

    haru-s
    haru-s 2008/08/11
  • 「C# でリバーシ,どうかく?」 - NyaRuRuが地球にいたころ

    思いがけず揃った感じ.読み比べてみるとおもしろい. 申し訳なし - 東方算程譚 LINQでリバーシ - 菊池 Blog LINQでリバーシ(2) - 菊池 Blog LINQでリバーシ(3) - 菊池 Blog LINQでリバーシ(4) - 菊池 Blog (追記: 増えた!) C#でリバーシ - 菊池 Blog

    「C# でリバーシ,どうかく?」 - NyaRuRuが地球にいたころ