C#, C♯, C#相談室 Part91at TECH
C#, C♯, C#相談室 Part91 - 暇つぶし2ch262:デフォルトの名無しさん
16/11/20 08:47:01.08 3blV6AGf.net
値型は null にならないのでそれで用は足る。面倒なのは、Stringだかが。昔のBASIC の文字列型のように実装した値型を用意すれば解決。

263:デフォルトの名無しさん
16/11/20 09:29:50.43 2ye3zmI2.net
>>257
>面倒なのは、String
C#で文字列を扱っていてnullの扱いで面倒だと感じた経験が
一度もないのですが、Stringでnullがなぜ面倒なのですか?

264:デフォルトの名無しさん
16/11/20 09:42:15.04 BknfpFpO.net
nullは情報を捨ててしまうから可読性が低くなる
エラー許容型を作ってそれを使うのが定石
Errorable<string> s = func();
if(s.HasNoError) WriteLine(s.Value);
else WriteLine(s.ErrorMessage);
if(s.NotFound) ...
if(s.AuthError) ...
if(s.FormatError) ...
...

265:デフォルトの名無しさん
16/11/20 09:59:28.46 Y223jndk.net
>>259
> その関数使う使う時に一々nullチェックするの面倒。
> それを忘れない保証もどこにもないし。
全然改善されてないだろ w
てか、その例なら素直に例外使えよ

266:デフォルトの名無しさん
16/11/20 10:11:47.90 GbOcvoRT.net
IsNullアンチパターンみたいだね

267:デフォルトの名無しさん
16/11/20 10:12:24.08 wbF3tHCA.net
>>260
チェックなしでValueにアクセスしたら例外を投げる
Errorableという名前が見えることによってチェックを忘れるということを回避できる
チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている

268:デフォルトの名無しさん
16/11/20 10:27:40.57 9PtzIqGH.net
もう一歩踏み込んで、Maybe。
Valueプロパティは、もちろん無し。

