中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

C#5に求めるもの

最近やってるC#4のセッションと、えぴさんのエントリ( http://blogs.wankuma.com/episteme/archive/2009/01/27/166871.aspx )を混ぜて要望を正確に書いてみました。

 

1.ダックタイピング

前提

public Interface IDuck { string Talk(); }
public class dog{ public void Talk(){ return “bow”;}}

利用1

IDuck duck = x DynamicAs new Dog();

利用2

void Method( dynamic IDuck duck );

利用3

void Method([Contract.Dynamic(IDuck)] IDuck duck)

求める意味

Genericsで解決出来ない継承関係にないものやインターフェイス実装していないもの同士の、処理の共通化を計るために必須。

Templateで出来てGenericsに出来ないものの補完の意味合いもこめて。

2.限定的多重継承

前提

public class A{void A(){…}}
public class B{void B(){…}}

利用方法1

public class C : public A, private b
{} var cc = new C();
var a = cc as A; //OK var b = cc as B; //NG(null)

利用方法2

public class C : public A, private IList<item> : List<item>{}
var cc = new C();
IList<item> a = cc as A;//OK List<item> b = cc as B; //NG(null)

求める意味

長大なインターフェイスの実装の単純化、継承元は別のものにしたい場合などに有用。

Mix-In的な要望にも対応可能

3.フック(C#じゃないけど)

利用方法

MethodInfo mi = (typeof(System.Windows.Form.Window)).GetMethod("~~");
GlobalFook.Register(mi, GlobalHookFlag.Pre | GlobalHookFlag.Add , pre );
GlobalFook.Register(mi, GlobalHookFlag.body | GlobalHookFlag.Override , body );
GlobalFook.Register(mi, GlobalHookFlag.Post | GlobalHookFlag.Remove, post );

求める意味

Mix-Inにより情報を収集するなどの意味。

フックにより差し替えを可能にすることにより、標準機能の差し替えを行えるようにする。(メッセージボックスなど)

テストによるモックの作りやすさや、証跡の取りやすさなど

透過プロクシでは気軽さが少ないために、1テスト毎に証跡の差し替えなどをうまくコントロール出来ない。

投稿日時 : 2009年1月27日 15:27

コメントを追加

# re: C#5に求めるもの 2009/01/27 15:38 επιστημη

現仕様だと 行列とかベクトルとかの数値演算ライブラリが書けないやないですか。
演算子(+-*/etc.)に対するinterfaceないしDuck-typeしないから。
そこらへんが助かるかしら?

# re: C#5に求めるもの 2009/01/27 16:22 アキラ

スコープ内でのusingがほしいです。
(RAIIじゃなくて名前空間のほう)

# re: C#5に求めるもの 2009/01/27 16:28 επιστημη

あーなるほど > スコープ内でのusing
使いたいとこでちょこちょこっとusingさせろやゴルァですね。わかります。

# re: C#5に求めるもの 2009/01/27 16:41 アキラ

LINQ to HogeHogeをメソッドごとに切り替えたいんですよねー。

# re: C#5に求めるもの 2009/01/28 0:07 aetos

フックはHook…

# パーム社 pre 2009/01/30 5:11 これを見ろ!そして泣け~


バーススパを選ぶ前に
学期が始まる前にPre-sessional courseという6週間のプログラムがありますが、 これも文法やら発音やらというよりは、リスニング・ライティング・スピーキング・リーディングなどを中心としたものです。 もしも文法など基礎から勉強したいと考えている人 ...(続きを読む)
Apple vs Palm法廷闘争の可能性
たしかにあのPalm Preの動画をみればたいていの人は『iPhoneと同じだよね』って思うでしょうし、社員を引っこ抜かれて似たようなUIのデバイスを投入されて、仮にその売り上げが好調で、自社の販売に大きく影響を及ぼす、となればAppleも心中穏やかでは ...(続きを読む)
Pre/Vol.1/ご褒美やプレゼントならレビューチャdeアマゾン
Pre/Vol.1/人気通販サイトのアマゾン商品を手軽に検索できます。レビューチャdeアマゾンなら、あなたの欲しいものがきっと見つかるよ!(続きを読む)
Palm Confident That Pre Will Launch On Time | PreCentral.net
Palm Confident That Pre Will Launch On Time | PreCentral.net ごちゃごちゃあるけどPalm Preはちゃんと予定通り出す、とPalmの人がいうているらしい。 ただ「いつ」かを現時点でPalmは言及してないと思うので、on timeってのが一体いつなのかはわかっ ...(続きを読む)
読むならこちら
オシャレで意識の高い女性には、こちらよりも、Pre-mo (プレモ)とBaby-mo (ベビモ)のシリーズの方が向いているように思われます。 オシャレな育児グッズは、「セレブか!?」っていうような高価なものも載っていますが、それはファッション誌でも同じ ...(続きを読む)
2009年はあなたさまとご家族様にとって、 素敵な年でありますように ...
(^▽^ Pre福袋の名は伊達じゃないです★ なかなかこんな豪華なチャンスはないかも…! ★今までお買い上げになった商品と重複する可能性がございます ★当福袋の商品検品は海外基準となっております。アウトレット品が入る場合もありますが、質と上品さ ...(続きを読む)
mission...

タイトル
名前
URL
コメント