.NET

C# のコードに x86/x86-64 命令を直接組み込む

C# で書かれた将棋の思考ルーチンの高速化のため,(Visual C++ 用の) 組み込み関数 _mm_prefetch 的なものを使うべく,ネイティブコードで書かれた DLL と C# で書かれたメインの思考ルーチンを組み合わせてみた,というお話.ふむふむ. http://d.hatena.ne…

数式入力パネルとアプリケーションを連携させる 2 つの方法

Windows 7 では,タブレット PC 向け機能が強化され,数式の手書き入力がサポートされるようになりました.この機能とアプリケーションを連携させるための方法を 2 つほど紹介します. 数式入力パネルからのデータをクリップボード経由で受け取る 『数式入力…

MSBuild, 環境変数, Property Functions,ビルド時計算

Visual StudioからBuildしたときに環境変数が取得できない… MSBuild Extension PackにEnvironmentVariableタスクがあるけれど、標準でついてないなんてありえません。プロパティ式に組み込んでもいいくらいなのに。$(env:DXSDK_DIR)みたいな感じで んー,手…

書籍紹介: CLR via C#, Third Edition

CLR via C#, Third Edition作者: Jeffrey Richter出版社/メーカー: Microsoft Press発売日: 2010/02/10メディア: ペーパーバック購入: 1人 クリック: 50回この商品を含むブログ (4件) を見る 第3版の季節がやって参りました. そもそもそんな本は知らんがな…

別スレッドでリソースを解放することのあれそれ

Boost.SmartPtr:shared_ptr + weak_ptr(Cryolite) の 24 分目あたり. shared_ptr<void> による遅延解放 vector<shared_ptr<void *> > to_be_disposed; shared_ptr<HeavyToDispose1> px(…); shared_ptr<HeavyToDispose2> py(…); … // ここで削除して処理が止まると困る… to_be_disposed.push_back(px); px.reset(); to_b</heavytodispose2></heavytodispose1></shared_ptr<void></void>…

書籍紹介: .NETのクラスライブリ設計 開発チーム直伝の設計原則、コーディング標準、パターン (Framework Design Guidelines 2nd Edition)

.NETのクラスライブラリ設計 開発チーム直伝の設計原則、コーディング標準、パターン (Microsoft.net Development Series)作者: Krzysztof Cwalina,Bard Abrams,藤原雄介出版社/メーカー: 日経BPソフトプレス発売日: 2009/12/24メディア: 大型本購入: 8人 ク…

単位の話

だいぶ前に書こうと思って書き忘れてたのを今頃書いてみたり. ishisaka さんが Units of Measure をいたくお気に入りの様子. F#のUnits of MeasureはそれだけでF#を勉強してもいいと思えるぐらいすごいんだけど、世の中的には反応薄いか。無事ね素アプリば…

pull or push / LINQ or Rx

partitionedはstd::partitionのlazy版です。 一瞬「すげー」と思ったんですが,よく読んでみたら,単に source sequence を二回列挙してるだけっぽくて残念*1.というかまあ二回列挙していいなら全然難しくありませんよね.C# で書いたとしたらこんな感じで…

文字列に頼らないリフレクション

C#でシンボルを実現する Expressionを使ってプロパティ名を文字列ではなくてラムダ式で与える方法 タイプセーフにINotifyPropertyChangedインターフェースのPropertyChangedイベントを発行する 拡張メソッド+ラムダ式でメンバ名をエレガントに取得 なんかま…

C# でローカル変数の再代入を禁止したいとき

