« LINQ独自拡張時の遅延実行 | トップページ | Expression Web 2の第一印象 »

2008年6月 9日 (月)

VB2008ではインターフェースにメソッドを実装できます

VB2008には言語自体に新機能がたくさんあるので、いまだに新しい発見をします。

先日、インターフェースにメソッドを定義する方法があることを発見しました。次のコードは有効なコードです。

Dim s As INullPulg
s.Say()

もちらんINullPulgはクラスではなくインターフェースですよ。インチキはしていません。

上記コードを動作させるために全体のコードも紹介します。

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim s As INullPulg

        s.Say()

    End Sub
End Class

Public Interface INullPulg
End Interface

Public Module ExtensionModule
    <System.Runtime.CompilerServices.Extension()> _
    Public Sub Say(ByVal plug As INullPulg)
        MsgBox("こんにちは!")
    End Sub
End Module

Windowsフォームアプリケーションにこれだけ書けば実際に試せます。

要は拡張メソッドを使っているのですがインターフェースにも拡張メソッドを持たせられるということがちょっと驚きです。このことがどう影響するか今後じっくり考えてみたいです。

この例ではINullPlugを実装したクラスにも自動的にSayメソッドの「実装」が備え付けられます。内部的にはどういう仕組みになっているんでしょうか?一度ILを解剖してみたいです。

このことに気がついたのはLINQで使用するメソッド(LINQの演算子)がIEnumerable(Of …)の拡張メソッドであるという話をよく考えてみたことがきっかけです。

|

« LINQ独自拡張時の遅延実行 | トップページ | Expression Web 2の第一印象 »

コメント

もう理解されてるかもしれませんが、Extensionはメソッドを実際に増やすものではなく、仮想的に追加するだけですよ。
この例についていうと
  s.Say() → Say(s)
のようにコンパイル時にSub,Functionの第一パラメータに渡される形で置き換えられます。

投稿: 通りがかりの者 | 2009年2月17日 (火) 16時10分


http://komachin.anusu.net/Fkt3HIV/

言われるがままにお姉さんのお人形になったら6万もらえたー(・∀・)
イった後にお姉さんの乳首に精子トッピングしてあげたら
片乳ずつもの凄い勢いで舐めてオイシイって言ってたwwイミフwwwww

投稿: おおおっぉぉっぉおおああwww! | 2009年5月21日 (木) 03時53分


スカート脱がして足開かせたらパ ン ツからモ ロに具がはみ出てたよwwwww
既にず ぶ 濡 れだしwwwwwwwww

