[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 05/09 22:20 / Filesize : 121 KB / Number-of Response : 531
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C#, C♯, C#相談室 Part48



1 名前:デフォルトの名無しさん mailto:sage [2008/08/23(土) 17:44:14 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
c++厨の嵐はスルー汁。

前スレ
[プログラム板] C#, C♯, C#相談室 Part47
pc11.2ch.net/test/read.cgi/tech/1214038282/

その他テンプレ>>2-5くらい

231 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 20:12:18 ]
>>230
仰るとおりなのですが、特にビルドなどの作業をしなくても、Debugに置いてあるDBが元に戻ることがあるのかと疑問に思いまして。。。
# ビルドをすれば当然出力フォルダに置いてあるDBファイルは上書きされるはずですが、今回の場合は単に実行をして、別の(Projectフォルダにある)DBの内容を見ただけなのですが…。

232 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:11:06 ]
>>231
解決したんだし、もういいだろ

233 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:14:58 ]
サーバエクスプローラで見た内容が違うのが疑問なんじゃなくて、
一度サーバエクスプローラで見ると戻ってしまうってこと?

それは俺も分からんわw


234 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:23:23 ]
エスパーが必要ですね

235 名前:216 mailto:sage [2008/09/08(月) 22:29:28 ]
一応解決したので、皆様ありがとうございました。

>>233
具体的には、サーバエクスプローラで該当するデータベースのテーブルを右クリックして、最新の情報に更新を行ってから実行すると、DBが初期化されて実行されます。
VSが何をやっているかわかりませんが、そういうものとして扱おうと思います。

236 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 22:52:14 ]
それはビルドした時に再度コピーされてるんだろう。
新しい場合のみコピーみたいな設定になってるだろ?
サーバエクスプローラで最新の情報に更新すると、何らかの事情でDBファイルが更新されるんだろうな。

237 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 10:06:54 ]
任意のMethodInfoをデリゲートにバインドしてDelegate.DynamicInvokeで呼び出したいのですが
引数の数が決まっていないのでデリゲート型をどう用意したらいいか悩んでいます。
・あらかじめたくさんのパターンのジェネリックデリゲート型を定義しておいてMakeGenericType
・デリゲート型を動的に生成する
くらいは考えたのですがもっとスマートな方法があれば教えてください

238 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 10:17:45 ]
Delegate.CreateDelegateでなにか問題が?

239 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 10:32:15 ]
CreateDelegateを使うためにはデリゲートの型を引数で指定する必要がありますが
最低でも戻り値の有無と引数の数がわからないとデリゲート型は定義できないですよね



240 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 10:45:38 ]
new Action(() => methodInfo.Invoke(obj, new object[] { ... }))
で統一とか

241 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 11:47:36 ]
ActionやFuncの範疇ならそれで。
それで足りないならそもそもデリゲートにする意味はあるのか?


242 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:31:38 ]
public Delegate GetProcAddress(string name, Type type)
{ return Marshal.GetDelegateForFunctionPointer(GetProcAddress(this.handle, name), type); }

DLLのラッパー作ってるんだけど、ジェネリクス使ってもっと簡潔にかけないかな?

public T GetProcAddress<T>(string name)
{ return (T)Marshal.GetDelegateForFunctionPointer(GetProcAddress(this.handle, name), typeof(T)); }

って書いても"CS0030: 型 'System.Delegate' を型 'T' に変換できません。"って言われる。

243 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:36:17 ]
(T)(object)Marshal.…

244 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 13:50:44 ]
enumとかdelegateとかで制約したいよねー

245 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 18:39:14 ]
Visual Studio のツールボックスウィンドウの中身の表示が変になったときに、
再構成して元に戻すためのコマンドがあった記憶があるのですが、
どうやるのでしょうか?

246 名前:245 mailto:sage [2008/09/09(火) 18:43:57 ]
だー、ツールボックスウィンドウを右クリックしてリセットでした。
メインメニューから行ったような気がして、ずっと探してしまいました‥‥
吊ってきます。