とりあえずみんな一回 let 句使ってコード書いてみるべき. var seq = from _ in Enumerable.Repeat(1, 1) let x = 1000 let xs = new List<int>{x} let y = Math.PI / 2.0 let z = "hauhau" select _; var pixelsQuery = from y in Enumerable.Range(0, screenHe</int>…

ユーザー定義のデフォルトコンストラクタと配列の初期化

(多くの) .NET 言語で,構造体にユーザー定義のデフォルトコンストラクタを作れないのはなんでよ? という話. http://pc12.2ch.net/test/read.cgi/tech/1245836827/949- 自分の理解としては >>964 の人と同じ. .NET アセンブリの仕様としては,構造体にユ…

if が文とは限らない話と,条件分岐で参照を返す話

(略) でも、「式」しか書けない所ではそうはいかない。 例えば、(C++ で) 初期化リストの中や TMP では if 文なんて使えないので条件演算子を使わなければならない。// ちと作為的な例だけど class hoge { const piyo& ref_p; public: hoge(int a, int b, co…

流れるようなインターフェイス,名前付き引数,クエリ式

流れるようなインターフェイス - 予定は未定Blog版 キーワード引数の代わりとしての関数はアリか否か - blog.fuktommy.com C# 4.0 では名前付き引数・省略可能引数が使えるようになるので,シンタックス弄りがもう一段階フリーダムに.シンタックス関連は,…

前後の値も利用したシーケンス処理 (その 2)

『前後の値も利用したシーケンス処理 - NyaRuRuの日記』の続き. // 連続して同じ値が来る箇所だけを省いて取得する // この場合だと1,2,4,3,4,0が取れることを目指す int[] array = { 1, 2, 4, 4, 3, 3, 4, 0, 0 }; 前回はこの問題を肴に Scan とか Pairwis…

前後の値も利用したシーケンス処理

// 連続して同じ値が来る箇所だけを省いて取得する // この場合だと1,2,4,3,4,0が取れることを目指す int[] array = { 1, 2, 4, 4, 3, 3, 4, 0, 0 }; シーケンス中で連続して同じ値が入っている各箇所について,2 個目以降は削除したシーケンスが欲しい,と…

Expression trees と .NET 風メタプログラミング

あらあらあら - 東方算程譚 コンプレックスと戦う - Garbage Collection 複素数型を作る。 - HIRASE CONNECTION WK そういえば昔似たようなことをやっていた. 演算子に関するセマンティクスが保存される Generic 型生成 ― Expression Tree による実行時コー…

Visual Studio 2010 CTP を BITS でダウンロードするための PowerShell Script

Visual Studio 2010 and .NET Framework 4.0 CTP Feedback - Microsoft Connect 相変わらず RAR で 11 分割とか面倒なことをしてくれるので『Visual Studio 2008 beta 2 を BITS でダウンロードするための PowerShell Script - NyaRuRuの日記』再び的な. カ…

C# マニアが JIS X 3015:2008 を読むべき理由

『JIS X 3015:2008 とか互換性とか - NyaRuRuの日記』に「JIS X 3015:2008 のセールスポイント」として追記した. ジェネリクス周りの「注記」がとてもおもしろい.さすがに「注記」目的に買うには高いけど,こういう資料は貴重なので個人的には OK だったり…

JIS X 3015:2008 とか互換性とか

JIS X 3015:2008 の PDF 版を購入した JIS X 3015:2005 が改訂されて JIS X 3015:2008 になりました. 日本工業規格 JIS X3015 プログラミング言語C#が改訂 - Microsoft PressPass ウェブストアでも販売が開始されてます. JIS X 3015:2008 プログラミング言…

変数スコープの最後までオブジェクトは生きているという誤解

先日に引き続き,@IT 会議室突っ込みシリーズ. 未記入さんの書き込み (2008-10-01 21:41) より: バグではない理由: 参照していると、回収されません。Dispose は、メモリの破棄ではありません。 参照しているというのは fm2 のことでしょうか。fm2 はルー…

構造体とクラスの使い分け

@IT 会議室ネタ.内容は GC 絡み. 構造体とクラスの選択 - @IT Insider.NET 会議室 回答に妙に気になる内容がたくさんあったので少しだけ書いてみます.アカウント無いので. あと,同じサイトで以前こんな記事を書いているので,よろしければどうぞ的な. …

.NET Framework の基本クラスに対してソースレベルデバッグを行う方法 (オフライン編)

.NET Framework の Base Class Library (BCL) の一部*1はソースコードが公開されていて*2,Visual Studio 2008 のソースレベルデバッグに利用することができます. 公開されているソースコードの入手方法としては Microsoft のソースサーバを利用するものが…

Mono 2.0 の Expression Trees と HashSet を Xbox 360 環境に移植してみた (可能な範囲で)

ネタ元は『XNAにLINQがきた……が何に使えばいいんだこれ - ABAの日誌』. XNA Creators Club FAQ より. Can I use the new C# 3.0 features with XNA Game Studio 3.0? The new C# 3.0 language features are fully available for all platforms in the Beta…

.NET Generics の variance サポートと曖昧性

ワイルドカードが欲しい - 予定は未定Blog版 を読んでちょいと気になったこと. まず基本..NET の型システムは,以下のような型を許す. public interface ICountable<T> { int Count{ get; } } public class MyCollection : ICountable<string>, ICountable<FileStream> { int ICo</filestream></string></t>…

LL Future, tracing jit, IBM Java Just-in-Time Compiler

寝過ごして事実上午後から参加の LL Future.終了後は,さくら水産にてみなさんと晩ご飯.魚類は控えめ. そろそろ寝ないとまた明日(というか今日)も寝過ごしそうなのですが,記憶が飛ぶ前に tracing jit 絡みの話だけメモ. 要は私が読み飛ばしていた omo …

CoreCLR 一区切り

MSDN Magazine August 2008 の CoreCLR 記事を読む限り,次の 3 年後がそろそろ始まるみたいな感じですな. CoreCLR エンジンの秘密 CoreCLR の設計は、2005 年 10 月に CLR の Version 2.0 をリリースした直後から開始され、サイズと互換性の 2 つの設計目…

Dynamic Compilation - WPF Shader Effects

Shader Effects BuildTask and Project Templates .NET Framework 3.5 SP1 では PixelShader 2.0 を用いてポストエフェクトがかけられるようになりましたが,ユーザ定義エフェクトの作成は少しややこしい準備が必要です.この作業を簡略化するカスタムビルド…

.NET Framework 2.0 で LINQ を使う方法

PseudoLinq 〜 .NET Framework 2.0 上で LINQ を使おう - u_1rohのカタチ 株式会社カタッチ / 製品 / PseudoLinq うわー,うちの『C# 3.0 による .NET 2.0 アプリケーション開発 - XNA で LINQ を使おう - NyaRuRuの日記』がご迷惑をおかけしたようで.id:at…

Xbox 360 における XNA ゲームのセキュリティモデルは,.NET のサンドボックスではなくハードウェアの非特権モードによるもの

unsafe コードで色々。 - a4lg の準技術的日記 (縮小運営中) を読んで,XNA CLR ゲームが非特権モードによって保護されていることを思い出した.実は XNA CLR 自体はサンドボックスの役目を果たしていない. その点で言えば,先日の『Secure coding は Micro…

戻り値の型の推論

お.これは懐かしい話題. 前から書いているがDictionary<List<Abrakadabra>, IEnumerable<Abrakadabra>> dic = new Dictionary<List<Abrakadabra>, IEnumerable<Abrakadabra>>(); はDictionary<List<Abrakadabra>, IEnumerable<Abrakadabra>> dic = new(); で書きたいんだよな。って、C#3.0ではvarキーワードと型推論が使えるから短く書けるのかな? (まだあ</abrakadabra></list<abrakadabra></abrakadabra></list<abrakadabra></abrakadabra></list<abrakadabra>…