常にヤ ル 気まんまんすぎな女だし、仕方ないから即 挿 入してやったら
30分で女の子満足しちゃった(^^;

俺的にはもっと楽しみたかったけど、6 万もくれたし欲張っちゃダメだよな?w

http://ketsu.arctries.com/mroaj78/

投稿: ちょwwwwwwww | 2009年9月 9日 (水) 15時50分


うっひゃーはひー!!!!!!!!
初 体 験 は是非巨 乳ちゃんと決めてたけど
ましゃかほんとになるとわ思ってなかったわwwwwwwww

てかリアルに俺の顔じゃ一 生 童 貞だろって自覚してたけど
これ楽勝すぎーーwwwwwwwwwwww

http://paipai.f-forward.net/bkvh9s6/

投稿: ふぇあっだぁおおおおあwwwwwwww | 2009年9月21日 (月) 20時29分


ちょwwっうぇっうぇうぇうぇwwwwwwww

なんかノリで遊んでたらその日にラ ブ ホにGOしたんだがwwwww
てか女が行きたがったみたいなwwwwww
朝までずっとチ ソ ポしゃぶってて超 ど 淫 乱なメスですた。。。

・・・おかげでちょっと皮がふやけたわwwwwwwwwwww

http://mesu.korakoracola.net/oaa0qcl/

投稿: おおおおぉぉぉぉおおお!!!! | 2009年9月26日 (土) 14時13分


キレーなピンクのまん個ばっかー!!!!!!!
まだ始めて一ヶ月だが、今んとこハズレ無しだぜぇ!ヽ(゜∀゜)ノヒャヒャヒャ
ここだけの話し・・・
じっくりクリ攻めしてあげたら約束の額より多めに貰えるよヽ(´ー`)ノ
とりまやってみてwwwww マジウケるくらい貰えるからwwwwww

http://hole.hotohototo.net/aflak1c/

投稿: イケイケどんどん!!!! | 2009年10月12日 (月) 02時41分


最近ヤってたのやめて今ココ使ってんだけど、こっちの方が話し早いわ(^^;
メールして5分も経たん内にホ テ ルGOだもんwwwwwww
ホ テ ル着いてとりあえずバ イ 部突っ込んだんだけど、
待ってましたー!!みたいな感じでよがりまくりwwwww
ここ感 度良くて名 器持ち多すぎwwww とりまヤってみそwwwww

http://pamp.gorioyaji.net/xt65cdu/

投稿: ここ一番!!!!!! | 2009年10月17日 (土) 22時12分


んーーーぅぅうぅうううもみもみいいいいい!

会った瞬間に「おぱいぱいー!」って言いながらワシワシ乳 揉んだら
相手も思いっきりティン コしごいてきてちょーノリノリだたよお!!!

ヤ る前から3 万くれて終わってからまた5 万くれたし何この魔法www

http://mata.yescompile.com/gtx3x4m/

投稿: やらねー奴バカだろ(^^; | 2009年10月28日 (水) 02時46分


昨日工 ロ カッコイイ系?の子ゲトったんだが・・・
手 コ キとデ ィ ー プ ス ロ ー トがパネェwwwwwwwww
ぶっちゃけ俺イ クまで30分はかかんのに5分でイ かされたし(^^;

んな事より、ゴックンしてくれたうえに5 万くれたんすけどwwww
これイミフなビ ッ チ多すぎwwwwwwww

http://mata.yescompile.com/o1x2sus/

投稿: 真面目人間涙目wwwww | 2009年11月 3日 (火) 15時43分


ぴゃー!!! お口ん中にたっぷり出してキタYO!!!

http://mika.acmahsjfms.com/9u86jty/

ずっと口あんぐり開けて待ってるもんだから
喉の奥に思いっきり当たって女の子ゲホゲホむせてたし(^^;
てか出した後すぐにまたおねだりしてきて懲りない女だったお(^ω^)

2回目は顔 射だったけどなwww(^Д^)ギャハハ!!

投稿: 精 液ぬらあああぁぁwww | 2009年11月 8日 (日) 22時19分


顔にべしべし俺もビシャビシャwwwwwww
http://morimori.menslip.com/2-ro5v3/

あっちょwwwいきなりごめwwwwwwwwwwww
おてんてんで女の顔ベシベシ叩きつつクリ子舐め舐めしまくったんだが
感度良すぎて即吹きでビビる俺ー!!(>_<)!!ナハナハ!!
いきなり吹くもんだからおかげで俺の顔面ビッシャビシャ(^^;

うれしすぎるだろがコンニャローバーローwwwwwwwww

投稿: キッッッターァァ!!! | 2009年11月13日 (金) 13時03分


移動するのが面倒だけど、着いた後は寝てるだけでいいしチョロいよな^^

http://rakuraku.nnstarterpp.net/io-2sj0/

てか俺さーこのところ人気出まくりだし
いつも8 万請求だけど14 万に上げてみたの!!!
なのに前よりも引張りダコなんだがwwww 何?高級感?イミフwwww

投稿: 金額パネェwwwwwww | 2009年11月17日 (火) 19時40分


こんだけ稼いだら神気取ってもいいだろwwwwwww

http://paipai.world-wife.com/z-s-5bo/


てか、ヤる事っつっても一緒に手淫して後は騎乗で
一方的に女に乱れてもらうだけなんだけどなwwwwwwww

今日もこれから5万稼いできやすwwwwwww楽すぎワロチwwwwww

投稿: ワタシハ神ダ | 2009年11月17日 (火) 19時58分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/197542/41484799

この記事へのトラックバック一覧です: VB2008ではインターフェースにメソッドを実装できます:

« LINQ独自拡張時の遅延実行 | トップページ | Expression Web 2の第一印象 »