247 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:26:24 ]
Alt+tabみたいにタスク切り替えしたいんだけど、プロセスの起動や終了はすぐ見つかったんだけど切り替え方法が見つかりませんDllImport使ってもいいからC#で可能ですか

248 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:28:32 ]
はい。

249 名前:デフォルトの名無しさん [2008/09/10(水) 11:22:59 ]
テーブルレイアウトを使ったコントロールを作成しているのですが、
デザイン時に、配置しているコントロールを選択状態にする、
というのは可能でしょうか。

スマートタグから処理を呼び出して、テーブル内のコントロールを
全て選択した状態にしたいと思っています。



250 名前:デフォルトの名無しさん [2008/09/10(水) 19:22:14 ]
FindDialog(検索画面)表示時のIMEモードを変更させるにはどうすればよいでしょうか・・



251 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 20:31:55 ]
>>216

解決した、って本人が言ってるんだからもういいだろ、っていわれそうだけど(w
>>236 をもう一度確認すべし。

ここら辺でも、同様のこと言ってるし
ttp://www.ailight.jp/blog/unaap/archive/2005/12/07/10249.aspx

252 名前:216 mailto:sage [2008/09/10(水) 21:05:45 ]
>>251
わざわざありがとうございます。

> 何らかの事情でDBファイルが更新される
ということで、自分の中では解決していました。
# リンク先では同じような悩みを持っている人がいるということで、勉強になりました。

返信ついでに質問させてください。
リンク先で、「デバッグで更新した後に、デバッグフォルダ内のDBを見れば、更新はされているんですけどね。」
とありますが、単体のDB(SQLCEなので.sdfファイルですが)のDB内を覗くツールというのはあるのでしょうか?
もしあれば教えていただけると嬉しいです。

253 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 06:07:57 ]
>>252
www.atmarkit.co.jp/fdotnet/joyofprogram/20080701devssce/devssce_02.html
サーバー エクスプローラーでいいんじゃ?
あるいはSql Management Studio?

254 名前:216 mailto:sage [2008/09/11(木) 15:35:39 ]
>>253
ありがとうございます!
早速試してみたいと思います。

255 名前:デフォルトの名無しさん [2008/09/11(木) 16:46:23 ]
Linq to XML を使っているのですが、ネームスペース定義が大量に出現して、XMLファイルが肥大化して困っています。
XAttribute を使ってネームスペース宣言をルートエレメントでやっておけば、小さくまとまる事が判ったのですが
自動的につけるようなオプション等の機能というのはないのでしょうか?

# C#のジェネリックスは、実はType型の引数が余分にあるだけで実質中身一緒なんだな、自作シリアライザを作っていてビックリした。
# なんにもできない訳だ・・・
# 逆にこういう構造なら<>の中にType型オブジェクトも指定できるようにして欲しい。
# リフレクション使ったら Type 型引数版と、ジェネリックス版で似たようなコードの山になっちまった orz

256 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:14:28 ]
>>255
↓見たいなコード書いたら、ネームスペース宣言最上位エレメントにしかつかなかったぞ。

new XElement(ns + "tests",
new XElement(ns + "test",
new XAttribute("a", "1")),
new XElement(ns + "test",
new XAttribute("b", "2")),
new XElement(ns + "test",
new XAttribute("c", "3")),
new XElement(ns + "test",
new XAttribute("d", "4"))
))
ちゃんと全部に ns + つけてる?

257 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 21:16:09 ]
>>255
# コメントの部分に関しては、
<> の中身が値型の時にboxing/unboxing発生しないとか、少々特殊なこともしてる。
キャストが発生しないってのがgenericsの利点の1つだから、動的に型指定すると利点なくなるし。

258 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 22:38:03 ]
MakeGenericTypeやMakeGenericMethodというのがあるよ
うまく使えば、素直にやったらILGeneratorとか使わないといけないようなコード生成が
簡単にできる場合がある
動的にダウンキャストするとかね

