C#を行うことになるだろう、多分。今日、はじめてC#の本を買い、なんと無償でダウンロード&インストールできるExpressEditionをインストールし、本を読んでいる。
MSVC/C++は10年くらいやってるからまぁなんとかかんとか大丈夫だろうと思ってはいるが、変わらないことがある。


ヘルプの日本語が初心者には絶対分からないように書いてあることだ。


Delegate クラスは、デリゲート型の基本クラスです。ただし、システムとコンパイラに限り、Delegate クラスまたは MulticastDelegate クラスから明示的に派生させることができます。デリゲート型から新しい型を派生させることはできません。Delegate クラスは、デリゲート型とは見なされません。このクラスは、デリゲート型を派生させるために使用されるクラスです。


どうする?これどうする??C#を触っていない方で、皆一読して「なるほどう」と思うのだろうか。もう年寄りなのだろうか。いや、年寄りだけど。若い頃だってわからんかったよ。

まあいい、とにかくこの宇宙からのメッセージを逐次翻訳しよう!
・Delegete「クラス」がある。
・デリゲード「型」がある。
・→システムとコンパイラは、Delegate/MulticastDelegateクラスから■■を明示的に派生することができる
→システムとコンパイラでない★★は、上記ができない。(■■と★★は何なのか不明。)
・デリゲート型から新しい型を派生させることはできない。
・Delegateクラスは、デリゲート型の基本クラスだ。
・Delegateクラスは、デリゲート型そのものではない(?「見なされない」)
・Delegateクラスは、デリゲート型を派生させるために使われる。

すまん。俺、ここでいうクラスと型の区別がいまいちついていないのだが。

わからんながらに噛み砕くとつまり、


・Delegateクラスからデリゲート型を派生する。
・デリゲート型からは何も派生できない。



あー・・・・そう・・・・、ってまだ全然本題じゃないじゃん!!!!

だが、とてもエントリークラスの試験とは思えない・・・
勉強サイトping-tがなかったら受からなかった。だが10月でプレミアム契約が切れる。
さて、俺は本当にその上のCCNPとか取りたいのかい?

まあ、資格はとってみないとわからない。

問題集のために、テーブルの行をシャッフルしようと思った。ランダム度合いなんぞ適当でいいので・・・・



以下に辿り着いたが、こんなんでいいのか。

でもFireFoxだけ。

IEでは動くことは動くが、ついでに空行が増える。


function randomize_row()
{
var tbl = document.getElementById("datatablebody");

var i = tbl.rows.length;

while( i-- )
{
var j = Math.floor(Math.random()*(i+1));
if( uai.ie >= 5.0 )
{
// FireFoxでこれを実行すると、なぜかその後VDSが落ちる。
// cloneNodeで何か壊してるんじゃないか・・・
if( i != j )
{
var tmpi = tbl.rows[i].cloneNode(true);
var tmpj = tbl.rows[j].cloneNode(true);
tbl.replaceChild(tmpi, tbl.rows[j]);
tbl.replaceChild(tmpj, tbl.rows[i]);
}
}
if( uai.firefox )
{
// IEでこれを実行すると、シャッフルは動くが、
// なぜかテーブルに空行が増えていく。
if( i != j )
{
tbl.appendChild(tbl.rows[j]);
//tbl.removeChild(tbl.rows[j]);
}
}
}
}