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


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

C#, C♯, C#相談室 Part42



1 名前:デフォルトの名無しさん [2007/08/26(日) 12:42:25 ]
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。

前スレ
C#, C♯, C#相談室 Part41
pc11.2ch.net/test/read.cgi/tech/1184840053/

過去スレは>>2-5あたり。

229 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:01:45 ]
>>228
さあ
無いと思えば無いんじゃね

性能はネイティブにゃ勝てんし
スクリプトみたいに手軽じゃないし
Javaみたいにwrite once, run anyware標榜してるわけでもねぇし

230 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:06:02 ]
正規表現ならTcl最強説

231 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:16:10 ]
>>228
一応言っとくが、自分で計算処理する分にはC#のがスクリプトよりは
格段に速いぞ
ネイティブのがさらに速いがw

自分の計算が主要なボトルネックになるタイプのプログラムかどうかが
一つのポイントだな
そうでないようなケースは案外多い

232 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:24:44 ]
エミュレートされた仮想CPU上で動いてる訳でもなし、C#ではそもそも
記述できない低水準の処理以外の部分でネイティブコードと速度に差なんて出ようがないと思うが。

233 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:25:22 ]
普通速度なんか気にする必要ないだろ
体感できるほど遅くなるアプリなら最初からネイティブしか選択肢ないし
そんなんめったに書くことない

234 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:25:22 ]
そもそもさぁ

早いとか、遅いとかって言ってる奴は、証拠のソースを出せよ

だってさ
PerlもPythonも、コンパイル時に正規表現のコンパイルと最適化をしている
C#やJavaは実行時
どうやってコンパイルと最適化に消費する処理時間を考慮するの?

235 名前:デフォルトの名無しさん [2007/09/03(月) 01:27:24 ]
>>233
速いことより、遅い方がいいことってあるのかしらん?


236 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:27:52 ]
実行時にネイティブにコンパイルされるといったって
C#は安全性を気にして余計な処理をしてるだろ
Cとかと比べたらどうしたって遅くなる

237 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:28:44 ]
>>235
速度の違いが体感出来ないならC#使ってもデメリットはない
プログラミングが楽になるからC#使った方がいいというわけだな



238 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:29:28 ]
>>232
そりゃJITだけどCにゃ負けるようだよ
shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all
これはMonoだが、Java Server VMの性能が参考になるだろう

239 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:32:20 ]
そもそも.NETで不満になるようなアプリってどれぐらいあるんだ?
大体.NETは実行スピードと生産性のバランスの中のひとつの解に過ぎないだろ

240 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:34:25 ]
.NETは計算速度はそんなに遅くねぇけど
起動がのろいのとGUIもっさりはどうしようもねぇな

241 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:36:40 ]
ソース出ないね
やっぱり法螺吹きか

242 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:37:14 ]
>>234
CLIランタイムをロードする時間に比べりゃ、正規表現のコンパイルにかかる時間など
微々たるもんだろw

243 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:38:13 ]
Win32のBitbltとか呼んでももっさりするかね?GDI+よりは早い。