259 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 08:12:53 ]
>>256
static XName ns = ...;
として一か所にまとめています、これをやめるのは・・・かなり嫌かも

>>257
すみません、言葉不足でした定義時に使えないのは当然です、使用する側の問題でした。
object ins = new MyType<typeof(int)>() ;
my_ins.Func<typeof(int)>( ... );
といった使い方です。

>>258
これが効率よく利用可能になるためには
typeof<T>(List<T>)
といった感じで型の適用前の型を取得できる機能が欲しいですね、元になる型を探るのが超絶に面倒くさかったです。
ダミー型引数とGUIDからそれらしいものを探し出しましたよ・・・
それと、memberInfoOf( 型.メンバ ) とかも欲しいです、文字列でメンバを指定していてリファクタしたら沈没した orz



260 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 08:46:14 ]
>>259
オープン型はtypeof(List<>)で取れる
引数が複数ある時はtypeof(Dictionary<,>)

261 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 08:47:15 ]
>>259
・Linq のほうはなんだその ns って。Namespace なら XNamespace やし
静的にしたところで変わらんし…
・Type type = typeof(List<>);

262 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:01:44 ]
>>259
>memberInfoOf( 型.メンバ )
デリゲートのオブジェクトを作ればDelegate.MethodプロパティからMethodInfoは取得できるよ

263 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:32:55 ]
>>259
リフレクションでLIST<T>からList<>もってくるのあったろ。GetGenericsContain?うろ覚えだが。
そういう話とは違う?

264 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:35:11 ]
>>262 >>260
そういう風にできるんだ、助かりますた
ところでフィールドやプロパティーについてのそれはないですかね?


265 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:36:28 ]
>>263
GetGenericTypeDefinitionだね

266 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:44:30 ]
HTTP、SQL Serverと通信するGUIアプリケーションを作成しています。

try{ 例外の起きるコード }catch(SomeException e){}... としたとき、
VS上から実行すると例外が正しくキャッチされるのですが、
直接実行ファイルから実行すると例外をキャッチしてくれません。

発生するすべての例外について起きているのですが、何か原因等考えられるでしょうか。

環境は、Windows XP SP3、VS2008 SP1、Release/Debugビルド共です。

よろしくお願いします。

267 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 20:47:26 ]
キャッチされてないことはどうやって判断したの?
あとtryやcatch書いてるのはどこ?
ひょっとしてMainだったりする?

普通の処理の流れでキャッチされないってのはまず考えられない。

268 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:09:00 ]
>>267
キャッチされてないと判断したのは
・VSから実行するとcatchしてエラー内容をdumpしてくれる
・実行ファイルから実行すると「ハンドルされていない例外が…」と表示される
という部分です。

例外をキャッチしてるのはMDI親フォーム内の子フォームをShowする部分です。
もしかしたらスレッドが別に生成されたかと思ってデバッグ→ウィンドウ→スレッドを開いてみても特にスレッドが生成されてる様子はありませんでした。
もちろん、明示的にスレッドは生成していません。

269 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 21:11:21 ]
catch( SomeExpection e ) {
MessageBox.Show(e.Message)
}



270 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 22:57:10 ]
そりゃ無理
ThreadExceptionを調べてみな

271 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 23:20:32 ]
よくわかんないけどモードレスダイアログって別スレッドではないの?

272 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 03:04:42 ]
WebBrowserを使ってフレームページを扱っているんだけど
Browser.Document.Window.Frames[0]のフレームに
<A HREF="javascript:ShowFrames('11')">全表示</A>
っていう記述で貼られているリンクをクリックした動作をしたいんだが
NAMEがないからGetElementsByNameが使えない.

Javascriptを直接実行しようと思って
ttp://web.sfc.keio.ac.jp/~shokai/archives/2007/01/cs-webbrowser-javascript.html
を参考にしながら
Browser.Url = new Uri("javascript:" + Uri.EscapeDataString(@"ShowFrames('11)") + ";");
としてみたけどランタイムエラー(オブジェクトを指定してください)
とでます.