269:デフォルトの名無しさん
16/11/20 10:30:00.58 X8MMRSH3.net
宗教としてC#にアイデンティティを代替している連中(貧乏人ほどオリンピックが好きなのと同じ)なのに
仕様を否定したって聞き入れる訳ないじゃん
ヘジにアントニー・ホーアの言葉をどう考えるか聞いた奴がいるが
なんて答えたか知らないんだろうし
(あるいは、C#に間違いがあってはならないから目をつぶっているか、そもそも英語は読めないか)

270:デフォルトの名無しさん
16/11/20 10:30:10.23 9PtzIqGH.net
>>250
ぼっちで書いてる時は、好きにする宜し。

271:デフォルトの名無しさん
16/11/20 10:35:26.28 2ye3zmI2.net
文字列の場合にはNullも "" も同じだと思えばいいよね

272:デフォルトの名無しさん
16/11/20 10:37:02.45 NgPgW0rj.net
参照型とnull許容型は別の概念にするべきだったと言ってるし
現在、null非許容型を破壊的にならないように言語仕様を変えよう(追加しよう)としている。
将来を全て見通せる人は、いないと言う事だよ。

273:デフォルトの名無しさん
16/11/20 10:38:09.66 Y223jndk.net
>>262
> チェックなしでValueにアクセスしたら例外を投げる
ならはじめから例外でいいだろ
> Errorableという名前が見えることによってチェックを忘れるということを回避できる
マジで言ってるの?
チェックする箇所には変数名しか見えないんだが...
まあ IDE でいちいち型を確認すればいいんだろうけど、エラーチェック忘れるような奴はそう言う型の確認も忘れるわけで...
> チェックがめんどくさいという怠惰さには手の施しようがないがnullやエラーコードと違ってチェック方法が統一化できる点も優れている
たぶん思い付きで書いてるんだろうけど例えば Errorable<string> の
> if(s.AuthError) ...
って何を返すの?
自作のクラスで新しいエラー状態をチェックしたい時はどうするの?
いちいち Errorable を派生させたりしたらチェック方法が統一できないしどうするつもり?

274:デフォルトの名無しさん
16/11/20 10:40:19.54 Y223jndk.net
>>266
お前さんがそれでいいならなんの問題もない

275:デフォルトの名無しさん
16/11/20 10:48:41.71 NgPgW0rj.net
>>249
最近は若くても「老害」みたいな人が少なくないよね。
新しい事を覚える・勉強するのを嫌がる。
現状のやり方を変えるのを恐れる。
現状維持大好き。
良いか悪いは別問題だけど。

276:デフォルトの名無しさん
16/11/20 10:58:38.68 wbF3tHCA.net
>>268
初めから例外を投げるではチェックのためにtryを書かなければならない
パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い
エラーというのは幾つかの典型的なエラーに分類可能
例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
新しいエラーを定義する必要はない

277:デフォルトの名無しさん
16/11/20 11:34:52.66 Y223jndk.net
>>271
> パフォーマンスが悪いしifで分岐する処理を書きたいという場面では構文的に不利で不適切
まあ、これはいいとして
> 変数の型が見えなくなるほど長いスコープは普通は書かないので考慮しなくて良い
フィールドとかには使えないってことでいいかな?
> エラーというのは幾つかの典型的なエラーに分類可能
へー、すごいね w
> 例であげたようにNotFoundやAuthErrorといった幾つかの典型的なエラーを定義しておけば良い
で、Errorable<string> の AuthError ってなにさ
> 新しいエラーを定義する必要はない
自称エスパーのお前はそうなんだろうね w

278:デフォルトの名無しさん
16/11/20 11:43:29.92 lYnhz1xv.net
null非許容型が追加されたら便利だなーとは思う
「nullをなくせ」という意見にはまったく賛同できないが
エラー許容型は、エラーの種類を enum で返すプロパティを付けたものをよく作る
(エラー種類ごとにプロパティ作るようなことはしない)
でも、nullで済む場合も多いんだよね

279:デフォルトの名無しさん
16/11/20 11:43:53.85 kKwT4/wt.net
>>272
はぁ
今は返り値の話をしているんだろ
そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
すごいっていうか、常識
人間がどんだけエラー処理と付き合ってきたと思ってるんだ?
AuthErrorは認証、認可のエラー
2chの書き込みだから横着して省略したがこれらは普通は別にする
nullを見ただけでエラー内容がわかる歴史上類を見ないほどに強力なエスパーの君にはかなわないよ
プログラマにしておくのは勿体無いから新しい宗教でも立ち上げることをお勧めするよ

280:デフォルトの名無しさん
16/11/20 11:47:36.19 pCJ1qvOZ.net
変数にエラーコードを入れるっていう発想がもうw

281:デフォルトの名無しさん
16/11/20 11:47:38.25 GbOcvoRT.net
>>266
その考えの場合はnullじゃなくて、""を返すのも良いかもね。

282:デフォルトの名無しさん
16/11/20 11:56:23.29 Y223jndk.net
>>274
> そもそもオブジェクトの内部状態であるフィールドがエラーを受け入れるのが間違いって基本的なことになんで思い至らないのか
え?
オレオレスタイルをどや顔で言われても困るんだが w
> これらは普通は別にする
結局 Errorable<string> と Errorable<database> は別に作るってことかよ...
チェック方法が統一出来るとかほざいてたのにね w

283:デフォルトの名無しさん
16/11/20 12:10:20.24 kKwT4/wt.net
>>277
はぁ
オレオレスタイルではなくオブジェクト指向の基本
別に作らないよ
君は超人的エスパーだから何をどう考えてそういう答えにたどり着いたのか常人にはちょっと理解しがたいんだ
これからはそのことを考慮して常人にもわかるように丁寧に意見して欲しい

284:デフォルトの名無しさん
16/11/20 12:10:41.53 zFrmc+0J.net
>>266
オラクルですね

285:デフォルトの名無しさん
16/11/20 12:23:00.48 L/fyhMFX.net
>>277
みっともないから、もう止めとけ。

286:デフォルトの名無しさん
16/11/20 12:30:03.99 Y223jndk.net
>>278
オレオレスタイルは宗教だろうから教祖さんと争う気はないよ w
で、
> これらは普通は別にする
の意味を説明してみ

287:デフォルトの名無しさん
16/11/20 12:30:42.62 Y223jndk.net
>>280
お前がな w

288:デフォルトの名無しさん
16/11/20 12:37:01.76 kKwT4/wt.net
>>281
この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
君は何をどう考えてErrorable<string>とErrorable<database>は別に作るという考えに到達したの?
ジェネリック型の新しい使い方を編み出したの?
ハイレベルすぎてついていけないよ
一体何段階思考手続きをスキップできればこの境地にたどり着けるのか

289:デフォルトの名無しさん
16/11/20 12:38:10.81 aCqfb5MR.net
数字の0が無かった時代に0の発明を否定する人みたいだな。

290:デフォルトの名無しさん
16/11/20 12:43:24.41 h3zFIm5r.net
何度も言うけどnullを追放したって問題Aが別の問題Bに置き換わるだけ。
そして普通に考えれば問題Bの悪質性はAより大きくなる場合の方が多いだろう。
nullガーって吠えてる馬鹿って何でこの程度のことが分からんかね。
(a) 値がnullであることで問題が顕在化した
からといって
(b) nullの存在が問題の原因
であるとは限らない。
この程度のことも分からない奴はプログラマ辞めろよ本当

291:デフォルトの名無しさん
16/11/20 12:45:41.10 2ye3zmI2.net
>>279
そう、
オレオレスタイルではなてく
オラクルスタイルだ。

292:デフォルトの名無しさん
16/11/20 12:53:48.90 Jza3G5L3.net
結局メソッドがエラーを返せるようにするにはどうするのが一番いいの?

293:デフォルトの名無しさん
16/11/20 12:54:07.99 Y223jndk.net
>>283
> この文脈でauth errorと省略せずにauthentication errorとauthorization errorに分けるという意味以外に何があるんだ?
そんな話は全くしてないが?
そんなのどうでもいいから
>> で、Errorable<string> の AuthError ってなにさ
の答えを書けよ w

294:デフォルトの名無しさん
16/11/20 12:54:12.13 L/fyhMFX.net
まさに、井の中の蛙 (´・ω・`)

295:デフォルトの名無しさん
16/11/20 12:57:21.73 L/fyhMFX.net
>>287
1つの手段は、エラー種類と「値」のタプルを返す。
これだと、エラー処理を強制は出来んけどね。

296:デフォルトの名無しさん
16/11/20 12:57:41.85 Y223jndk.net
>>289
上から目線で意味のないこと言ってるけどどうしたの?
ここ仮にも技術系の板だから話に加われないなら黙っていてくれるとありがたいんだが

297:デフォルトの名無しさん
16/11/20 17:21:32.25 XK08TpAy.net
エラーはほとんどの場合例外でいいよ
でも例外が使えない場面もあるんだよなぁ

298:デフォルトの名無しさん
16/11/20 18:54:25.34 34y1pXq0.net
>>287
エラーと言ってもいろんなレイヤーでいろんな事があるわけで
結論としてはケースバイケースでどれが一番とか決めれない
これを理解できずに単一の方法ですべてやろうとするからおかしな話になるわけで
まあ、宗教論はその宗旨に納得できる点がある場合もあるけど、他の宗教を認めないのがなぁ

299:デフォルトの名無しさん
16/11/20 19:03:56.76 eCa9a5kv.net
例外を投げないパターンはここらへんを読むといいんじゃない?
一般的とは行かなくても、オレオレではない
URLリンク(faithandbrave.hateblo.jp)
URLリンク(ufcpp.net)
URLリンク(www.open-std.org)

300:デフォルトの名無しさん
16/11/20 19:18:59.75 V9rEuhsa.net
nullable-likeの提案は良いね

301:デフォルトの名無しさん
16/11/20 19:26:56.04 w/pS54nD.net
nullを排除するために、何故ここまで複雑に作る必要があるのか理解出来ん
普通にnull使えよw

302:デフォルトの名無しさん
16/11/20 19:31:08.12 34y1pXq0.net
単にnullの取り扱いから、例外処理についてに話が拡大してるからな

303:デフォルトの名無しさん
16/11/20 19:46:59.71 ELwGw4ow.net
null排除派はごく一部いるけど市民権を得てない
メリットが薄いから
3 == i と言う書き方みたいにこだわる人だけこだわる

304:デフォルトの名無しさん
16/11/20 20:23:01.03 JNgwCyth.net
今後iOS開発の主流になるだろうSwiftがnull非許容ベースだから
将来的には分からないかもよ

305:デフォルトの名無しさん
16/11/20 20:32:56.89 ixFUSBgZ.net
信者にそんな話しても無駄

306:デフォルトの名無しさん
16/11/20 20:42:02.87 RSV7nlYW.net
null あってもいいって言ってるのはなきゃなでも構わない人が大半じゃないかと思う。
Swift が非許容でそれを使う必要があるなら、それの流儀でなんの苦もなく対応しそう。
そんなことに拘ってるのはオレオレな一部の人だけじゃねーのかなぁ。。

307:デフォルトの名無しさん
16/11/20 21:02:17.68 2AHf550w.net
異教徒にそんな話しても無駄

308:デフォルトの名無しさん
16/11/20 22:12:22.04 eCa9a5kv.net
>>296
それを言い出すとなにも言語仕様がいじれなくなっちゃう
Javaとかは進化が停滞して今必死に挽回してるし
もちろん、実装や文法の複雑さと利点を天秤にかけるのは常にしてるので、Roslynのissueとかを見てみると良いよ。
もっと変なのもたくさんある
URLリンク(qiita.com)
を見るとわかるが、実際に各言語がnull安全に取り組んでる

309:デフォルトの名無しさん
16/11/20 23:25:18.49 OrHcogku.net
null安全ねえw
そういう発想をする人ってよくいう「例外を握りつぶす」コードを書いちゃうタイプなんだろうなとは思うわ。
言いたいことは理解できるが全く同意はできない。
それはただの錯誤だからな。
安全どころか、nullであれば容易に発見できたバグをわざわざ発見困難にするだけ。
何がうれしいんだそんなの。

310:デフォルトの名無しさん
16/11/21 00:24:21.34 hlf3slD2.net
ScalaのOption使ってみた感想
・今までは無効な値(null)を返す可能性がある事は、ドキュメントを読まないと分からなかったけど定義だけで分かるから便利
・分解が色々な方法で出来て便利
まあなくても何とかなるけど、あれば便利程度

311:デフォルトの名無しさん
16/11/21 01:11:30.92 fZvEw43o.net
F#にもoptionあるけど死ぬ程便利だわw
先ず、エラーを握り潰す事が出来ない。
ドキュメントを読む必要が無い。
monadとして扱うと、一々ifで分岐書く手間がなくなる。
eitherまで踏み込めば、検査例外云々で議論する事自体が馬鹿らしくなる。
面倒くさいけどねw
C#のint?を使った事ある人には解ると思う。
コンパイラに事前チェックをしてもらえる有り難みが。
機械に解る単純作業?に対して、人間が一々苦労する馬鹿らしさが。

312:デフォルトの名無しさん
16/11/21 01:16:13.30 fZvEw43o.net
それから、初心者に対してこそ効果抜群だよ。
「そう書く」事しか出来ないから。
強制出来るから。

313:デフォルトの名無しさん
16/11/21 01:34:00.10 CO+aVjyU.net
検査例外も出たときは素晴らしい機能だって絶賛されてたような気がするなぁ

314:デフォルトの名無しさん
16/11/21 02:03:53.66 n+GSTHBL.net
検査例外は他に誰も採用しなかったけど
Optionalはこぞって採用されているという決定的な違いがある

315:デフォルトの名無しさん
16/11/21 02:04:20.65 n+GSTHBL.net
あ、ごめん
C#perにそんなこと言っても分からないよね(苦笑)

316:デフォルトの名無しさん
16/11/21 11:12:26.42 Ka0MFQDU.net
ん?Optional?VBの話?

317:デフォルトの名無しさん
16/11/21 11:41:21.77 hLpmxTjl.net
グラディウスだろ

318:デフォルトの名無しさん
16/11/21 17:31:28.36 fZvEw43o.net
>>310
このスレにもいるような「老害」は少数派だよ

と信じたい。

319:デフォルトの名無しさん
16/11/21 20:45:41.48 HLjti5+r.net
実際、エラーの扱いは時代によって色々変わってきてるからね
null安全の手法はこれからの主流になっていくのかもしれない
そんで、また数年後には新しいやり方に置き換えられるんだろう

320:デフォルトの名無しさん
16/11/21 21:06:27.63 4A1pLeCT.net
エラーの扱いじゃなくてヒューマンエラーを未然に防ぐのが意図でしょnull安全ってのは。
その意図は認めるけど、null安全がその目的に対して合理的とは全く思わんがね

321:デフォルトの名無しさん
16/11/21 21:15:05.95 fZvEw43o.net
option型とnull安全は重なってる部分もあるけど、意味としてズレてる部分もある。
例えば、C#の値型でもoption型は有意義な訳で。

322:デフォルトの名無しさん
16/11/21 22:30:24.18 wfKopLFy.net
サードパーティーライブラリーを使えない前提でオブジェクトのマッピングを手軽に行うにはなにを使う?
パフォーマンスはあまり気にしていない
同名同型のプロパティをマッピングできれば十分
今のところシリアライザーで誤魔化してる感じ

323:デフォルトの名無しさん
16/11/22 00:16:30.64 QATijxTL.net
null安全よりstring?.lengthの方が合理的に見えるわ
最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな

324:デフォルトの名無しさん
16/11/22 06:51:43.66 y8FHZWuV.net
>>318
> 最初からならともかく、ここまで普及したC#で今更取り入れて定着するのは難しいよな
これには同意するけど
> null安全よりstring?.lengthの方が合理的に見えるわ
これはないわ
string が null になる可能性がないなら普通に string.length って書いた方がエラーが早期にわかるからデバッグも楽だし

325:デフォルトの名無しさん
16/11/22 07:50:04.91 vhsrXRxU.net
?.もnull安全の一環な気はする。
ちなみに、null非許容型導入の影響で、?.を使っていない箇所は全てwarning扱いになる話もあったりする。

326:デフォルトの名無しさん
16/11/22 13:10:29.71 bfu4FZ0h.net
string?.length
これって式の左辺に何書くの?
int? hoge
とか?
で結局hoge==nullとか聞いちゃうの?
?.演算子は参照型と値型のペアでは使いにくいし分かりにくいと思う

327:デフォルトの名無しさん
16/11/22 17:09:05.83 EJKURZYz.net
君ら一体何を議論してるの?
分かりやすく解説してくれ

328:デフォルトの名無しさん
16/11/22 17:11:14.76 VnsYzvlz.net
Optionalの是非というか使い所の話でないの?

329:デフォルトの名無しさん
16/11/22 19:57:46.66 vhsrXRxU.net
>>321
例えば
int len = str?.Length ?? 0;

330:デフォルトの名無しさん
16/11/22 20:13:33.64 ga0p/qoV.net
C++の参照は良いものだった

331:デフォルトの名無しさん
16/11/23 10:56:47.19 Sj0D9A4Y.net
>>325
なんで過去形?

332:デフォルトの名無しさん
16/11/23 11:55:24.93 Sj0D9A4Y.net
URLリンク(stackoverflow.com)
このページで
dictionary.FirstOrDefault
とやっていますがディクショナリーにFirstOrDefaultを
やるとなぜこういう結果になるのですか?

333:デフォルトの名無しさん
16/11/23 13:27:10.63 GLuKyrfg.net
>>327
何を「何故」と思ってるか分からん

334:デフォルトの名無しさん
16/11/23 18:46:09.31 QXjR6WNV.net
>>327
Dictionaryは、IEnumerable<KeyValuePair>を実装しているから。

335:デフォルトの名無しさん
16/11/23 19:25:46.80 Sj0D9A4Y.net
>>328
FirstOrDefault って最初の要素を取って来るんじゃないんですか?
何故全ての要素をループ出来るんですか?

336:デフォルトの名無しさん
16/11/23 19:44:53.91 GLuKyrfg.net
>>330
『引数の条件に一致した』最初の要素ね。
内部的には列挙子で探してるよ。

337:デフォルトの名無しさん
16/11/23 19:48:19.93 4RFw+AHR.net
列挙子=enum ・・・

338:デフォルトの名無しさん
16/11/23 19:49:49.71 dUmyuUeh.net
列挙子はIEnumeratorですw

339:デフォルトの名無しさん
16/11/23 20:19:45.57 Sj0D9A4Y.net
>>331
そういうことですか。
良く分かりました。
皆さん、ありがとうございました。

340:デフォルトの名無しさん
16/11/23 20:45:31.10 mr7aPRRr.net
>>322
時代の流れについて行けないおじいちゃん達をいかに介護するかの議論だよww

341:デフォルトの名無しさん
16/11/24 09:15:21.21 DNYUjCey.net
プロジェクトA C#DLLライブラリ
プロジェクトB C#ASP.NETアプリケーション(Web サイト)
プロジェクトC C#ASP.NETアプリケーション(Web API)
BとCはAに依存している
BとCは別のサーバーにデプロイする
2つのサーバーにインストールされているフレームワークが異なる(具体的には4と4.5.1)
サーバー管理者の都合によりフレームワークの更新はできない
Bをビルドする時はAのフレームワークバージョンを4にする
Cをビルドする時はAのフレームワークバージョンを4.5.1にする
このビルド時のフレームワーク切り替え作業が手間なのでなんとかして1オペレーションでビルドできるようにしたい
なんとかなりませんか?

342:デフォルトの名無しさん
16/11/24 09:36:13.90 iMAQMNBa.net
そういうのは依存してるとは言わない
aだけビルドするsln、bcだけビルドするsln作っておいて
aだけビルドするabcのslnでbcはポストビルドイベントでコマンドラインビルド、
bcだけビルドするabcのslnでaはプリビルドイベントでコマンドラインビルドとか?

343:デフォルトの名無しさん
16/11/24 14:18:54.69 G2Ig6Dqz.net
>>336
Webサイトって、Webアプリとは違ってランタイム側でビルドするんじゃなかったっけ?

344:デフォルトの名無しさん
16/11/24 18:57:30.96 /9TZdtP5.net
>>336
プロジェクトCを4.0指定で実行させれば良いんじゃ
>>338
webサイトにもプリコンパイルってのがある
VSがサポートしてるのかどうかはしらんが

345:デフォルトの名無しさん
16/11/24 22:53:33.34 5QlniI4z.net
教えて下さい。
C# で Windows のサービスプログラムを書きました。
その中でプロセス間通信を使いたく、パイプ(NamedPipeServerStream/NamedPipeClientStream)の利用を考えました。
サービスプログラムはそのままだとデバッグが面倒なので、
そのサービスプログラムを参照したフォームプログラムを作ってバグ取りをしました。
フォームプログラムからは、ボタンを押すことでサービスの開始や停止の処理をそっくり呼ぶようにしています。
ここで、
・フォームプログラムでは、問題なくパイプの送受信が出来る
・サービスプログラムでは、パイプの送受信が出来�


346:ネい  ただし、サービスを止めるときにパイプの待ち受けを終了させるために、同じプログラム内から送信するデータは送受信できている  ⇒ 実際に待ち受けを抜けているので同プログラム内では出来ていると思われる と言う状態になりました。 サービスプログラム内でプロセス間通信、この場合は名前付きパイプですが、の使用に制限などはあるのでしょうか。 他の要因を考えるべきか悩みました。情報があれば教えていただけると助かります。



347:デフォルトの名無しさん
16/11/25 01:40:52.65 gI/r9WkT.net
>>340
セッション0のアクセス権限の問題。
namedpipeclientstream-can-not-access-to-namedpipeserverstream-under-session-0
URLリンク(stackoverflow.com)

348:デフォルトの名無しさん
16/11/25 10:25:47.20 2+oHnkxr.net
fw3.5からfw4.0以上のdllを参照する方法ないかなぁ?

349:デフォルトの名無しさん
16/11/25 15:18:07.17 6J0+Q2dT.net
>>341
よくそんなのぱっと出てくるなあw

350:340
16/11/25 23:09:50.97 Oc8F6euI.net
>>341
やっぱりそういうのがあったんですね。。
対策を考えます。
ありがとう。

351:デフォルトの名無しさん
16/11/26 00:37:00.99 pkHe6RQg.net
上のリンク先の回答みたいにPipeSecurityとか適切に設定してやればいいんじゃないの

352:デフォルトの名無しさん
16/11/26 15:34:45.46 w/Dhvdu8.net
WindowsのAPIだからC#とは直接的には関係ないけど教えてほしい。
特定のウィンドウにキーボードイベントを送信しようと考えている。
keybd_eventを使用してキーボードイベントの送信する事は成功した。
ちなみに第二引数のスキャンコードは使用しない、みたいな事を書いてあるサイト(MSDN含む)が多かったが
スキャンコードを指定しないと対象アプリがキーボード処理を受け付けてくれなかったため指定してある。
対象アプリがバックグラウンド中であっても操作しようと考えてSendMessage(またはPostMessage)に変更しようとしたのだが
スキャンコードはどこにどのように設定すればいいのだろう?
第四引数のlParamであろうと言う事は想像がつくが、スキャンコードをそのまま設定しても駄目だった。

353:デフォルトの名無しさん
16/11/26 16:13:12.18 dXHq99jt.net
>>346
WM_KEYDOWNならこれ、カーソルキーとかも24ビット立てる必要があったかな
URLリンク(msdn.microsoft.com)
SendMessage(hWnd, WM_KEYDOWN, uCode, MapVirtualKey(uCode, 0) << 16 | 1)
とかそんな感じだったはず、離すときはWM_KEYUPにして32ビットを立てる
C++でWM_KEYDOWNイベントのlParamを吐くウィンドウプロシージャでも作ると良い

354:347
16/11/26 16:22:01.70 dXHq99jt.net
> 離すときはWM_KEYUPにして32ビットを立てる
うっかりミスった、30~31ビットね
WM_KEYDOWN時のlParam | 0xC0000000する形

355:347
16/11/26 16:37:54.65 dXHq99jt.net
あ、そもそもC#でもウィンドウプロシージャオーバーライド出来たっけ
protected override void WndProc(ref Message m) {
base.WndProc(ref m);
if(0x0100 <= m.Msg && m.Msg <= 0x0102) Text = m.ToString();
}
とか適当なフォームでやれば実際のウィンドウメッセージが確認できるよ

356:デフォルトの名無しさん
16/11/26 17:19:55.67 w/Dhvdu8.net
>>347-349
非常に参考になった。
これを元にキー送信処理を作り直すことにするよ。

357:340
16/11/26 21:03:56.05 ZtR+Z7Wd.net
>>341,345
昨日はまだ調べていませんでした。
341 に書いていただいた URL の方法で普通に出来ました。
ありがとう。

358:デフォルトの名無しさん
16/11/27 21:23:49.80 I1ny1q/I.net
妙な質問だけど、今2ch以外でユーザー同士でC#関連の質問解答ができるコミュニティーって、
- MSDNフォーラム
- わんくまの掲示板
- DOBON.NETの掲示板
質問して答えが返ってきそうなのはこのぐらい?
あ、別にマルチで質問投げてやろうとかそういう意図ではないので念のため

359:デフォルトの名無しさん
16/11/28 00:18:17.41 n0A2uJuC.net
ja.stackoverflowはもう泣く以外の道ないなw

360:デフォルトの名無しさん
16/11/28 00:18:37.64 VTugBhJZ.net
>>352
StackOverflow一択だろ

361:デフォルトの名無しさん
16/11/28 00:23:13.14 fF5TvHl5.net
google翻訳少し賢くなったんだから「このページを翻訳する」で結構使える

362:デフォルトの名無しさん
16/11/28 01:04:22.51 v97E8kC6.net
>>352
最近はteratailもありかも
あとは、.NET共通のことならVB中学校も一応あり

363:デフォルトの名無しさん
16/11/28 01:42:44.60 9T0ZytTv.net
>>353-354
stackoverflowって日本語版もあったのかw
ありがとう
>>356
teratailはまったく知らなかったありがとう。

364:デフォルトの名無しさん
16/11/28 03:25:24.52 PwcZf+No.net
あとはQA@ITとか

365:デフォルトの名無しさん
16/11/28 04:33:07.21 VTugBhJZ.net
>>357
日本語限定ってどこかに書いてあったっけ?

366:デフォルトの名無しさん
16/11/28 19:31:45.97 FcPInj/k.net
>>359
>- MSDNフォーラム
>- わんくまの掲示板
>- DOBON.NETの掲示板
日本語って一目で分かるだろ

367:デフォルトの名無しさん
16/11/28 19:35:28.66 MT+LNPN6.net
落ち着けよハゲのブラザー

368:デフォルトの名無しさん
16/11/28 21:09:47.26 SXoUdBtU.net
>>354は stackoverflow.com のつもりで書いたが>>357は ja.stackoverflow.com を見つけて、
日本語版の存在を知らなかった>>354>>357を皮肉と受け取った。

369:デフォルトの名無しさん
16/11/28 21:23:26.86 C8x/B1Vp.net
>>360
バカの連鎖反応

370:デフォルトの名無しさん
16/11/28 21:35:12.23 Efu8jG2p.net
人脈作れば全部解決だろ
Xamarinユーザー見習えよ

371:デフォルトの名無しさん
16/11/28 22:05:43.16 /OQd0iyQ.net
元の質問者の>>352だけど、質問の仕方がまずかったなら謝るけど
無意味に喧嘩腰でつっかかるのはどうかと思うよ
意図としては英語も排除しないけど日本語のを中心に教えて欲しかった。
英語は読むのは何とか読めても書く(質問する)のは結構つらいっすわ。

372:デフォルトの名無しさん
16/11/29 15:41:26.31 07zLg605.net
>>364
あのオタサー集団と同列に見られるのは非常に辛い

373:デフォルトの名無しさん
16/11/30 08:32:18.72 rOv2n/Yl.net
axwindowmediaplayerで次、前のボタンにイベントを割り当てるのはどうしたらいいですか。
this.axWindowsMediaPlayer1.Ctlcontrols.next += new AxWMPLib.なんちゃらなどで記述?
ボタン自体もグレーアウトしていて使えない状態です。
再生などのボタンは初めから再生が割り当てられていてなにも記述しないでもよかったのですが。

374:デフォルトの名無しさん
16/11/30 11:01:13.74 U6G+25fY.net
AxWindowsMediaPlayerでそんな細かい制御はできない
currentPlaylistとかでIWMPMedia管理すればそれらも使えるようになるはず
組み込みのプレイリスト使いたくないならUIも自分で全部やる

375:デフォルトの名無しさん
16/11/30 16:39:10.32 y2jQ/DIV.net
LINQのQuantifierの日本語訳なんだけど、MSDNだと量指定子、
岩永さんのところだと限定子となってるけど、どっちがより適切だと思う?
URLリンク(msdn.microsoft.com)(v=vs.120).aspx
URLリンク(ufcpp.net)

376:デフォルトの名無しさん
16/11/30 23:23:25.49 rOv2n/Yl.net
>>368
ありがとう。プレイリストがよさそうです。

377:デフォルトの名無しさん
16/12/01 09:05:41.40 ySUX8EsS.net
>>369
語義的には量指定子じゃない
quantityが量だから

378:デフォルトの名無しさん
16/12/01 18:33:51.23 CcMyBcAe.net
でも量指定子って正規表現的な言い回しだよな。
SQL的な言い回しだとALL,ANY,SOMEとかは限定子になるはず。
URLリンク(software.fujitsu.com)

379:デフォルトの名無しさん
16/12/01 18:37:08.39 CcMyBcAe.net
ただまあ本家が量指定子ってるんだから、量指定子が正式用語ではあるだろうけど。

380:デフォルトの名無しさん
16/12/01 18:39:48.63 lOA8D/0g.net
英語のまま使ってもらいたい

381:デフォルトの名無しさん
16/12/01 19:00:45.21 74fND9I4.net
そもそもそんなキーワードを使う場面が思い浮かばない…

382:デフォルトの名無しさん
16/12/02 00:05:35.89 ui5LUeC9.net
AnyとAllとContainsをまとめて分類しただけの言葉のようだが、禿しくどうでも良い

383:デフォルトの名無しさん
16/12/02 00:27:24.78 57Q76p9I.net
一般的な呼び方じゃ量化子だよな。

384:デフォルトの名無しさん
16/12/02 06:58:37.23 jL2K9FKD.net
LINQは日本語ではなに? LINQは英語のままで量化子だけ日本語てのは
運用の誤り。
無理やり日本語にするならクオンティフィアでいいと思うがゴミみたいな
概念をわざわざ日本語にするのはよくない。説明的に日本語で「量化を
意味する」のように使うのは問題ないが、「量化子」のように語彙にして
しまうのはよくない。英語のまま運用するのがよい。

385:デフォルトの名無しさん
16/12/02 07:09:43.00 jL2K9FKD.net
訂正
このサイトの説明では
Any,All,Conttainsを総合的に説明するのが目的だからLINQという具体的な
ものよりは上位概念だな。この場合は限定子で正しいと思う。
量指定、量化はちょっと違うな。

386:デフォルトの名無しさん
16/12/02 07:21:27.21 iUEu5k7c.net
LINQは固有名詞だから訳しようがないけど量化子はすでに記号論理学でも使われてる一般名詞だろ

387:336
16/12/02 07:48:29.69 GGzlnXmJ.net
めんどくさいから英語のままでいいってのはある

388:デフォルトの名無しさん
16/12/02 10:36:52.50 X9iN1GdM.net
明治の人に謝るべき暴言。

389:デフォルトの名無しさん
16/12/02 14:59:21.44 rEQGNTwO.net
>>380
LINQはLanguage Integrated Queryを省略してるだけだから日本語化できるでしょ(してもらいたくないが)
OPEC~石油輸出国機構みたいに訳してる例は多い

390:デフォルトの名無しさん
16/12/02 17:36:35.56 8D4FZt7r.net
>>383
してみ

391:デフォルトの名無しさん
16/12/02 17:40:15.92 DaaN/lCj.net
383ではないが、『言語に統合された問い合わせ』
・・・ないわ

392:デフォルトの名無しさん
16/12/02 18:09:20.76 rEQGNTwO.net
>>384
統合言語クエリって単語がすでにある。クエリも訳したら統合言語処理要求か?

393:デフォルトの名無しさん
16/12/02 19:38:47.97 4/nN0nxx.net
組込問合せ機能 辺りでいいんじゃね?

394:デフォルトの名無しさん
16/12/02 20:25:58.53 fkVt0GEN.net
統合失調言語

395:デフォルトの名無しさん
16/12/02 20:31:59.72 57Q76p9I.net
「LINQは LINQ Is Not Queryの略」とか言い出して、その後「LINQはLINQ。略語や頭字語じゃない」とか言い出す。

396:デフォルトの名無しさん
16/12/02 20:59:04.23 fqYy1w3v.net
一体誰のことを揶揄した気になっているのかね

397:デフォルトの名無しさん
16/12/02 21:09:36.57 ui5LUeC9.net
横だがストールマン以外の誰と言うんだよ

398:デフォルトの名無しさん
16/12/04 09:09:46.43 HFDVK7VF.net
おまえら言語センスがないな。「問式」でOK。今後日本語でのLINQこれだ。

399:デフォルトの名無しさん
16/12/04 09:20:34.29 a6Aihxwg.net
Bingに聞いたらLINQの日本語訳はLINQでいいってさ
マイクロソフトのお墨付きだからこれが正解な

400:デフォルトの名無しさん
16/12/04 09:42:24.52 zAL6lz1+.net
Binqに聞いたらLINQの日本語での質問はLINEQでいいってさ
に見えた

401:デフォルトの名無しさん
16/12/04 10:29:28.25 U0Kel+uM.net
こういう関数を作ったら
void func<T>(T obj, string name) {
  obj[name] = ...
}
[name]の部分でエラーが出ます。
こういう関数は作れませんか?

402:デフォルトの名無しさん
16/12/04 10:41:15.33 0sR5hBHN.net
すべてのクラスが this[string] を持つわけじゃないから…
自分がTに入れたいクラスをwhere T: で指定しては

403:デフォルトの名無しさん
16/12/04 11:15:31.06 U0Kel+uM.net
>>396
ありがとうございました。
上手く行きました。

404:デフォルトの名無しさん
16/12/04 12:05:02.46 OeUSkEhR.net
ジェネリックは使いにくいよな
C++みたいな仕様にしてくれりゃいいのに

405:デフォルトの名無しさん
16/12/04 12:33:20.31 sIaSQQRI.net
>>398
あほす

406:デフォルトの名無しさん
16/12/04 12:56:13.33 3+5uaoN5.net
C++のテンプレートの糞エラーは酷いよな
C#みたいにしてくれりゃあいいのにww

407:デフォルトの名無しさん
16/12/04 13:58:45.59 VS/jD7cp.net
>>398
なんでわざとあんな文法になってると思うんだよ
JIT言語の特長を最大限に活かすためだぜ
コンパイラ言語みたいに使うコードを全てあらかじめ生成しておくわけではなく
Tでnewされた時に初めてコードを生成するからメモリ使用量も少ない
ただ利点はそのまま欠点にもなる
T型同士の演算コードを書くとたちまちエラーになるのでdynamic型にキャストするとかしないとな

408:デフォルトの名無しさん
16/12/04 15:28:39.35 UcElfbev.net
dynamicにするとbox/unboxが発生するから式木で殴る解決策あったな

409:デフォルトの名無しさん
16/12/04 19:05:36.47 U4ZfHibQ.net
ガッチガチにチューニングしようとすると式木やILを触る必要があってツライ

410:デフォルトの名無しさん
16/12/04 19:37:47.45 OeUSkEhR.net
コンパイルするタイミングを実行時に移すだけだろ
プログラマがCodeDOMや式木でやってる退屈で定型的なプロセスを自動化するだけじゃん
マイクロソフトの怠慢だよこれは

411:デフォルトの名無しさん
16/12/05 00:12:25.29 wzEk6zml.net
>>402
dynamicの偉大な点は勝手に内部で式木に変換してしかもそれをキャッシュしてくれるから
完全なリフレクションに比べて速度的にそんなに不利ではない
URLリンク(ufcpp.net)
ここら辺が有名だよな

412:デフォルトの名無しさん
16/12/05 01:54:32.46 kX3Q4svv.net
>>404
だいぶ違うぞ
プログラミング学び直したほうがいい

413:デフォルトの名無しさん
16/12/05 02:10:45.39 u0DsEOY/.net
使いにくいと言う奴の99%は理解してないだけだからな
1%くらいには李左車の言うように有意義な指摘もあろうが
それは404ではないだろう

414:デフォルトの名無しさん
16/12/05 03:06:07.61 TC/GOrDD.net
使いやすいという奴は仕事で使ってない

415:デフォルトの名無しさん
16/12/05 07:38:13.09 FYlXKnN9.net
>>406
お前は黙ってJavaかVBでもやってろ

416:デフォルトの名無しさん
16/12/05 16:46:58.81 5hp1IXjD.net
>李左車
誰だよ?

417:デフォルトの名無しさん
16/12/05 17:16:33.12 uj/2rcDx.net
さーしゃちゃん知らないってモグリかよ

418:デフォルトの名無しさん
16/12/05 17:35:03.83 PG/Hzji5.net
クポ?

419:デフォルトの名無しさん
16/12/08 00:12:08.98 /aGxLpEu.net
AWS LambdaでC#が使えるようになったらしいな
Googleも.NETの開発に参加したことだし、本格的に波が来ている

420:デフォルトの名無しさん
16/12/08 05:07:13.06 Vn/geEUt.net
ついにJava終わったか

421:デフォルトの名無しさん
16/12/08 13:08:55.01 0EWqwyqo.net
C#というより.NETの質問なんですがいいでしょうか?
リストビューの各項目のクリックを拾いたいんですが方法ありますか?
例えば以下の様な構成になってる場合「山田」のクリックとか「21歳」のクリックとかを
拾いたい感じです。
---------------------
[項目1][項目2][項目3]
山田  20歳  東京
斎藤  22歳  埼玉
戸川  21歳  千葉
---------------------
やっぱりクリックイベントから現在選択されている項目を取得する
という方法が一番でしょうか?

422:デフォルトの名無しさん
16/12/08 13:14:33.65 h9KBoTPl.net
>クリックイベントから現在選択されている項目を取得する
という方法で何か困っていることがあるならそれを書くのが早い

423:デフォルトの名無しさん
16/12/08 13:15:32.08 RR5e4yCq.net
行と列両方いるならListViewHitTestInfo

424:デフォルトの名無しさん
16/12/08 13:33:02.23 0EWqwyqo.net
>>417
おぉ~クリックイベントに以下でイケました!>>416さんもありがとうございました!
Point pt = new Point(e.X, e.Y);
ListViewHitTestInfo lvHti = lstv.HitTest(pt);
int row = lvHti.Item.Index;
int col = lvHti.Item.SubItems.IndexOf(lvHti.SubItem);
MessageBox.Show(row.ToString() + ", " + col.ToString());

425:デフォルトの名無しさん
16/12/08 14:57:23.01 vKAf8GkY.net
カスタムコントロールについて教えてください。
FontとColorのセットとなるクラスの配列を特定のコントロールのプロパティ値として持ちたいのですが、デザイン時に値を入れると
「ResXファイル.RESXファイルで使用される型XXXXXX..を読み込めませんでした。必要な参照がプロジェクトに追加されていることを確認してください。」というエラーとなってコンパイルできなくなってしまいます。
どの様にすれば、正しく、デザイン時の値を保持&読込ができるのでしょうか?
【ソース】
public class TestCmb:ComboBox
{
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public List<FontAndColorSet> TestProperty { get; set; } = new List<FontAndColorSet>();
}
[Serializable]
public class FontAndColorSet
{
public Font Font { get; set; }
public Color Color { get; set; }
}

426:デフォルトの名無しさん
16/12/08 18:44:29.79 Ayid3Uvv.net
>public Font Font { get; set; }
>public Color Color { get; set; }
C#では、クラス名を、2回も書けるのか?

427:デフォルトの名無しさん
16/12/08 18:47:17.57 6K2Be21z.net
>>420
public 型名 プロパティ名 {get;set;}
public Object Object(){
  return null;
}
って書けるのと同じ

428:デフォルトの名無しさん
16/12/08 18:48:35.47 6K2Be21z.net
C#はフィールドとローカル変数はhogeFooで、プロパティ、メソッド、クラス、名前空間はHogeFooだから結構型名と被る事多いよ

429:デフォルトの名無しさん
16/12/09 01:37:38.58 nk5rcDEa.net
>>419
とりあえずこんな感じ
public class TestCmb : ComboBox
{
  [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
  public FontAndColorSetCollection TestProperty { get; set; } = new FontAndColorSetCollection();
}
//[Serializable] これいらない
public class FontAndColorSet
{
  public Font Font { get; set; }
  public Color Color { get; set; }
}
public class FontAndColorSetCollection : Collection<FontAndColorSet>
{
  public void AddRange(FontAndColorSet[] items)
  {
    foreach (var x in items)
      this.Items.Add(x);
  }
}
ここが参考になる
URLリンク(www.codeproject.com)

430:419
16/12/09 09:31:24.99 pxgVwarY.net
>>423
おおおおおおおおおおお!!!!!!!
ありがとうございます♪さっそく試したところうまくいきました!!
これだけでかなりコード量が減るのでホントたすかりました;w;
ありがとうございますm(_ _)m

431:デフォルトの名無しさん
16/12/09 11:25:46.06 nQ2cVzw4.net
質問者じゃないけど、>>419のコードというか、List<T>じゃダメな理由は何なんだろう
AddRangeの引数の型がT[]じゃないから?

432:デフォルトの名無しさん
16/12/09 12:43:50.54 73dS9ox0.net
C#でWindows.formアプリを勉強中なんですが
controlとの絡みばかりでクラスを作って色々やるといったことなく出来上がってしまいます
複雑化すればそうもならないのでしょうか。。

433:デフォルトの名無しさん
16/12/09 13:56:37.83 3kVVURfS.net
>>426
単純なアプリだとそんなもんだよ
規模が大きくなってきても、ある程度まではその流儀でやれなくはないけど、そのうち
プログラムの見通しが悪くなって、メンテする際にイライラする事が多くなって、
やり方を変えたくなってくる

434:デフォルトの名無しさん
16/12/09 18:10:47.21 73dS9ox0.net
>>427
ありがとうございます
頑張ってみます

435:デフォルトの名無しさん
16/12/09 18:31:58.73 IAKedM2U.net
ドカタ開発だとそのままのノリで大きなシステム作っちゃうけどね
共有していいのはDBだけ、あとはコピペ上等で画面単位でぶった切れ、という開発スタイルなら設計スキルが無くても容易にスケールするよ
まあ一度書いたものは弄らないことが大前提のやり方なので、後で大きな仕様変更が入ったら炎上するんだけど

436:デフォルトの名無しさん
16/12/09 20:14:42.74 RJlryFXO.net
>>429
特定企業への破壊工作を目的とする場合以外に絶対にやってはいけないアーキテクチャパターンランキング第1位のやつじゃん

437:デフォルトの名無しさん
16/12/09 20:54:48.40 0cPrt4mX.net
>>430
とはいえ日本の高度経済成長を支えた伝統ある開発手法だからね
低スキルな要員で案件を確実に終わらせて逃げることに関しては現代においても最強よ
古典的なウォーターフォールが正しく機能してるなら客の後出し要件なんか無視できるんだし

438:デフォルトの名無しさん
16/12/09 21:03:09.07 SmYH2aqj.net
その頃のシステムのリプレイスで付けを払わされて炎上してるところいっぱいありそう

439:デフォルトの名無しさん
16/12/09 21:12:50.85 0cPrt4mX.net
>>432
しかしそのツケを払うのは当時のSIerではなく客だ
際限なく肥大化する保守費用、しかしリプレースしようにも見積は天文学的な金額になる
売る側にとっちゃメリットしかないんだよ

440:デフォルトの名無しさん
16/12/09 21:22:01.74 4/j9vJm7.net
コメントしっかりしててすげー綺麗なコード書く奴いるけど
いつもスケジュール間に合わず動かず役に立たず。ぎりぎりになると周りがフォローよ

441:デフォルトの名無しさん
16/12/09 21:38:16.31 RJlryFXO.net
>>431
借金は日本のお家芸だな
日本中でそれやってビジネス停滞してんだから国家的損失はデカイ

442:デフォルトの名無しさん
16/12/09 21:41:54.69 inzQIL9U.net
>>433
そこで魔法の言葉「過去資産の流用」が出て来るのか

443:デフォルトの名無しさん
16/12/09 21:50:33.79 YFW7nsEC.net
>>433
マジで経験したことないやろ
そんな案件の尻拭いってモチベーションだだ下がりやし
二度と経験したくない

444:デフォルトの名無しさん
16/12/09 22:28:31.44 RJlryFXO.net
レガシーシステムのリファクタリングは楽しい
でもリファクタリングをしたら正しく動いてるものに触るなと怒られる
ジャアアアアップ

445:デフォルトの名無しさん
16/12/09 22:32:26.54 o6zCM5vx.net
>>438


446:デフォルトの名無しさん
16/12/09 23:11:31.83 SjD2GByw.net
周りにC#プログラミングをやっている人がおらず、推奨/非推奨の判断ができないので相談させてください
次のような書き方はアリでしょうか
たとえばWindowsフォームアプリケーションのForm1クラスの
直下に
Regex.CacheSize = 100;
などとほかのクラスのプロパティ代入文を書くとエラーでコンパイルが通りませんが、これを
int dummy_int = Regex.CacheSize = 100;
というようにダミーの変数代入を噛ませれば、
コンパイルエラーを起こすことなく書くことができてしまいます
これは普通に使われるようなテクニックですか?
それとも仕様上はコンパイルできるがあまり好ましくない書き方ですか?

447:デフォルトの名無しさん
16/12/09 23:20:41.59 SmYH2aqj.net
使っちゃ駄目。
上の書き方でコンストラクタ内とかで設定。

448:デフォルトの名無しさん
16/12/09 23:22:54.69 AFnkuo0i.net
考えたこともなかったからちょっと感心したわ
視点の違いってすごいわ

449:デフォルトの名無しさん
16/12/09 23:39:59.90 pDhW8mKL.net
コンストラクタが呼ばれた時に暗黙的に変数の初期化が走るとは言え上手くいくのだろうか。
普通はコンストラクタかForm1がロードされた時に代入かな。

450:デフォルトの名無しさん
16/12/09 23:45:53.15 SjD2GByw.net
>>441
ありがとうございます、やっぱりダメですか
ちなみにどういった理由でダメなんでしょう
実際には色々なクラスの色々な所でRegexオブジェクトを定義しているので
なるべく早くキャッシュサイズを拡大したいんですが、
(あまりProgram.csは触りたくないけど)素直にMain()内に書くしかないんでしょうか
>>443
ステップ実行してみたら、Form1のコンストラクタ(InitializeComponent();)よりも前に実行されてました

451:デフォルトの名無しさん
16/12/09 23:51:08.34 vatll/rz.net
>>440
こんな仕様初めて聞いたんだが、誰かkwsk

452:デフォルトの名無しさん
16/12/10 00:10:15.56 htA28gv+.net
>>442 >>444
int a=b=100;
みたいな書き方ができること自体は以前どこかで読んだことがあったものの
なんとなく気持ち悪くてこれまで使ったことがなかったのですが、
最近改めて=演算子の戻り値と演算順序(先に実行される「b=100」の結果が100を返すので
それがaにも代入される)を勉強したところだったので、コンパイルできるかなと思ったらできてしまいました

453:デフォルトの名無しさん
16/12/10 00:11:39.47 htA28gv+.net
>>446は442と>>445へのレスでした。

454:デフォルトの名無しさん
16/12/10 00:14:55.08 HOF4U6Im.net
>>446
それは分かる
でも何故エラーが出なくなるのかって話

455:デフォルトの名無しさん
16/12/10 00:24:59.06 mt2BmPb5.net
そもそも単なる文法上の制約だからだろ
そういう制約をわざわざ付けてるってことは、そういう事はやるべきじゃないって思想の表現だと思うが

456:デフォルトの名無しさん
16/12/10 02:21:43.03 XBbQ6S0E.net
>>444
横だし俺はC#専門ではないけど、それってコンストラクタ内に書けばいいだけだよね。
果たして>>440で動くのかも疑問だけど、
仮に動いたとしても、ダミー変数がインスタンス内に残ってしまうのが無駄だよね。
そもそも a=b=c の書き方自体をしない。(ただしRubyの連中はするのかもしれない)
何故かは知らんが、おそらく見にくいという主張をする奴が多いからだろう。
どのみち普通はコーディングルールで禁止してあるし、
行数をケチる以外のメリットもないからいちいち文句を言う価値もないし。

457:デフォルトの名無しさん
16/12/10 02:29:36.15 THyFY8cN.net
>>444
単純に分かり難いから。このスレの反応見ても、普通使わなそうなのが見て取れるでしょ。
Program.csが嫌でなるべく早くというなら、Form1のコンストラクタが良いんじゃないの。
Form1のコンストラクタよりも先である必要ってないでしょ。

458:デフォルトの名無しさん
16/12/10 03:10:58.12 jJfPnpDE.net
static IDisposable SubscribeTracer<T>(this IObservable<T> source, string name) {
var disposer =
source.Subscribe(value => Console.WriteLine("{0} : OnNext({1})", name, value));
return disposer;
}
このプログラムは一体なんなのだ。全然わからない。そこで理解しようと思ってラムダ部分を
関数に置き換えてみると
void ramda(string value ){ Console.WriteLine("{0} : OnNext({1})", name, value); };
だあーー、nameを持ってこれない。持ってくるとすればグローバルにするしかない。
 ラムダ関数は単なる匿名関数というだけでなくて、こういう便利な機能があるんだと初めて
分かった。つまり普通の関数にするとスコープを閉じるがラムダにするとスコープが開く。
オープンスコープ機能だ。ダダだい発見だ。と思ってほかにも気が付いた奴がいないかと
「ラムダ関数はスコープを開く」でググってみると、無い。俺の発見だ。w

459:デフォルトの名無しさん
16/12/10 03:13:11.24 jJfPnpDE.net
MSの説明 ラムダ式(C#プログラミングガイド)
ラムダ式は、デリゲート型または式ツリー型を作成するために使用できる匿名関数です。 ラムダ式を使用すると、引数として渡したり関数呼び出しの結果値として返すことができるローカル関数を記述できます。 ラムダ式は、LINQ クエリ式を記述する場合に特に便利です。
以下省略(間違いがおおすぎ、、、、)
1行目から間違ってるよな。W デリゲート型をつくるのは delegate int del(int i); この部分で
あって
del myDelegate = x => x * x;
これではないな。
2行目も間違ってるよな。w ローカル関数ってのはC#7(VS2017)からなのでまだサポート
ないだろ。

460:デフォルトの名無しさん
16/12/10 04:49:24.16 jJfPnpDE.net
delegate void del(string valule);
static string _name;
static IDis


461:posable SubscribeTracer<T>(this IObservable<T> source, string name) { _name = name; //var disposer = source.Subscribe(value => Console.WriteLine("{0} : OnNext({1})", name, value)); del aa; aa= eventdo; var disposer = source.Subscribe( aa(val ) ); } static void eventdo(string value){ Console.WriteLine("{0} : OnNext({1})", _name, value); } 452をDelegateで書き換えてみたがコンパイルエラーになる。なんでだ?



462:デフォルトの名無しさん
16/12/10 08:12:40.98 htA28gv+.net
>>450-451
なるほど、見にくい・分かりづらいというのは同意見です
(自分もint a=b=0みたいな表現は今回の件まで一度も使おうとしなかったので)
ただ、Form1のコンストラクタに書いても
実行順序はForm1のメンバ変数定義より後回しになってしまうようなので…
Form1のメンバ変数としてRegexオブジェクトを大量に定義しているので
もっと早くキャッシュサイズを拡張しないと意味ないのかな?と

463:デフォルトの名無しさん
16/12/10 09:33:27.42 jJfPnpDE.net
すまん。454は自己解決した。
そもそもIObservableをまったく理解してなかった。

464:デフォルトの名無しさん
16/12/10 10:41:12.43 scmr7sdZ.net
>>455
メンバ変数の初期化もコンストラクタでやったらどうかな?

465:デフォルトの名無しさん
16/12/10 12:31:00.36 rHn5Q6ti.net
>>455
変な小細工せずにForm1のコンストラクタを呼び出す前に書くのが筋だと思う。
っていうか、Regexあんまり使わないので自信ないけど、そもそもRegex.CacheSizeなんか設定しなくても
RegexのコンストラクタでRegexOptions.Compiledを指定すれば済むんじゃないの?

466:デフォルトの名無しさん
16/12/10 12:43:23.50 rHn5Q6ti.net
URLリンク(smdn.jp)
↑によるとCacheSizeが影響するのはスタティックメソッドを使う場合だけ?
>>455はRegexのインスタンスを生成してるみたいだから、だったらそもそもCacheSizeの
設定は無意味ってことかな。

467:デフォルトの名無しさん
16/12/10 12:53:41.37 rHn5Q6ti.net
考えてみたら、どっからでもアクセスできちゃうstaticなプロパティの値が
個々のインスタンスの挙動に影響を与えるような筋悪な設計は
普通はありえないよな

468:デフォルトの名無しさん
16/12/10 12:59:36.57 9rLOEiC0.net
>>459
>>455も設定先はstaticでしょ。そうしないとエラーになるはず

469:デフォルトの名無しさん
16/12/10 14:07:24.95 8ZN9Ra/9.net
キャッシュが影響するのはRegex.IsMatchみたいな静的メソッド使うときだけ
new Regexする時はキャッシュ関係ないと思う
あと、フィールドの初期化はわかりにくいので軽くて副作用のないものだけにした方が良い
正規表現の作成が時間食うなら、コンストラクタで行った方があとあと変更するときによい

470:デフォルトの名無しさん
16/12/10 14:32:08.61 ZQIWZdV9.net
>(あまりProgram.csは触りたくないけど)
ドンドン触れ!
変なこだわりは捨てるべき

471:デフォルトの名無しさん
16/12/10 16:30:39.28 SuPtWdia.net
分かっててあえてやってるなら大きなお世話かもしれんけど、
そもそも処理をFormに書いちゃうところから間違ってるな

472:デフォルトの名無しさん
16/12/10 18:25:04.69 9rLOEiC0.net
>>464
世話焼くならForm1って名前からにしろ

473:デフォルトの名無しさん
16/12/10 18:42:35.17 L/PQ4lRu.net
自前で適当に作ってる自分用アプリならネーミングセンス(とデフォルト名変更)についてとやかく言う必要は無いがな。

474:デフォルトの名無しさん
16/12/10 19:02:21.05 YyXkI5ew.net
Form1とかの名前、あれはもうつけかえるのはやめにしたんだ

475:デフォルトの名無しさん
16/12/10 19:07:08.15 BtzSATc1.net
ListViewのItemを高速に消す方法はないでしょうか?
BeginUpdateをしていても遅くて。3万件のItemから29800件消すといった場合です。

476:デフォルトの名無しさん
16/12/10 19:17:12.33 htA28gv+.net
>>459 >>462
インスタンスの場合はキャッシュ関係ないんですね…勘違いしてました
>>458後半
コンパイルすればキャッシュは無関係、というわけではなかったと思います
キャッシュが少ない状態で何種類ものパターンで静的メソッド(コンパイルオプションつき)を使うと
何度もコンパイルされる羽目になるはずです
>>463
キャッシュの拡大はRegexを使うクラス内に書いておきたいという気持ちがあるんですが
「なるべく早めに」ということならやはりMain()&#8206;に書いた方がいいのかなあ…

477:デフォルトの名無しさん
16/12/10 19:19:43.47 0TBYagU6.net
つうかいいか
そういうのはコードじゃなくて設定ファイルに書くもんだよ

478:デフォルトの名無しさん
16/12/10 19:22:20.67 wTYgtvkF.net
>>468
コントロールを再作成して必要な分だけ追加したら?

479:デフォルトの名無しさん
16/12/10 20:00:23.99 g6CF/PBV.net
>>468
その前に3万件追加した作業が無駄だよね
0件から200件追加することが出来ないのかプログラムを見直すべき

480:デフォルトの名無しさん
16/12/10 20:24:13.29 BtzSATc1.net
>>471
ありかもしれません。
>>472
追加と削除のタイミングが違うので・・・

481:デフォルトの名無しさん
16/12/10 20:32:26.08 moWXVb0v.net
仮想化しててもそんなに遅くなるもんかね

482:デフォルトの名無しさん
16/12/10 20:33:06.95 g6CF/PBV.net
>>473
3万件をスクロールして閲覧する用途が有るはずもなく、最初から考えが間違っているんだよ
とはいえ、割りとありがちなんだけどね

483:デフォルトの名無しさん
16/12/10 20:46:01.62 iMqvKcIt.net
VirtualModeなら速いんでねの?

484:デフォルトの名無しさん
16/12/10 20:48:19.32 0TBYagU6.net
お客様は何万件でも表示させるといったらPGが死んでも表示させる
もちろんパフォーマンスの低下は許さない
つまりこれは現実的な用件なんだよね

485:デフォルトの名無しさん
16/12/10 21:14:17.86 f57StUOL.net
御意!

486:デフォルトの名無しさん
16/12/10 21:45:14.07 BtzSATc1.net
VirtualMode速すぎる
なんだこれ
これを待ってました。

487:デフォルトの名無しさん
16/12/10 21:53:53.30 mMrYCd0+.net
Formsは長いことやってたんだけど.net coreでのWebシステムって容易く出来るんけ?
PHPでのMVCフレームワークとかrailsはわかる

488:デフォルトの名無しさん
16/12/10 22:08:22.01 0TBYagU6.net
基本がしっかりしてれば簡単だよ
そのためにUIフレームワークに依存しないように作れっていつも言われるだろ

489:デフォルトの名無しさん
16/12/10 22:09:21.73 mMrYCd0+.net
>>481
さんくす
手を出してみるわ
何を選んでもMFCのドキュメントビューよりは良いだろうってのが心の拠り所です

490:デフォルトの名無しさん
16/12/10 22:28:44.20 moWXVb0v.net
仮想化せずにListViewで3万アイテム扱ってたのか・・・

491:デフォルトの名無しさん
16/12/10 22:31:16.68 BtzSATc1.net
仮想化するとInsertionMarkが使えないみたいです。
どうしましょうか?

492:デフォルトの名無しさん
16/12/10 23:55:43.96 VtzX6XaJ.net
>>468
発想を変えて、ListViewを作り直したら?

493:デフォルトの名無しさん
16/12/11 07:29:54.22 9qlRR3sU.net
>>484
WM_SETREDRAWで描画停止してやれば、Virtualでなくても3万件ぐらいいけると思う。
やり方は、検索すれば出てくる。

494:デフォルトの名無しさん
16/12/11 08:09:32.73 tSe+v4ik.net
3万件用と200件用は別のListViewを用意して、Visibleで切り替えるとか

495:デフォルトの名無しさん
16/12/11 10:51:04.21 rgeKQ1h1.net
質問させてください。
Microsoft Press の「プログラミング.NET Framework 第2版」という本に、下記の記述があるのですが、
【【【【【引用ここから】】】】】
internal sealed class Transaction {
 private DateTime timeOfLastTransaction; // 最後にトランザクションが行われた時間を記録するフィールド
 public void PerformTransaction() {
  Monitor.Enter(this); // thisオブジェクトのロックを取得
  // トランザクションを実施...
  timeOfLastTransaction = DateTime.Now; // 直前のトランザクションの時間を記録
  Monitor.Exit(this); // thisオフジエクトのロックを開放
 }
 public DateTime LastTransaction { // 最後にトランザクションが行われた時間を返す読み取り専用プロパティ
  get {
   Monitor.Enter(this); // thisオブジ工クトのロックを取得
   DateTime dt = timeOfLastTransaction; // 最近のトランザクションの時間を一時変数に保存
   Monitor.Exit(this); // thisオブジェク卜のロックを開放
   return dt; // 保存された日時を返す
  }
 }
}
【【【【【中略】】】】】
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これが重要です。
あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これが起こりえます。
【【【【【引用ここまで】】】】】
Monitorでロックをしてるのに、なぜ「あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティに
アクセスする」ことがありえるのでしょうか?

496:デフォルトの名無しさん
16/12/11 11:00:53.02 E1v0n/uN.net
>>488
プロパティの実装でEnterとExitと一時変数dtが必要なことに注意してください。
破壊されている可能性のある値を返さないようにするために、これ(enter/exit/dtの存在)が重要です。
(enter/exit/dtが存在しないなら、)あるスレッドがPerformTransactionを呼び出している問に別のスレッドがプロパティにアクセスすると、これ(破壊されている値を返すこと)が起こりえます。
つまり(きちんと)ロックしてるならアクセスすることはない

497:デフォルトの名無しさん
16/12/11 11:14:59.06 rgeKQ1h1.net
すみません。質問の書き方がマズかったですね。
それと、もう一度自分でよく考えて、自己解決しました。
疑問に思ったのは、
・複数スレッドが同時にアクセスしないようにするために、EnterとExitが必要なことは
 わかるが一時変数dtはなぜ必要なのか?
・Enter~Exitでロックしてても、PerformTransactionの呼び出し中に別スレッドが
 アクセスすることがありえるのか?
・その問題を回避するために、いったん一時変数dtに退避する必要があるという意味か?
ということでした。
しかし、よく考えれば、疑問が解消しました。
・dtが無いとreturnで値を直接返すことになる
・そのためにはreturnをEnterとExitで囲む必要がある(がそんなことはできない)
・だから、dtに入れてる
ってだけのことですね。お騒がせしました。
回答いただいた方、ありがとうございました。

498:デフォルトの名無しさん
16/12/11 14:59:01.41 o/YiWCEr.net
>>486
WM~でなんかやるならInsertionMark云々だって自己解決できるような気が

499:デフォルトの名無しさん
16/12/11 22:39:52.04 9qlRR3sU.net
>>491
描画止めるくらいであればウインドウメッセージとかよくわからなくてもググって数行コピペするだけで出来るし、既に非Virtualで作ったものをVirtualに変更するより手っ取り早いかなと思って。

500:デフォルトの名無しさん
16/12/11 23:37:43.42 rW4zRmsa.net
InsertionMarkってNearestIndexが使えないだけみたいで
そこだけ計算で出してやれば使えました。
お陰で高速な動作ができるようになりました。ありがとうございました。

501:デフォルトの名無しさん
16/12/14 22:10:21.05 zGQk9RuM.net
正規表現Regexのインスタンスを作る際の文字列指定をするときに、
@を先頭につけているのを見るのですが、
これはどういったことでしょうか
必要なのでしょうか

502:デフォルトの名無しさん
16/12/14 22:16:24.21 LQhYfqJw.net
>>494
\を大量に書かなくていいようにするため

503:デフォルトの名無しさん
16/12/14 23:05:36.02 PdV20HuV.net
Rubyには、こういう関数があるけど、C#には無いの?
rp = Regexp.escape("$bc^")
\$bc\^
Regexp.escape(string) -> String
string の中で正規表現において、特別な意味を持つ文字の直前に、
エスケープ文字(バックスラッシュ)を挿入した文字列を返します

504:デフォルトの名無しさん
16/12/14 23:08:32.15 +dTErpY/.net
そのまんまのがあるが
Regex.Escape(string)

505:デフォルトの名無しさん
16/12/14 23:16:39.96 zGQk9RuM.net
>>495
494です
ありがとうございます

506:デフォルトの名無しさん
16/12/15 08:46:01.32 3NUBKOAZ.net
完全に市場はJavaの圧勝が決まったようだ。

507:デフォルトの名無しさん
16/12/15 12:09:47.56 VtGam84M.net
>>499
へーすごいね

508:デフォルトの名無しさん
16/12/15 12:57:24.49 4tPXC7sh.net
金箔貼っても糞は糞。を思い出した。

509:デフォルトの名無しさん
16/12/15 13:45:31.77 7KRIzock.net
URLリンク(chrome.google.com)

510:デフォルトの名無しさん
16/12/15 13:55:12.96 8Dy0z+2t.net
chrome.webRequest.onBeforeRequest.addListenerでこれブロックしてる
"*://b.st-hatena.com/*",
"*://b.hatena.ne.jp/entrylist/*",
"*://b.hatena.ne.jp/entry/image/http*",
"*://b.hatena.ne.jp/entry/json*",
"*://b.hatena.ne.jp/bc/or/http*",
"*://api.b.st-hatena.com/entry.count*",
"*://cdn-ak.b.st-hatena.com/*",

511:デフォルトの名無しさん
16/12/15 19:32:58.03 aesj07do.net
c#で書かれた解析機を吐き出すyaccみたいなツールってないの?

512:デフォルトの名無しさん
16/12/15 20:28:20.48 u3iwxuUX.net
自分に合ったのを探せ
URLリンク(en.wikipedia.org)

513:デフォルトの名無しさん
16/12/19 00:22:28.34 hPPOameE.net
テキストボックスでValidatingを実装し、e.cancel=trueにした場合について2つ質問があります。
1.フォームの×ボタンを押してValidatingが発生しe.cancel=trueになっても、form.closingを実装するとフォームを閉じれるとネットブログであったのですが、
これはどういった仕組みでしょうか?
cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
また、msdnでのそこに関する説明はどこにありますでしょうか?
2.そもそも,フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?

514:デフォルトの名無しさん
16/12/19 14:59:52.95 /uogIQCg.net
2つと言いつつ1に3つぐらい質問があるように見える
> form.closingを実装するとフォームを閉じれる
実装するとじゃない。
Closingイベントのイベントハンドラでe.Cancelをfalseに設定したら閉じられる。
> これはどういった仕組みでしょうか?
Validatingで設定したe.CancelがClosingで設定されるe.Cancelで上書きされるだけ。
> cancelになっても別のコントロールについては実装すれば、その処理が走るのでしょうか。
ちょっと何言ってるか分からない。
> msdnでのそこに関する説明はどこにありますでしょうか?
ValidatingとClosing(FormClosing)のページにないんなら、ないんじゃない?
> フォームの×ボタンでValidatingを走らせないようにするにはどうしたらいいでしょうか?
WM_CLOSEをハンドルする方法とか提案されてる
URLリンク(d.hatena.ne.jp)

515:デフォルトの名無しさん
16/12/19 21:55:11.26 m20BeiOW.net
前から疑問だったんだがValidatingでフォーカス移動封じるタイプのUIって誰が得するんだ?

516:デフォルトの名無しさん
16/12/19 23:07:10.38 nxaByp7v.net
開発者の保身に役立つ
ユーザビリティ何それ

517:デフォルトの名無しさん
16/12/21 22:02:28.59 OBoWPQLO.net
VisualStudioでスキャフォールディングっていうの?
あのC#コード生成ってどうやってんの?
右クリックメニューのコマンドで画面開いてパラメータ入力したらコードがいくつかババっと出力されてプロジェクトにインクルードされて時にはconfigまで書き換わるあの便利なやつ

518:デフォルトの名無しさん
16/12/21 22:13:35.55 I2xL3xVw.net
子供発見

519:デフォルトの名無しさん
16/12/21 23:15:00.27 EydnUon0.net
>>510
テンプレートで生成してるだけだよ
自分で同じようなことやりたければT4でも調べてみたら

520:デフォルトの名無しさん
16/12/22 00:41:34.58 0KrqUh09.net
>507
506です。遅くなりましたがお答えありがとうございます。
補足で質問です。
> cancelになっても別のコントロールについては>実装すれば、その処理が走るのでしょうか。
ここに関しては、validatingでe.cancel=trueにしたら、そもそもclosingが走らないかと思っていたのですが、そういうことではないのでしょうか。validatedまでキャンセルになるということでしょうか。

521:デフォルトの名無しさん
16/12/22 00:52:26.00 3F8kH50r.net
closingにデバッグポイント置いてそこで停まったら実行されるってことだろ
そんくらいもできないのかよ

522:デフォルトの名無しさん
16/12/22 10:02:04.72 i/pZa1E8.net
URLリンク(chrome.google.com)

523:デフォルトの名無しさん
16/12/22 10:12:48.15 hYDEOt1H.net
mbgdnfmdelffjdhkdggilmphfdihnmcj をNGワード設定だな。この開発者そこらに張りまくってやがる

524:デフォルトの名無しさん
16/12/23 13:13:48.39 /B2iyB1G.net
そうなの?登録しとこっと…ハッ

525:デフォルトの名無しさん
16/12/24 06:16:26.82 WEJSRv5C.net
PythonのコードをC#で書き直してるんだけどさあ
C#で関数の引数に関数を指定することって出来ないのかな?
具体的にしたいことは関数の傾きを求めることで、たとえば適当な関数
float A(float x){return x^2;}
があったときに、傾きを求める関数
float B(関数, float x){return xでの傾き;}
みたいなものを作成して
d = B(A(), 0.1f);
のような呼び出し方をしたいんだけど・・・・なにかそれに近いC#のコードの記述方法ってないかな?

526:デフォルトの名無しさん
16/12/24 06:53:00.31 kPI05Gb3.net
delegate じゃ駄目なの?

527:デフォルトの名無しさん
16/12/24 06:56:25.78 iV5eYun0.net
float B(Func<float, float>, float) ということなのかな

528:デフォルトの名無しさん
16/12/24 07:23:08.42 WEJSRv5C.net
>>519-520
デリゲートを使うのが一番近い記述ができるのかな?
そうするとミスって複数メソッドを登録したときの処理も記述しとかなきゃなんないかな・・・・

529:デフォルトの名無しさん
16/12/24 07:41:28.77 qXNVWWNf.net
>>518
関数を引数にしたいなら520でいいけど
そもそもC#で任意の関数を引数にして傾きを求めるのは無理だと思うよ
引数の関数が微分可能かどうか(下手すると連続かどうか)も保証されてないのに

530:デフォルトの名無しさん
16/12/24 09:21:29.09 3LTJc3r/.net
微分可能であることの保証ができないなんてどの言語でも一緒だろ
イベントハンドラ以外のデリゲートでマルチキャストを使う馬鹿もいない(いたら今すぐやめろ)から無視していい
あとそういう計算にfloat使うと激しく誤差が出るからfloatじゃなくてdouble使え
Pythonの浮動小数点数もdouble精度だ

531:デフォルトの名無しさん
16/12/24 10:31:06.47 dPbQS77J.net
>>522
微分可能とか最近覚えた用語を使いたくてしょうがないんだな w

532:デフォルトの名無しさん
16/12/24 10:37:23.24 qXNVWWNf.net
あらかじめコーディングされた関数たちしか使わないなら、導関数も事前に用意しておけばいいよね
>>523
mathematica等の数式処理言語ならできるよ

533:デフォルトの名無しさん
16/12/24 12:25:20.15 1tLIoM8k.net
関数の数値微分は機械学習とかシミュレーションとかで普通に使うぞ

534:デフォルトの名無しさん
16/12/24 15:05:19.64 uriaUnJG.net
数学とC#の関数の定義の区別ができないお子ちゃまですか。

535:デフォルトの名無しさん
16/12/24 15:50:11.41 IXC75mXH.net
おまえはC#の関数で、俺は数学の関数だ!
そこになんの違いもありゃしねぇだろうが!

536:デフォルトの名無しさん
16/12/24 15:52:59.52 51ELz7Bu.net
空のWebアプリプロジェクトからASP.NET MVCをインストールして適当にビューを作ったんだけど
マークアップエディタのインテリセンスにViewBagがないって怒られます
コードエディタでは普通にViewBagにアクセスできます
これはいったいどういうことなんでしょうか

537:デフォルトの名無しさん
16/12/24 16:49:07.86 uriaUnJG.net
式をこねくり回したいんだろう。
自分ですうしきクラスを作れよ。

538:デフォルトの名無しさん
16/12/24 17:01:13.35 WEJSRv5C.net
>>522
たしかに解析的に正しい微分できないけど、僅かにXをずらしてそれっぽい数値を出したいんです

539:デフォルトの名無しさん
16/12/24 17:07:45.02 3KzFEnUI.net
微分可能かとどう実装するかは別の問題だからどうでもいいなw
ちょっと大げさめだが、俺ならinterface使う

540:デフォルトの名無しさん
16/12/24 18:08:40.53 2kirY5E3.net
>>531
何が言いたいのかよく分からんけど普通にこういうのじゃいかんの?
static double GetSlope(Func<double, double> func, double x, double delta = 1e-6)
{
  var left = func(x - delta/2);
  var right = func(x + delta/2);
  return (right - left) / delta;
}

541:デフォルトの名無しさん
16/12/24 19:30:16.14 dPbQS77J.net
>>533
いや実装方法はわかってるでしょ
python からの移植なんだし
>>531>>522 が微分可能とか言い出してるからそれへの説明だと思うぞ

542:デフォルトの名無しさん
16/12/24 22:57:47.19 ZPnvY2Gu.net
>>524
えっ?

543:デフォルトの名無しさん
16/12/25 01:15:18.80 2bXL0gSr.net
音声付の外国語の単語学習アプリを
作ろうとしてます。
数千の単語の音声を、少数のファイルで扱うには
どのような方法使えばいいんでしょうか?

544:デフォルトの名無しさん
16/12/25 02:05:37.96 1Va0hmvu.net
全部つなげて1つのファイルにしておいて、
欲しい時にはその単語データのオフセットと長さを指定して取り出して再生、かな

545:デフォルトの名無しさん
16/12/25 02:11:45.12 xhZEf65t.net
圧縮された音声データでそんな高精度のシークが可能なのかなw
っていうか、今時のWindowsってたいがいの言語の音声合成エンジンがタダで提供されてなかったっけ?

546:デフォルトの名無しさん
16/12/25 02:18:12.49 tQvSe6Qr.net
>>538
バイト配列にしてつなげてサイズと順番のインデックス作ればいいだけ

547:デフォルトの名無しさん
16/12/25 02:45:35.51 bvgmOMUN.net
話が噛み合ってないな
>>537>>539はバラバラの既存の単語音声データを単一ファイルにまとめる話
>>538はボインや子音とかから合成するTTSライブラリ使えって話
>>536の目的は学習アプリ
前者なのか後者なのかはっきりさせないと答えようがないが
TTSから垂れ流す音声が正しいとは限らないので
単語レベルなら既存の音声辞書から引っ張って来た方がいい気はする

548:デフォルトの名無しさん
16/12/25 07:18:53.50 MTT7ZR6N.net
ボインは赤ちゃんのためやでー

549:デフォルトの名無しさん
16/12/25 08:51:11.94 NMeoNRf0.net
音声を64kぐらいでMP3化してSQLiteに登録するのが最善じゃね?

550:デフォルトの名無しさん
16/12/25 09:09:11.14 r6LchLOJ.net
今時はクラウドだろ
バラバラのままでS3にでも突っ込んどけ

551:デフォルトの名無しさん
16/12/25 10:03:57.23 bejmTeDn.net
再生の度にHDDから読み込むともたつくときがあるんだよね
だからといってゲームみたいにシーンに必要なデータを予め読める量でもないし
難しかったな

552:デフォルトの名無しさん
16/12/27 19:34:32.54 r2C7TXrR.net
ASP.NET WebフォームとMVC勉強するならMVC一択ですか?

553:デフォルトの名無しさん
16/12/27 19:44:21.85 RazBYv5e.net
>>545
もちろん
CoreもFullも使えるし

554:デフォルトの名無しさん
16/12/27 21:03:13.98 kWoV7/2e.net
>>546
ありがとうございます
やはりそうなんですね

555:デフォルトの名無しさん
16/12/27 22:49:58.42 DbM4OtJE.net
ASP.NETの基本的なことを学ぶなら空のWebFormsから始めた方がいい
MVCから入るとプロジェクトテンプレートの時点で訳が分からなくなって意欲を損なう

556:デフォルトの名無しさん
16/12/28 00:24:46.29 6PQ8eENJ.net
>>548
いやいや今どきWeb Formsとかないわ
仕事で仕方なくっていう理由ならわかるけど

557:デフォルトの名無しさん
16/12/28 02:37:03.12 tHS+BZPK.net
windows formでtwitterクライアントを作ろうとしているのですがタイムラインをどう表示するかで詰まっています
具体的に言うとブラウザや携帯のtwitterアプリで見るような形でタイムラインを表示したいのですがどのようなコントロールを使えばいいのか分かりません
どなたか教えていただけないでしょうか

558:デフォルトの名無しさん
16/12/28 06:10:33.37 U/Wkcgn0.net
WebBrowser

559:デフォルトの名無しさん
16/12/28 06:28:56.80 hLvgF446.net
>>550
まずはタイムラインの仕様を詳しく書いて

560:デフォルトの名無しさん
16/12/28 07:40:36.68 EECpjgXG.net
俺もWebBrowserコントロールがいいと思うな。

561:デフォルトの名無しさん
16/12/28 07:55:45.93 nclhbqFU.net
Twitterはツイートの表示の仕方がディスプレイガイドラインによってガチガチに決められてる
独自に作ったところで結局同じものを再発明することになるだけで時間の無駄でしかない
結論として、WebBrowserでいい

562:デフォルトの名無しさん
16/12/28 11:01:45.01 Xid52+QB.net
electron使え

563:デフォルトの名無しさん
16/12/28 11:06:16.13 WHhbvFAo.net
UWFは知らんけどWin8のストアアプリにはそんなサンプルが結構あったね。
あの手のUIとXAMLは相性がいいとか何とか。
そういうのパクってWPFで....と思ったけどWindos Formで作るのか

564:デフォルトの名無しさん
16/12/28 11:11:05.17 Xid52+QB.net
Krileとかいう うぃんどうずさいきょうくらいあんと はWPFだぞ

565:デフォルトの名無しさん
16/12/28 11:33:29.67 tDjKTni2.net
まったく同じもん作りたいならWebBrowserコントロールだけど
そうじゃなきゃリストビューのオーナードローかな
なんか意図があるから作りたいわけだろうからそれに合わせて作れとしかw

566:デフォルトの名無しさん
16/12/28 16:33:19.65 XPsq6pGc.net
PictureBoxだろ。

567:デフォルトの名無しさん
16/12/28 17:04:41.95 hmpOAOdC.net
ツイッターほとんど使わんので勘違いしてるかもしれんけど、
Windows Formなら複合コントロール(UserControl)使うのが一番現実的なような気はする

568:デフォルトの名無しさん
16/12/28 20:06:12.28 tHS+BZPK.net
>>552
基本的にはブラウザで見るものと同じです
が、リプライ、RTなどのアイコンがなくなっておりさらに時間の表示位置と形式が違います
また、どのクライアントでツイートしたかの情報も表示します
クライアントの情報はツイート文の下に表示し、時間は絶対時間表記でクライアント情報の右に表示します

569:デフォルトの名無しさん
16/12/28 20:09:09.19 ace8uG6s.net
>>561
Twitterの規約に違反してる

570:デフォルトの名無しさん
16/12/28 20:15:46.64 tHS+BZPK.net
>>562
違反している部分は例えば時間表記はデフォルトでの設定は相対時間表記にしておき設定を変更することによって絶対時間表記にすることができるといった方法で回避しようと考えています

571:デフォルトの名無しさん
16/12/28 20:34:23.74 EECpjgXG.net
なんでWebBrowserコントロールは嫌なの?
手軽に見た目もきれいに作れるし仕様変更もし易いのに。
PictureBoxにゴリゴリ描くのも楽しいだろうけど仕様変更が辛いよ。

572:デフォルトの名無しさん
16/12/28 20:42:16.89 tHS+BZPK.net
>>564
個人的な考えなのですがWebBrowserコントロールを使うのであれば普通のブラウザソフトを使ってTwitterをすればいいと考えているからです

573:デフォルトの名無しさん
16/12/28 21:54:16.84 Bwga9xUV.net
>>556
確かにWPFはこういうの得意だね。
>>563
誤魔化してるだけで、回避は出来てないような。

574:デフォルトの名無しさん
16/12/28 22:32:59.93 tHS+BZPK.net
>>566
WPFの方が作りやすいでしょうか?
規約については他のクライアントがこのような方法をとっていたのでこれで良いものと思いまして…

575:デフォルトの名無しさん
16/12/28 22:43:34.20 6Nd1Z00H.net
TwitterのタイムラインをWebBrowserでやろうとした場合ってHTMLを加工してタイムラインだけを取る的な感じになるの?

576:デフォルトの名無しさん
16/12/28 22:56:26.65 EECpjgXG.net
普通はタイムラインのデータを取得してHTMLを生成してWebBrowserコントロールに
流し込むってイメージだと思うよ。

577:デフォルトの名無しさん
16/12/28 23:00:12.19 Bwga9xUV.net
&g


578:t;>567 WPFはちょっと凝ったUI作るのにはお勧めなんだけど、初期の学習コストが大きいのがネック。 規約に関してはグレーゾーンでしょ。Twitter社次第。



579:デフォルトの名無しさん
16/12/28 23:30:17.32 NekU8PBK.net
var dic = new Dictionary<object, object>();
var isd = dic is IEnumerable<object>;
var asd = dic as IEnumerable<object>;
↑これなんだけど、vs2015だと
実際の値は
isdがfalse
asdがnull
なんだけど、ウォッチ式上は
isdがtrue
asdには値が入ってるんよ。
オレの環境だけ?
vs2010はどっちもfalseのnullなんだよね。
他の環境は手持ちがなくて確認できず
で、本題なんだけど
Dictionary<T, U>をIEnumerable<object>に変換できないかね?
誰かやり方知りない?

580:デフォルトの名無しさん
16/12/28 23:32:42.76 gapvLjp6.net
Cast<object>()

581:デフォルトの名無しさん
16/12/28 23:52:57.99 NekU8PBK.net
>572
サンクス
すまんがもう一個
Dictionary<T, U>を一度object型に変換した後にDictionaryに変換せずに
IEnumerable<object>に直接変換する方法ってある?
元々、object型の値がIEnumerable<V>を継承してるか、継承していたら変換するって処理を作ってる時に気付いたもんで
後出しで申し訳ないが知ってたら教えてくり

582:デフォルトの名無しさん
16/12/29 00:33:10.83 u+8RF5XF.net
>>569
なるほどthx

583:デフォルトの名無しさん
16/12/29 00:38:59.83 ICm4kcbN.net
>>573
ターゲットフレームワークが4以降なら直接IEnumerable<object>にキャストできる
Dictionary<,> は IEnumerable<KeyValuePair<,>> を実装している
.NET4以降ではIEnumerable<>は共変だからIEnumerable<派生>をIEnumerable<既定>として扱える
あと関係ないけど.NETの場合ジェネリックの型引数は
1つの場合はT、複数の場合はTKey, TValueのようにT〇〇と名付ける決まりだから
Java臭いキモい書き方はやめろ

584:573
16/12/29 00:49:52.62 ICm4kcbN.net
すまん訂正
KeyValuePair<,>は値型だから不変だな
直接キャストはできないので>>572で全要素を個別にボックス化してやる必要がある

585:デフォルトの名無しさん
16/12/29 00:58:24.25 ICm4kcbN.net
あと >object型の値がIEnumerable<V>を継承してるか、継承していたら変換する だけど、
IEnumerable<object>のかわりに単に非ジェネリックのIEnumerableにキャストすりゃいいよ
IEnumerable<>はIEnumerableを継承しているので、
IEnumerable<>なら要素が値型だろうが何だろうがIEnumerableには確実にキャストできる
どうしても<object>にしたいなら ((IEnumerable)obj).Cast<object>() で変換できる

586:デフォルトの名無しさん
16/12/29 01:43:17.27 yvgqyy5k.net
おぉ、サンクス!!
値型だとダメなのか。知らんかったわ。
名前については気を付けるよ。
.NETのクラスライブラリ設計にも書いてあんね。もう一度読み返すよ。
助かった。ありがとう

587:デフォルトの名無しさん
16/12/29 15:12:21.99 ZEkDPYau.net
>>529
msdnフォーラムで聞くほうがいいよ

588:デフォルトの名無しさん
16/12/30 07:18:33.47 WuCbATao.net
vb.netではなくc#を選ぶ理由を教えてください。

589:デフォルトの名無しさん
16/12/30 07:52:06.59 ztwR1BBS.net
コーディング量が多く単価が安い言語は選ばない

590:デフォルトの名無しさん
16/12/30 08:01:52.99 pFqShxhH.net
むしろ VB
・に慣れてる
・しか知らない
・しか使えない環境
以外の理由で VB.net を選ぶ理由が知りたいよ

591:デフォルトの名無しさん
16/12/30 08:22:40.21 ztwR1BBS.net
そやな。SharpDevelopの変換機能も優秀だし

592:デフォルトの名無しさん
16/12/30 08:28:44.57 wot9qjtL.net
未だにVBやPHPの学習コストがどうのとか言ってるの見ると
はぁ…90年代からいらしたんですか?そりゃどうも…って感じになる

593:デフォルトの名無しさん
16/12/30 08:38:34.39 fHdmB1av.net
VBは使えない新人にやらせるものだからね
毎年素人に教えなきゃいけないから学習コストは常にホットな話題なんだよ

594:デフォルトの名無しさん
16/12/30 08:55:52.86 IhX7anmL.net
VBなんてもはや学習コストが低い言語ではないし、PHPだってHTMLのマクロだった時代ではない。
まぁそういう会社ってVB6なんだろーけどさ。

595:デフォルトの名無しさん
16/12/30 09:23:58.96 ylI4PuDY.net
MSのサポートがより盤石な方と言われれば基本C#じゃないの
と思ってたら最新のTIOBEインデックスが不可解な事になってるけど
URLリンク(news.mynavi.jp)

596:デフォルトの名無しさん
16/12/30 10:37:03.00 z+0XLzNt.net
>>587
TIOBEは昔から滅茶苦茶で
指標として価値がないよ
PYPLのが実態にあってるとおもう
URLリンク(pypl.github.io)

597:デフォルトの名無しさん
16/12/30 11:36:38.80 LToUj4mC.net
新しく作るならvb.net選ぶ理由なんてないんだろうけど、会社が90年代から続いてるからな
VB6よりも古い時代の資料を改定しながら使いまわしてる
今の時代に合わせて作り直したら大変だ

598:デフォルトの名無しさん
16/12/30 12:03:55.88 WuCbATao.net
>>581
コーディング量が多いってほんまかいな。
.netならどっちも同じことができるはずやないんかいな。
vb.netなら何行も書く必要のあるものがc#なら1行で書けるコードがあるわけか。
社員に還元する気のない会社なら単価は安くていい。

599:デフォルトの名無しさん
16/12/30 12:21:39.74 WuCbATao.net
>>582
vbに慣れてない人なんか少数派ではないんかいな。
vbなんかほとんどの人ができると思うけどな。
それで、vbの手続き(Sub)や関数(Function)も使える利点もある。

600:デフォルトの名無しさん
16/12/30 12:28:11.59 FgVAt5LY.net
は?それVB独特の利点だと思ってんの?
葦の髄並みに視界が広いんだね!驚いた

601:デフォルトの名無しさん
16/12/30 12:30:49.02 3Ls/pupf.net
VB は使えば使えるけど出来れば使いたくない、って人は多そう。自分はそう。

602:デフォルトの名無しさん
16/12/30 12:30:52.92 WuCbATao.net
.netのプログラム方法を知らないがvb6の方法なら知ってるときは、調べる時間を省いて早く作れる利点がある。

603:デフォルトの名無しさん
16/12/30 12:31:12.31 1dqi8t3C.net
>>591
リファレンスの差が圧倒的だからな。ライブラリもC#の方が充実してる。

604:デフォルトの名無しさん
16/12/30 12:36:38.79 TrhPacUJ.net
VBAをC#表記にすればいいのにと

605:デフォルトの名無しさん
16/12/30 12:39:17.24 WuCbATao.net
>>595
リファレンスは、c#でも普通に利用してvb.netでプログラムしてるから別にいい。
ライブラリって、サードパーティ製でc#にしか使えないものがあるということか?

606:デフォルトの名無しさん
16/12/30 12:40:53.78 a9lBhbdO.net
>>594
VBerの世界では日本語のゴミのことを利点って表現するんだな
勉強になったわ

607:デフォルトの名無しさん
16/12/30 12:44:33.76 p8PwMXsr.net
>>597
利点がどうかをお前の主観で判断するなら人に問いかけるな
お前のキンタマ脳味噌でしこたまオナってろカス野郎

608:デフォルトの名無しさん
16/12/30 12:55:30.88 WuCbATao.net
c#はどの言語とも互換性がない。

609:デフォルトの名無しさん
16/12/30 13:02:37.99 E/JZqwpg.net
VB製のまともなソフト見たことがない

610:デフォルトの名無しさん
16/12/30 13:05:31.05 pFqShxhH.net
>>591
VB なんて10年以上使ったことない
って奴はごろごろいると思うけど?

611:デフォルトの名無しさん
16/12/30 13:15:31.59 WuCbATao.net
どの言語プログラマーがc#になったのか教えてください。

612:デフォルトの名無しさん
16/12/30 13:19:37.16 LToUj4mC.net
こいつNGでいいだろw

613:デフォルトの名無しさん
16/12/30 13:29:15.01 /QGVHUc5.net
>>601
tweenが確かソースコード非公開化する前はVB.NETじゃなかったっけ

614:デフォルトの名無しさん
16/12/30 14:03:07.38 WuCbATao.net
java scriptやphpやperlやjavaに比べてc++やcに類似しているとはいえないし、
もちろん互換性もないのにc#とはおかしい言語名だ。

615:デフォルトの名無しさん
16/12/30 14:21:47.87 B5+tn9xF.net
単にJavaScriptがJavaの名前を付けて恩恵を受けようとしたのと同じようにCとつけたのでは
未だにJavaよりもC/C++使いの方がエキスパートみたいな風潮はあるしCって付けたのは悪くないと思うけど

616:デフォルトの名無しさん
16/12/30 15:56:44.65 hgBVSCl8.net
Java開発者の.NET取り込みを


617:狙った言語としてはJ#が別にあったからな Java、C++、VBという当時の三大勢力のうちC#はC++開発者をターゲットにしていたから、 Cの名前を冠するのは戦略上当然



618:デフォルトの名無しさん
16/12/30 17:46:25.33 U2S2spdu.net
VBにはC#のunsafe相当が無い
以上

619:デフォルトの名無しさん
16/12/30 18:31:14.27 WuCbATao.net
そうか、ポインタが使えなかったが、unsafeのブロックで囲って、プロジェクトのプロパティのビルドのページの
「アンセーフコードを許可する」にチェックを入れないといけなかったのか。C#ってぼろいな。

620:デフォルトの名無しさん
16/12/30 18:53:07.80 WuCbATao.net
unsafeブロックとビルドの設定変更で初めてポインタが使える、これでようやくCに近づいたか。

621:デフォルトの名無しさん
16/12/30 19:06:33.29 B5+tn9xF.net
意図的に使いにくくしてるわけでCに近づける意味も必要性もないけどな

622:デフォルトの名無しさん
16/12/30 21:27:21.00 rzMADc8/.net
>>606
そもそもVB.NETもVB6と互換性無いしな
互換性の維持は欠点の引き継ぎでもあるから、良いことばかりではない

623:デフォルトの名無しさん
16/12/31 01:38:04.63 9j/vHbfh.net
クサレ脳ミソに触るなよ
年末で暇なのか?

624:デフォルトの名無しさん
17/01/03 12:36:47.28 6G2Z4dX0.net
ASP.NETってリクエストと同じスコープの共有変数って無いの?
ApplicationとSessionだけ?

625:デフォルトの名無しさん
17/01/03 13:07:31.73 bKYKotyv.net
ThreadLocal<T>使えば?
async使ってたりforkしてたりすると死ぬけど

626:デフォルトの名無しさん
17/01/03 18:21:36.81 GxvhYohc.net
>>615
何がしたいん?

627:デフォルトの名無しさん
17/01/03 19:30:11.31 7mNkwS/N.net
>>617
リクエストとトランザクションのスコープを同期させたい
フレームワーク側でトランザクション管理して
個々のリクエストからはトランザクションを参照するだけにして透過的に扱えるようにしたい

628:デフォルトの名無しさん
17/01/03 19:33:32.03 GxvhYohc.net
>>618
カタカナが多くて理解出来ないわ
すまん

629:デフォルトの名無しさん
17/01/03 23:21:22.46 rV3i3AFU.net
リクエストのスコープで、誰と共有するんだ?
フレームワーク側でトランザクション管理って何の事を言ってるんだ?
@PageのTransactionならページ=リクエスト単位でのトランザクション管理だったと思うが

630:デフォルトの名無しさん
17/01/04 11:10:13.30 P9CxkEKM.net
単にリクエストの前後でTransactionScopeの生成解放とcommitを入れたらいいだけじゃないのか?
明示的に共有する必要なんかないだろ
現在のトランザクションはTransaction.Currentで取れるし、
TransactionScopeAsyncFlowOption.Enabledでasyncにも対応できる

631:デフォルトの名無しさん
17/01/06 15:01:19.97 ugUrUcmU.net
C#といっこも関係ないけど、ここのブログChromeだと問題ないけどFirefoxだと
なぜか糞重いんだけど、どうしてなんだろう
URLリンク(blog.xin9le.net)
.NET関係のブックマークはFirefoxで統一してるので出来たらFirefoxでも快適に見る方法ないかな
ブログ主が修正してくれたらそれが一番いいんだけど、こんなスレ見てないだろうし
こっちから指摘して直してくれってのもちょっとアレなんで

632:デフォルトの名無しさん
17/01/06 19:33:41.04 UonIfHoY.net
2chに書くなボケ

633:デフォルトの名無しさん
17/01/08 04:55:07.07 AV67jRu6.net
C#なんか制御文と演算子がCに似てるだけで、それは他の多くのプログラム言語にも同じことが言えるし、
見かけがCに少し似てるだけで、中身はVB.NETと同じだろ。
VB.NETを拒絶してC#にこだわる理由がない。
挙句の果てに、「VBAをC#表記にすればいいのにと 」とまで言い出す始末。

634:デフォルトの名無しさん
17/01/08 05:21:47.77 gvW6zVP3.net
いきなり何言ってんだこいつ

635:デフォルトの名無しさん
17/01/08 05:24:36.52 AV67jRu6.net
C#人は性格が異常な人が多いのかいな

636:デフォルトの名無しさん
17/01/08 05:38:16.16 qYFGvy5R.net
なんの話をしてるんだ?

637:デフォルトの名無しさん
17/01/08 06:27:27.71 TbfsFEah.net
ID:WuCbATaoだろ
消しとけ

638:デフォルトの名無しさん
17/01/08 09:01:21.88 FbXxDY90.net
>>626
狂った人から見ると普通の人が狂ってるように見えるんだってさ

639:デフォルトの名無しさん
17/01/08 09:40:46.74 vasp0ss6.net
普通の人からするとプログラムできる人は普通の人ではないんだってさ。

640:デフォルトの名無しさん
17/01/08 11:10:32.86 qEmyXRDT.net
それは確かに

641:デフォルトの名無しさん
17/01/08 11:24:30.92 mLyjhJYP.net
VBとかうんこだろ
VBAはうんこ オブ ザ うんこ

642:デフォルトの名無しさん
17/01/08 11:50:35.91 aANViJyG.net
バカでも書きやすいのがVB系なのでVBAがそういう書き方なのは当然だろう
c#への橋渡しとしてのVB.NETだと思うし

643:デフォルトの名無しさん
17/01/08 11:59:14.80 AV67jRu6.net
どうせVBではないという見栄だけでC#なんだろ

644:デフォルトの名無しさん
17/01/08 12:14:57.49 G2Ue1pwT.net
VBからC#に入ったけどいまさらVBになんかめんどくさくて戻れん
使いたい人は勝手にしたらいいがC#のスレにきてわざわざ暴れるなよ

645:デフォルトの名無しさん
17/01/08 12:15:40.75 8d6R2/PQ.net
>>634
何を勘違いしてるのか知らないが、普通のC#使いのほとんどはVBも普通に使えるぞ?
逆はそうでもないが

646:デフォルトの名無しさん
17/01/08 12:21:38.45 ZKkxHQju.net
VBってC#と比べて新機能が遅れて導入されるから大嫌い

647:デフォルトの名無しさん
17/01/08 12:22:57.20 U62MbfoD.net
VB6系はともかく別に誰もVB.NETを否定してないと思うが
というか幾らなんでも名前に踊らされ過ぎ

648:デフォルトの名無しさん
17/01/08 12:29:52.90 6Rfsv7h0.net
VB.NETはC#と同じっていうのは実はC#er目線の話なんだよな
VB専に聞いてみりゃわかるが、彼ら自身はC#は別物だと思ってるし
実際彼らの書くコードはC#とは全く似つかないよ

649:デフォルトの名無しさん
17/01/08 12:47:23.31 vasp0ss6.net
あえて言おう。VB.NETは出すべきじゃなかった。

650:デフォルトの名無しさん
17/01/08 13:03:51.40 AV67jRu6.net
 「VB なんて10年以上使ったことないって奴はごろごろいると思うけど」という人がいる一方で、別の人は「普通
のC#使いのほとんどはVBも普通に使えるぞ」という人がある。10年以上使わないなら、普通に使えるとは思えないの
で、後者は前者の主張を否定したようなものだ。
「VBにはC#のunsafe相当が無い」という人がいる一方で、別の人は「意図的に使いにくくしてるわけでCに近づける
意味も必要性もない」といってunsafeの存在価値を否定した。
 それぞれの主張に客観性がないんだろうな。

651:デフォルトの名無しさん
17/01/08 13:10:39.99 ZKkxHQju.net
お前はちょっと黙ってろ

652:デフォルトの名無しさん
17/01/08 13:25:57.09 Dfhzw297.net
>>641
「意図的に使いにくくしてるわけでCに近づける意味も必要性もない」は別にunsafeの存在を否定はしてないだろ。
普段使いするものじゃないからわざと使いにくくしてあるけど、いざという時はちゃんと使えるんだから。

653:デフォルトの名無しさん
17/01/08 13:26:42.71 G2Ue1pwT.net
VBは使えるけどC#が使えないから職場でいじめられたのかな
それでここで憂さ晴らししていると
ここでもバカにされるだけなのに

654:デフォルトの名無しさん
17/01/08 13:34:55.06 Dfhzw297.net
>>636
最初からVBに興味ないか、少しだけ触って見限ったきりって人も多い。
少し勉強すればVBもできる人は多いだろうけど、そうする意味もあまりないし。

655:デフォルトの名無しさん
17/01/08 13:39:59.92 mLyjhJYP.net
VB.NETは構文調べて20分で捨てた
VB.NETで出来ることはC#で出来るし
何となく感覚で読めるけど書けない

656:デフォルトの名無しさん
17/01/08 13:43:29.27 AV67jRu6.net
(エセC)#、もしくは (エセC++)++ だろ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch