著作一覧 |
Object getObject() { return new Object[] { "a", "b" }; }とした場合に、クラス名の[Ljava/lang/Object;を配列と認識せずに処理してたのを修正。
パッケージミスしてました。すみません(2回目だ)
ついでというと変だけどrjbも1.0.1に更新。
で、なぜパッケージミスなんてするのかと言うと、Visual Installerの設定方法にあって、安全にやるには、常に全部削除−全部登録が必要だけどそれが遅くてGUI操作ではやってられないというのが理由。
でもそうも言ってられないので、次回からは我慢するか、なんか方法を考えるか(*)で対応予定。
もしかすると、目検はしてるけど他にもコピー漏れがあるかも知れませんので、気づいたら教えてください。
*)考えたぞ。リストボックスを指定すると、その中に入っている文字列をコンソールにリダイレクト(じゃなくてもコピペ可能なようにEditコントロールへコピーでも良いか)するバッチ操作可能なツールを作れば良いのだな。
ツリーコントロールの先頭から順にたぐりながら、右側のリストボックスペインの内容を取得していくようなやつ。
#追記:というか、単にインストールが終わってから元のツリーとの差分を表示すりゃいいだけだな(外部拡張ライブラリは別)。
using System; public class Ano { delegate string f(); static void hello(f fun) { Console.WriteLine(fun()); } public static void Main() { hello(delegate { return "Hello"; }); } }匿名メソッドは
primary-no-array-creation-expression:――(C# Language Specification 2.0, March 2005 Draft)
…
anonymous-method-expression
anonymous-method-expression:
delegate anonymous-method-signature(opt) block
anonymous-method-signature:
( anonymous-method-parameter-list(opt) )
anonymous-method-parameter-list:
anonymous-method-parameter
anonymous-method-parameter-list, anonymous-method-parameter
anonymous-method-parameter:
parameter-modifier(opt) type identifier
using System; public class Ano { delegate string f(); static void hello(f fun) { Console.WriteLine(fun()); } public static void Main() { double d = 3.5; hello(delegate { return d; }); } }をコンパイルすると
ano.cs(11,9): error CS1502: 'Ano.hello(Ano.f)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。 ano.cs(11,15): error CS1503: 引数 '1': '匿名メソッド' から 'Ano.f' に変換できません。とエラーになる。
using System; public class Ano { delegate string f(); static void hello(f fun) { Console.WriteLine(fun()); } public static void Main() { double d = 3.5; hello(delegate { return d.ToString(); }); } }戻り値の型がstringになった=fの定義と一致ので、これでコンパイルが通る。
ジェズイットを見習え |
書くのを忘れていたのですが、_invokeで引数に配列が含まれるとき、配列引数の値がnilだと「can't coerce to object array」というエラーになっていたので、手元ではとりあえずr2*arrayの型チェックをしているところで悉く<br> else if (NIL_P(v))<br> {<br> return NULL;<br> }<br>としたら動作しています。
空配列使って欲しいとは思うけど取り込みます。
リリースはしないけど、直しました。<br>http://rubyforge.org/plugins/scmsvn/viewcvs.php/?root=rjb<br>(_invoke使わなくても引数の数が合っていればOKにしたのと、最初の配列のネスト検証時にチェックを終わらせるようにしました)<br>svnから抜くか、rjb.cを上のURL経由でダウンロードしてください。