なにかいい方法はないでしょうか,
あとオブジェクトの指定ってどのことを指してるのか教えてもらえませんでしょうか.

273 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 07:28:50 ]
レベルの低い質問で申し訳ないのだが、生成したファイルパスが有効な書式(ファイルが存在するとかそういうのは無視)
かどうかを検査する方法ってないかな?無効な文字列を含んでいないとかそういうの。
正規表現自作で弾くか、DirectoryInfoやFileInfoのコンストラクタにそのファイルパス渡して、例外をキャッチしなかった
おkとか。そういうのしか思いつかないんだが・・・どうだろう?

274 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 09:55:19 ]
File.Exists

275 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 10:18:25 ]
C丼

276 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 12:32:53 ]
>>273
「有効な書式」ってのが多数のこんがらがった条件受けまくり
なので実質それしかないです。はい。
一応使えない文字レベルなら GetInvalidPathChars あたりで
取れるが…色々保障されてません

277 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 13:28:33 ]
正規表現は以前やってみてキツかった記憶が

278 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 13:49:38 ]
Path.CheckInvalidPathCharsとかPath.NormalizePathあたりを参考にするか
面倒くさければそのまま呼び出しちゃえば

と思ったけど、FileInfoコンストラクタやPath.GetFullPathでも最終的には
Path.CheckInvalidPathChars, Path.NormalizePathに行き着くようだ

279 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 14:07:15 ]
考え方を変えてみたらどうだろう。

パスが無効であることを確実に検査するメソッドを作ることは難しいが、
パスが有効であることを確実に検査するのはそんなに難しくない気がする。

何をいっているか分かりにくいかもしれないけど、
要はそのメソッドで「無効」と判定されたパスが実際には有効なパスである場合があっても、
それは許容することにするってこと。

Winのそれより厳しいルールを適用する、と言い換えてもいい。



280 名前:デフォルトの名無しさん [2008/09/13(土) 17:01:59 ]
>>272

Document.LinksからinnerTextが「全表示」であるaタグを拾えばまず
HtmlElementとしてリンクが取得できる。
そのHtmlElementでinvokemember("click")すればいけるんじゃないか?



281 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 18:40:29 ]
>>270
ありがとうございます。
無事例外発生時にイベントハンドラを呼び出せるようになりました。

282 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 22:57:47 ]
C#だとforやforeachで宣言した変数が、ブロック外まで有効なんだな。
C++みたいにブロック内に閉じ込めてくれた方が好きなんだが、どうしようもないんかな?

283 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 23:19:33 ]
いやいや、ブロック内だぞ。

ブロックでるときにデストラクタ呼ばれないという意味でならそうだけど。

284 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 23:22:20 ]
>>282
そんな仕様は旧VBぐらいだと思うけど。
まあ現VB.NETにも一部引き継がれているようだが。

285 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 23:27:22 ]
ブロック外では使えないけども、
ブロック外で同じ名前の変数を宣言できない仕様にはなってる。
バグの原因だからいっそのこと禁止してる。

for (int x = 0; x < 10; x++)
{
int y = 0; // この y をブロック外から参照できはしない。
}
int y = 0; // これは確かにエラー。


286 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 23:59:40 ]
いや、それはシャドーイングの禁止、つまり、外のスコープに存在する変数を内側で再宣言できない制約だよ。

287 名前:282 mailto:sage [2008/09/14(日) 00:30:15 ]
for(int i = 0; i < N; ++i) { }
int i;

これがダメだったから外に漏れてるんだと思ったが、そういうことか。

288 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 00:50:37 ]
それは特例というか救済措置。


289 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 02:01:43 ]
>>274-279
多忙な中、お答え頂いて感無量です。
GetFullPathを利用することにしました。
ありがとうございました。



290 名前:デフォルトの名無しさん [2008/09/14(日) 23:06:02 ]
viライクな操作形態にしたいんですがやり方有りませんか?
補完機能は便利なんで、補完機能そのままに操作形態をviライクにする方法教えてください。


