1 名前:デフォルトの名無しさん [2007/08/26(日) 12:42:25 ] (#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。 前スレ C#, C♯, C#相談室 Part41 pc11.2ch.net/test/read.cgi/tech/1184840053/ 過去スレは>>2-5 あたり。
532 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 18:43:40 ] >>531 本題とはずれるけど、C# 3.0 のラムダ式の話、 C# 3.0 は F# からいろいろ輸入したって話らしいから、 F# の(大元をたどればもちろん LISP の) quote 由来だろうね。 LISP だと、データとプログラムを区別しないってのを、 .NET Framework だと、ラムダ式を デリゲートに代入したときはプログラムとして、 Expression 型に代入したときはデータとして扱う というコンセプトみたい。
533 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 18:49:29 ] >>532 DLRも見てみると面白いよ。 ASTからILへの汎用変換エンジンになりつある。 CodeDOMは死相が出ちゃったけど DLRはRubyとPythonという目標がある以上、 ある程度のところまで作り込むんじゃないかな。 ちなみにExpression Treeの裏話。 ttp://d.hatena.ne.jp/siokoshou/20070709 ま た D o n B o x か !
534 名前:デフォルトの名無しさん mailto:sage [2007/09/10(月) 23:55:38 ] すんません。 HTML中で16進形式(5桁:ex."𠮟")で指定されたサロゲートペア文字を 正しく変換する楽な方法ってないですか? HttpUtility.HtmlDecodeだと、下位4桁までしか認識しないようで、困っております。 string s = HttpUtility.HtmlDecode("𠮟"); foreach (char c in s) Console.WriteLine(string.Format("{0:X4}",(int)c)); --出力(こんな値が入ってて欲しい)-- D842 DF9F --出力(でもこうなっちゃってる orz)-- 0B9F
535 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:07:19 ] 正規表現使えば
536 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:19:54 ] ども。"&"とかも"&"として取得したいんで、 できればメソッド一発でできたらなぁ、と思ったんですが、 やっぱそこだけ別に処理するしかないスかね。
537 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:29:04 ] 数値文字参照だけ置換してあとはHttpUtilityに任せる というのをひとつのメソッドにすればメソッド一発だよ
538 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 00:54:18 ] 気になったのでざっと調べた感じ、HTML4.01の扱える文字集合はISO/IEC 10646-1らしい。 いわゆるUCS-4なんだが、-1はBMPしか扱わないそうな。-2がそれ以外の文字。
539 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 01:32:11 ] BitmapオブジェクトがDispose()されたことをBitmapオブジェクトの外部から知ることはできるでしょうか。 ローカルメモリオブジェクト内のDIBをもとに作成したBitmapオブジェクトが破棄されるまではローカルメモリオブジェクトを解放せずにおき、Bitmapオブジェクトが破棄された段階でローカルメモリオブジェクトを解放するようにしたいのです。 DIBをマネージメモリにコピーしてからImage.FromStream()でImageオブジェクトを生成し、すぐさまローカルメモリオブジェクトを解放する、という方法なら安全確実なのですが、いかんせん遅いのです。
540 名前:デフォルトの名無しさん [2007/09/11(火) 05:44:01 ] >>503 >まあやっぱりJScript.NETのevalだな >myMethodは静的にすれば元アセンブリ参照で呼べるだろ やってみたけど無理でしたよ! やっぱりできないのでは? DLL側に public class MultiplyClass { public static long Multiply(long x, long y) { return (x * y); } } としてコンパイル、それを呼び出し側で参照の追加。 string exp = "MultiplyClass.Multiply(10, 5)"; Microsoft.JScript.Vsa.VsaEngine ve = Microsoft.JScript.Vsa.VsaEngine.CreateEngine(); long result = (long)Microsoft.JScript.Eval.JScriptEvaluate( exp, ve); そうすると 変数 'MultiplyClass' が宣言されていません。 結局、作成したクラスはスコープの範囲外でした。
541 名前:デフォルトの名無しさん mailto:sage [2007/09/11(火) 07:22:54 ] >>538 なるほど。HttpUtility.HtmlDecodeのバグというわけではないわけですね。 わざわざありがとうございます。