244 名前:243 mailto:sage [2007/09/03(月) 01:38:59 ]
すまん。最後は疑問系です・・・(ノД`)

245 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:41:19 ]
>>243
DDBのblitはGDI+の10倍は速いらしいな
その時点でWinFormsだめぽ

246 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:45:05 ]
>>241
そんなに気になるんなら自分でためせばいいのに

以前俺が実験したソースをあげるよ
ttp://www.borujoa.org/upload/source/upload14325.zip

青空文庫のテキストを適当に置換するプログラム
inputというフォルダにサンプルの入力ファイルがあるが、300K程度の
サイズだから、気になるならデカくしてみるんだね

247 名前:デフォルトの名無しさん [2007/09/03(月) 01:53:14 ]
>>239
それはあくまで作る側の屁理屈

使う側からすれば、生産性なんてどうでもいい

あなたが、よく使うアプリケーションが次バージョンから.NETで書かれたらどう思う?
LightWaveが.NETなんかで書かれたら俺は間違いなくMAXへ移行する



248 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 01:57:26 ]
>>247
えーとね、生産性悪くなるとコストがかかるんだよ。
それは製品価格に反映されたり、次バージョンで実装される機能が少なくなったりすることになるんだよ。

249 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:05:21 ]
>>247
なんでアセンブラでつくらねーんだっていってみろ。


250 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:06:39 ]
まあ、問題は、場合によっては普通にLL言語にさえ後れを取る
C#がバランス上最適解かどうかだろうなw

251 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:06:52 ]
製品の値段に直結するぞ。
機能も少なくなるぞ。
品質が下がることもあるぞ。


252 名前:デフォルトの名無しさん [2007/09/03(月) 02:07:02 ]
けど、C#が使えないのは事実
C#しかつかないやつはVC++で開発してる部署に行ったらほぼ終わり

253 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:07:34 ]
>場合によっては普通にLL言語にさえ後れを取る
絶対にLL言語に遅れをとらない言語ってなんだよw


254 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:09:30 ]
VC++しかつかないやつは他の言語で開発してる部署に行ったらほぼ終わり


255 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:14:15 ]
>>246
・300kのIO速度の計算をスルー
・300kのSJISから内部コードの変換(UTF-16やutf8)コストもスルー
・(C#)2000行の無駄なnew StringBuilderとToString、+演算子置き換えで高速化

正規表現のベンチになってないよ

256 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:17:16 ]
>>255
うん、正確な正規表現のベンチのつもりで書いたのではないよ
それが求めるものなら自分でやってくれ

IO処理は「どの言語でも」やっている
ユニコードへの変換も「どの言語でも」やっている
オーバーヘッドの大きそうなフォーマット処理も、PerlやPythonでもやっている

概ね、カリカリに書かずに適当に同じレベルで「普通に」書きなぐったものだ
特に何かをひいきしたつもりは無い

そうやって書いたものが、スクリプトが案外速かった(C#より速い)ってのが
重要ね。

257 名前:256 mailto:sage [2007/09/03(月) 02:28:23 ]
ちなみにC++も三種類書いてみたが大して速くなかったね。
ソースを見れば分かるが、LL言語で書くよりずっと複雑でトリッキーで
エラーを産みがちなコードになるというのに。

こんな仕事はLL言語向きだ。他の解は馬鹿げている。そう思ったよ。
そして、そういう仕事は案外多いのだと思う。



258 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:37:29 ]
プロセスの生成負荷も考慮されてない…
C#、C++、Perl、Pythonではエンジンの起動時間は大きく違うし、
いくらなんでも、これで決めつけるのは早計だと思うが。

俺のPCでは、C#の方がPerlより速かったり遅かったりだった。
一瞬すぎて測れない。
Core 2 Duo E6600, 2GB, Win Vista
Super Fetchがどこまで効いているかはわからない。

明日kwsk調べようかな。

259 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:45:50 ]
正規表現の処理の話をしてるときにこれはない


260 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 02:46:28 ]
つうか試してないけどコンパイルしないほうが早かったりしてよw


261 名前:256 mailto:sage [2007/09/03(月) 02:54:56 ]
>>258
入力ファイルデカくしてみそ
二回目以降はキャッシュが効くし、入力が十分デカければ起動時間は誤差の範疇に
持ち込めると思うが
ちなみに俺の環境はXP、Pentium M(1.7GHz), RAM 500Mだからずっとショボい

>>259
純粋に正規表現エンジンの性能を計りたいんなら、そうだね
俺がやったのは、正規表現を用いた典型的なPerlの使い捨てスクリプトレベルの
仕事を各種の言語で書いてみた、それだけのことで、やっている仕事自体は
どの言語でも同じだよ

262 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 03:15:34 ]
せめてマッチ対象文字列は、メモリに確保しておかないとベンチにならんだろw

263 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 05:29:41 ]
起動が早い言語の勝負じゃないからな

264 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 09:15:08 ]
>161
ご回答ありがとうございます。

そんなことを頻繁にするかどうかは知らんよ。
俺がちゃんとわかってる人かどうかは
あんたが決めることじゃねえよ。スキルチェックでもしてくれ。

265 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 10:34:36 ]
プログラマーなんだから、C++とC#両方使えるようになろうや。

266 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 11:35:59 ]
C++なんぞ使ってると脳みそが腐るぜ

267 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 11:39:14 ]
C++使ってる奴がまだ居たなんて・・・



268 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 12:30:18 ]
C++は使えませんが、C++でできています。

269 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 12:58:35 ]
C++はC++でできています

270 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 13:29:49 ]
gccがgccでコンパイルできるようになりました、というのは結構画期的なことだったらしいが

271 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 14:01:15 ]
foreachループ変数が書き込み禁止だってことを今更ながら知ったのだが・・・
なんでこんな制限があるんだ?
コレクションに変更を加えるわけじゃないし問題ないと思うんだけど。

272 名前:デフォルトの名無しさん mailto:age [2007/09/03(月) 15:49:14 ]
C#で変数名に変数を使うやり方ってどうやるんですっけ?
test_i(i=1,2,3・・・)みたいな。

273 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 15:54:20 ]
配列を使いましょう

274 名前:デフォルトの名無しさん [2007/09/03(月) 16:06:14 ]
>>271
たとえば
string[] strArray = new str[]{"a","b","c"]
foreach(string str in strArray)
{
s="d"
}

ってやってもstrArrayには反映されない。

foreachの列挙子はIEnumerableの実装いかんによっては、何を
参照しているのか全く保障されない。
IEnumeratorは上記の例のようにコピーを返してくるかも知れない。
あと、IEnumuratorの実装クラスは「列挙」できればよく、要素の概念
を持たないものだってあるからね。
MSDNのIEnumerableのサンプルをみてみそ。

275 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:30:21 ]
>>271
「変数の使いまわし」ができないようにするのが最近の流行だから。
バグが減ると信じられてる。

276 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:36:34 ]
foreachって実際は

while(strEnumerator.MoveNext())
{
 string str = strEnumerator.Current;
 ...
}
こんな感じでしょ
代入しても無意味というか、元が配列だったりすると
書き換えられるという錯覚を与えかねない
というか配列のforeachは
for(int i = 0; i < strArray.Length; ++i)...
に置き換える最適化がされるらしいから
実際に書き換えられちゃうんでそうするとforeachの意味が変わっちゃう

277 名前:271 mailto:sage [2007/09/03(月) 16:55:47 ]
>>274
>>276
foreach変数ってIEnumeratorの実装に関わらずスタック上に置かれるものでは。
構文上もそこで宣言してるわけだし、直接書き換えられると誤解される余地もないと思うけど。

>>275
それで余分な変数を導入する方が場合によっては可読性が落ちると思うんだけどなあ。
というかforeach変数だけ禁止しても意味がないような・・・



278 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:01:33 ]
>>277
たしか、usingとかfixedとかで宣言した変数も使いまわしできないな。

279 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 17:55:02 ]
むしろforが例外か

280 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 19:45:58 ]
>>271は単に参照型と値型の区別がついてないというか、データがメモリにどう
配置されるかのイメージがつかめてないだけの気がする。
>>275は意味不明だと思う。

繰り返し変数はもとの変数のビットイメージのコピーであってもとの変数そのものではない。
これが理解できていれば271はそもそも愚問であって、こんな疑問は抱きようがないんじゃないか?

281 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 19:55:24 ]
その後の流れをちゃんと読めよw
271はforeachでコレクションの内容を変更したいんじゃなくて、例えば
//引数に与えられた値+2を返すメソッド
int Plus2(int value){
value += 2;
return value;
}
みたいなことをforeachの繰り返し変数でもやりたいんだろ

282 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:13:55 ]
int Plus2(int value){
return value + 2;
}
でいいじゃん

283 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:20:09 ]
なんという正論

284 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:20:50 ]
>>282 頭悪そうだな・・・

285 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:22:57 ]
まあ281の例えも悪いよ。
変に例える必然性なんて全然ないのにね。

286 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:24:32 ]
というか、+2と決めうちなのにメソッド作る意味があるか?

287 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:26:09 ]
281の方が頭悪そうだ



288 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:26:40 ]
>>271
あるいは逆にコレクションに変更を加えようとしてミスるプログラマが出るのを予防するためだな。

D言語ではforeachの制御変数には明示的にrefキーワードをつけないと、代入できないようになってる。

289 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:30:55 ]
それどんな感じで列挙子を実装するの?

290 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:33:54 ]
>>288
そんなアホグラマは正直無視でいい・・・
と思うのは俺だけ?

だってそんなこといったら仮引数だって変更不可にするべきじゃん

291 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:42:45 ]
>>289
int opApply(int delegate(ref T));というメンバ関数を実装する。
www.kmonos.net/alang/d/statement.html#ForeachStatement

>>290
Dでは仮引数にinキーワード(あるいは、finalキーワード)を追加することによって、仮引数への代入が制限されますよ。

要するに、最近は酔っ払いでも使えるような言語設計が流行っているのだ。

292 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 20:50:44 ]
フェイルセーフがあるのは結構な事じゃないか

293 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 21:01:28 ]
いつも酔っぱらってこーでぃんぐしてるからありがたい

294 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 21:45:38 ]
参照型の場合
foreach (Hoge h in Hoges) {
  h = new Hoge(); // はダメでも
  h.Member = 123; // は全然OKだから
あまりガードにはなってないよね。

295 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 21:55:27 ]
…なんか勘違いしてないか?

296 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:11:00 ]
>>295
なんかって何?一言主さん

297 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:13:01 ]
フェイルセーフがいいならC++のconstなんか真っ先に導入しなきゃダメだろ
キャッチしなきゃいけない例外も必要だろ
C#はそういうのが意図的に外されてるんだな
意味ないから



298 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:15:50 ]
VC++(2005)のMS拡張構文ではconstのあるなしで調整できるようだ。
// cl /EHsc
#include <vector>
#include <iostream>
int main() {
  std::vector<int> v;
  v.push_back(1); v.push_back(3); v.push_back(5);
  for each(int r in v) {
    r++; // OK
    std::cout << r << std::endl;    
  }
  for each(const int r in v) {
    r++; // Error
    std::cout << r << std::endl;    
  }
}

299 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:18:01 ]
>>297
いや、チェック済み例外は明らかに設計ミス。

300 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:21:40 ]
しかしネットワークなんかだと、
絶対に間違いが起きる可能性がある処理はあるわけじゃない
そういうのをどうやって実装すればいいの

301 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 22:27:25 ]
そんなのインテリセンスなりナンチャラペットの水準でサポートすれば
済むことじゃないの?

まあ、それ以前にドキュメントをちゃんとして欲しいよねw

302 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 23:09:05 ]
constもチェック済み例外も問題の根は同じ。不必要に実装に結び付く(透けて
見せる)シグニチャである点。


303 名前:デフォルトの名無しさん [2007/09/03(月) 23:15:15 ]
>>277

あんた、単なる素朴な疑問かと思ってたけど
真正のあほだな

304 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 23:16:10 ]
VC# ExpressEditionダウンロードしたんだけど
オフラインでMSDN見ることってできないんですか?

305 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 23:21:54 ]
ふらっとに行くべき

306 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 23:31:16 ]
>>302
意味がよくわからないから詳しく説明してくれ

307 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 01:41:01 ]
>>290に同意。費用対効果の低いフェースセーフ要らないぽ
constだので縛ってもバグは斜め上からやってくるね。
sealedつけてたのにsealed外されるとか。

foreachといえば、配列に関してはfor文と同等の速度が出ますが、こういう情報はどこにあるのでしょうか?
パフォーマンスガイドラインに重いループではforeachよりforって書いてあったので
わざわざ変えたのに・・悲しい。



308 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:21:04 ]
英語だけどパフォーマンスの話題はここが詳しいかな
msdn2.microsoft.com/en-us/library/ms998547.aspx
1.1に基づいてるからまだforが速いって書かれてはいるが・・・

msdn2.microsoft.com/en-us/library/aa137140.aspx
ここにもパフォーマンスの記事が結構たくさんあるね
特にKnow What Things Costは命令ごとのコスト表が載ってて面白いかも

309 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:52:52 ]
>>307
2.0だとforeachのほうが若干早くなってますね。
foreach (int v in ar) csum += v;
for (int i=0; i < 10000; i++) csum += ar[i];

これを下のように書くとforeachと同じスピードになるからそういう最適化をしてるのでしょう。
fixed (int *sp = &ar[0]) {
 int *ep = sp + 10000;
 for (int *p = sp; p < ep; p++) csum += *p + j;
}

ただ、foreachの制御変数が読み取り専用なのは、フェイルセーフのためなのか、
最適化のためなのかは判断がつきません。

310 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 07:54:38 ]
アンセーーーーーフ!!
なるほど、「処理を直接記述されると最適化できないが
抽象度を高くすると最適化しやすい」というやつか
forよりforeachの方が早い
LINQも早くなるという

しかしループ変数への代入を許すとこの最適化が出来なくなるわけか

311 名前:デフォルトの名無しさん [2007/09/04(火) 09:28:17 ]
アンマネージドのコードと同期をとりたく、
EventWaitHandle.Handle プロパティで
ネイティブのハンドルを取得しようと思ったのですが、
「古い形式です」と起こられてしまいます(警告)。
新しい形式ではどのように書くのでしょうか?




312 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 09:37:04 ]
>>311
MSDNにずばり書いてあるから、まず自分で調べるくせをつけろ。

313 名前:デフォルトの名無しさん [2007/09/04(火) 09:37:06 ]
あ、
EventWaitHandle.SafeWaitHandle.DangerousGetHandle()
でいいみたい。
Safeなんだか、Dangerousなんだか。


314 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 10:15:09 ]
>>313
DangerousGetHandle()は必要?
MSDNでは、
>このクラスを使用すると、派生クラスのインスタンスでラップされたアンマネージ リソースを
>識別するハンドル (オペレーティング システム ハンドルなど) をアンマネージ コードに
>渡すことができます。
となってるし、使用例にあるWindowsAPIの呼び出しサンプル見ても、IntPtrの代わりに使ってる。
というか従来のIntPtrの代わりに使うべきもののように見える。
DangerousGetHandle()はデバッグのためにハンドル値を16進でダンプしたいとかの特殊用途のために
残してあるんじゃないか。

315 名前:デフォルトの名無しさん [2007/09/04(火) 11:08:29 ]
>>314
なるほど。ほんとだ。

ハンドルは、PVOIDだろ、と、
[DllImport("native.dll")]
public static extern void NativeFunc(System.IntPtr hHandle);
して、Handleプロパティから渡していたので、、
替わりにSafeWaitHandle使えと言われても、型が違ってこまってました。

[DllImport("native.dll")]
public static extern void NativeFunc(SafeWaitHandle hHandle);
こうすればいいんですね。


316 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 12:42:53 ]
デンジャラスなんてついてるメソッド使いたくないお

317 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 13:35:00 ]
IntPtrで問題が発生したら泣き寝入りするお



318 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 18:41:40 ]
>>316-317
正直、「ボキュはキモヲタだお」って言ってるようにしか聞こえない。
そういうの気色悪いと思わない自分を気色わるいと感じるべきだ。

319 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 18:48:43 ]
どうか、次のVBをC#に直して下さい。

Label1.Text = Replace(Session("body"), vbCrLf, "<br />")

-----------------------------------------------
VBの本の中にソースが載っていたのですが、
この1文が、どうにもわかりません。

そのコード意味は、どうやらセッションというデーター内の改行を
HTMLの改行に変換するっぽいのですが・・・。(推測)

ちなみに、他の行は自力で調べましたが肝心のこのコードが分りませんし、
C#でどう書けば良いのか分りません。

賢者の方々、どうか愚者の私にご指導をお願い申し上げます

320 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 18:54:20 ]
>>319
少しはググるとか努力しろよ

VB.NET固有の関数をC#で使用するには?
www.atmarkit.co.jp/fdotnet/dotnettips/254vbfunc/vbfunc.html

でも、それただの部分文字列の置換でしょ?
String.Replaceか正規表現で代用できるでしょ。

321 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 18:54:33 ]
>>319
zoosir.hp.infoseek.co.jp/tips/string/string03.htm
C#だと省略可能引数(Optional)が無いから、全部書く必要があるらしい。

322 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 21:35:51 ]
>304
MSDNも普通にフリーとして公開されてなかったか?

323 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 21:54:39 ]
csc.exeやvbc.exeって開発環境がなくてもインストールされるものなんですか?
C:\windows\Microsoft.NET\framework\以下にあるのでそんな気がしますが。

324 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 21:57:13 ]
はい。実行時に使用する場合もあるので、全ての環境に含まれています

325 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 22:03:35 ]
>>324
おお、そうだったんですか。
これで安心してCodeDomが使えます。

326 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 22:17:14 ]
標準添付はcsc/vbc/jscの三つ、だったかな確か clは非標準だよね
標準なのにドマイナーなのがひとつ

327 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 00:09:57 ]
Control.Invoke系のメソッド呼ぶとどっかで内部的にファイナライザが必要になるっぽいな。
ループの中から呼んだりして大丈夫なんだろうか。
何千何万って呼んだらなんか嫌なことになりそうな気がする。



328 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 00:15:47 ]
ここは散文を書くところではない。
説明調の、他人に意味がちゃんと通じる文章書けよ

329 名前:デフォルトの名無しさん mailto:sage [2007/09/05(水) 00:23:22 ]
え、ファイナライザのコストが高いことを説明しろってこと?
それは説明するまでもないと思ったけど。

何が通じてないのかわからん。
Invoke系のメソッドってのはInvoke、BeginInvokeのことだよ
それらを呼んだら内部的に生成されるオブジェクトでファイナライザが呼ばれるっぽいんで嫌だなって話。






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

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

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