291 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 23:07:15 ]
うぜえ氏ね

292 名前:デフォルトの名無しさん [2008/09/14(日) 23:32:27 ]
下記のサイトのサンプルを使って2台の映像を表示とキャプチャをしたいのですが、
どのようにすればいいのでしょうか?

mobiquitous.com/programming/usbcamera.html

293 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 23:37:22 ]
お前には無理。

294 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:06:07 ]
昨日あたりからC#はじめたものなのですが、とっかかりとして、
簡単な例として典型的な図形クラスつくってみているところです。
以下のように書いてAreaを取得する関数はどうやってかけばいいんでしょうか?
DoubleとT型が違うんでだめじゃ!とおこられます。(T)Math.PIもやってみたが
だめでした。例では、Cylinder<float>, Cylinder<double>での使用を考えています。


class Cylinder<T>
{
protected T r;
protected T h;

public Cylinder(T _radius, T _height)
{
this.r = _radius;
this.h = _height;
}

public virtual T Area()
{
T area;
area = 2 * Math.PI * r * r;
return area;
}
}

295 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:08:47 ]
>>294
ジェネリクスはテンプレートとは違うからそういう用途には向かないよ。
まあ今回の場合はとりあえずキャストしとけばいんじゃない?

296 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:09:18 ]
C++のテンプレートと違ってそういうことは無理。

297 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:11:47 ]
>>294
そういう風には現状使えない。
Generics != Template

…まぁ抜け道はあるんだがそれを話すにはここでは
スペースが足りない

298 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:13:08 ]
そうなのですか。。。残念。結局、Volume、Area等の計算は別にだすしかないのかー
でも普段使うクラスのどっかにfloat,doubleと違うのが入り込んだら
他の汎用的に書いたクラスの汎用性を著しく妨げる方向に働くのが
いやなんですよね><

299 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:15:58 ]
C++/CLIを…



300 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:19:46 ]
結局C++にもどれっていうのかいw

301 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:25:49 ]
>>298
double間と暗黙の型変換できるようにしたりT同士の四則演算子を定義したりした
doubleやfloatのラップクラスを用意しておけば出来ないことも無いけどね。


302 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:28:54 ]
>301
やるしかなさそうですね。今がんばってそこまで学習しておくのも手かとおもいますが
なに分まだ舐め終わってないのでもうちょいいってから戻ってきてみます。

とりあえず、ここは、
public virtual double Area()
{
return 2 * Math.PI * (double)(object)r *(double)(object)r;
}
みたいにdouble返り値でつくっておき次へいきます。
(実際の使用時に、floatには自動的にキャストされるだろうと。)

303 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:29:25 ]
>>301
そしてそれの内部は LCG か Expression Tree あたり使うって感じだな


304 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:39:04 ]
ExpressionTreeおもしろそうですね。でも3.0からの機能みたいなので2.0の学習が一段落したら
みてみます。LCGは難しそう。1回機能全体みたら、中間コードの出力しらべながら学習してみます。

305 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:45:42 ]
>>304
ttp://d.hatena.ne.jp/NyaRuRu/20060802

理論的には簡単に出来るはずだから誰かやってねーかなぁと思って
ぐぐったら、やっぱり NyaRuRu 氏が取り上げてた
2.0 考えた LCG 版でも書いてみようかなぁ

306 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:55:32 ]
おー、いいサイトですね。ありがとうございます。
今このスレでおきた事象は、デザインパターン化できそうです。
『PublicBrainStorming Pattern』

Aが解決できないPという課題を公開する
ObserveしているB、C、D、… が解決案か、ヒントを出す。
Aを含めてPを一個すすめたP´という課題をだすというようにして
解決にむけて相互作用しながらすすめていく方式。
似ているパターンいくつかありますが、微妙にちがいますよね。

307 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 02:56:34 ]
>>305
ただし、NyaRuRu さん本人も言ってるけども、
LCG なんて最後の最後、よっぽどせっぱつまった時の奥の手よ。
書くのも大変だし、メンテはもっと大変。

