2005-08-17
_ 委譲
プログラミング言語 C でいう関数ポインタ配列みたいなことは Microsoft .NET 環境ではどう書くのー と調べたらどうやらデリゲート( Delegate ) を使えばよさそう。
C のコード。
#include <stdio.h> int f0( int x ){ return x; } int f1( int x ){ return x; } int hoge( int x ){ return 0; } int( *funcs[] )( int ) = { f0, f1, hoge }; int main( int ac, char** av ) { int i; for( i = 0; i < 3; i++ ) printf( "%d\n", funcs[ i ]( i ) ); return 0; }
.NET で書く。Visual Basic .NET
正味の処理のクラスはこう。
Public Class Class1 Public Function w00(ByVal value As Integer) As Integer Return value End Function Public Function w01(ByVal value As Integer) As Integer Return value End Function Public Function hoge(ByVal value As Integer) As Integer Return 0 End Function End Class
デリゲートするクラスにはこう書いておく。
Delegate Function myd(ByVal value As Integer) As Integer Private Sub DoMethod() Dim c As New Class1 Dim ar(2) As myd ar(0) = AddressOf c.w00 ar(1) = AddressOf c.w01 ar(2) = AddressOf c.hoge For i As Integer = 0 To 2 Debug.WriteLine(ar(i)(i)) Next End Sub
_ 「地震波が集まってくる…きっとくる」
( inside out )
以下引用。
私が住んでいるのは静岡県沼津市。昨日の地震の後、地震研究中@東大地震研 氏に「東南海地震が起こった場合、御前崎から沼津にかけて地震波が集中するのではないか」と言われました。
なんだかとてもブルーになりつつ、地球シミュレータで計算された東南海-東海地震の揺れの様子を眺め直す。もちろん、さらにブルーになる…。ちなみに、沼津は伊豆半島の西(左)の付け根辺りです。川崎・東京の辺の人も一緒にブルーになってみません?
というわけで東海あたりで発生した地震波が東京方面まで来た場合をシミュレートした画像がある。
川崎や東京付近がものすごい高波なんですがー。
そんな私は川崎市民。
そして Oliver の日記 にはナマズの絵があった。
これは 全文検索システム Namazu のシンボルである。
なかなかうまい組み合わせだと笑ってしまったが不謹慎か。
[ツッコミを入れる]