動的コード生成の類は C# 4.0 で動きがありそうなんで、
それまで待った方がいいと思う。

308 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 04:25:27 ]
>280
おそまきながらありがとうございます.
おかげさまでうまくいきました.

309 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 04:44:29 ]
どういたしまして



310 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 05:42:11 ]
>>305
その記事微妙に勘違いしてる部分がある
そのままでも動くんだが組み込み演算/ユーザ定義演算で場合分けは不要
IL見れば分かるけど、内部にGetUserDefinedBinaryOperatorOrThrowというようなメソッドがある

ほぼすべての演算を定義した構造体をなんとなく作ったけど、あまり使ってないな

311 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:41:54 ]
というか今書いてみてるんだが、そもそも組み込み型は
固定なのでそれを固定でメソッド化していくと結論として
LCG も Expression Tree もいらね。

312 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 06:46:59 ]
作ったこと無くて言ってる奴がおるなぁ(・∀・)クスクス

313 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 09:57:28 ]
気色わる

314 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 14:00:45 ]
頭わる

315 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 15:52:26 ]
わる

316 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 16:07:44 ]


317 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 16:43:38 ]
 

318 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 17:42:41 ]
>>565
10kg10回が限界なら、12kg5回が限界。20kgなら1回。

319 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 17:46:26 ]
どこの誤爆か聞こうか?



320 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 17:50:14 ]
>>319
ああ、ごめん、筋トレスレ。いかんな。
今日も昼飯食わずにトレーニングしてたら倒れそうになって、
嫁さんに脳トレもしとけと諭された。

321 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 04:31:38 ]
>>297
フェルマー先生乙

322 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 12:02:22 ]
>>305
これ、いちいちExpression Treeなんか使わなくてもCreateDelegate使えばいいじゃん
プリミティブ型に関しては別扱いでそれぞれあらかじめメソッドを用意しないといけないけど

323 名前:322 mailto:sage [2008/09/16(火) 12:12:01 ]
DelegateクラスのCreateDelegateね
リフレクション経由の呼び出しが無くせる

324 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:11:46 ]
そりゃ「できる」だろう。
だれもその目的ではExpressionTreeを使わなきゃできないなんて言ってない。

つか俺は遊びでやりかけて止めた。
単にわざわざメソッドいっぱい作るの面倒臭かったから。


325 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:14:22 ]
あれ?CreateDelegateいったっけかな?忘れちまった。


326 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:31:55 ]
型関連でコード生成が必要な時って
LCG使わなくてもMakeGenericTypeとCreateDelegateで結構いろんなことできるよね

327 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 14:47:21 ]
ジェネリックと+-*/のような演算子が相性が悪いということで、
どうするかって話だったと思うけど。
MakeGenericTypeとCreateDelegateで何とかなるの?

328 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 15:03:20 ]
もちろん強引にしかできない

329 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 15:05:24 ]
+演算子を使うためにはop_Additionという名前のメソッドを呼び出す必要がある。
もちろんリフレクションを使えばMethodInfo.Invokeで呼び出せるんだけどすごく遅い。
そこで、デリゲートにそのメソッドをバインドしてしまえば、通常のデリゲート呼び出しと同じ
オーバーヘッドで呼び出せるわけ。CreateDelegateを使えばMethodInfoからデリゲートが作れる。



330 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:01:56 ]
すいません。質問です。
スレッドにてSuspendとResumeを使用しているのですが
使用しないでくださいとMSDNにあります。
そこで代わりになるようなのを見つけようと思ったのですが見つかりません。
Suspendのような、特定メソッドが呼ばれるまでスレッドを待機させると言う事は出来ないのでしょうか

331 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 17:29:13 ]
>>329
たしか、基本データ型はop_色々を実装していない。
勿論ユーザー定義型の演算子なら大丈夫だが不便。

struct Int32 : IAdd<Int32> ... とかすればいいのにとか、この設計は凄くイライラする。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<121KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef