1 名前:デフォルトの名無しさん mailto:sage [2019/05/16(木) 19:28:06.27 ID:s+6oZKe00.net] !extend:checked:vvvvv:1000:512 次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為) 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。 他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980 を踏んだ人は新スレを建てて下さい。 >>980 が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■関連スレ C#, C♯, C#相談室 Part93 mevius.5ch.net/test/read.cgi/tech/1492818720/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■前スレ ふらっと C#,C♯,C#(初心者用) Part142 https://mevius.5ch.net/test/read.cgi/tech/1551908141/ ■情報源 https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index https://docs.microsoft.com/en-us/dotnet/standard/class-libraries referencesource.microsoft.com/ - VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
458 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 14:49:08.14 ID:2Fwz82J/0.net] >>449 HttpClientはstaticなインスタンスでセッション使い回し。 このくらいの注意点は知ってるけどどう駄目なのか参考に教えてよ
459 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 15:37:24.10 ID:CD9ImjzWM.net] >>449 KWSK
460 名前:デフォルトの名無しさん [2019/06/15(土) 15:42:35.91 ID:h/MXyyEj0.net] >>445 ありがとうございます!
461 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 18:51:55.25 ID:Tm2el/yWa.net] >>449 これを使っている限りバグが出る可能性が排除できない まともな設計で作り直してほしい
462 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 19:28:03.88 ID:hWID9DJjM.net] >>454 具体的には?
463 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 19:39:46.98 ID:2Fwz82J/0.net] 具体的なことは言えないレベルでなんとなく否定してるに1票
464 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 20:17:44.79 ID:p9QrGiGS0.net] まあHttpClientFactory使えってなるよね、最近は
465 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 20:49:10.87 ID:Tm2el/yWa.net] HttpWebRequestやWebClientは確実にゴミ 例えば非同期でいろんなサイトからダウンロードするアプリを作ろうとしても 実インスタンスが一つなので各サイトに合わせて設定できない HttpClientはまともにusingできない使いまわし前提で管理が面倒でバグりやすい
466 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 21:25:13.03 ID:p9QrGiGS0.net] >>458 >>457
467 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 21:28:36.81 ID:403fYel+0.net] いや知ってりゃ使えるだろってのはわかるんだが なんでどれもこれも罠が満載なの? っていう話ね
468 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 23:31:09.76 ID:2Fwz82J/0.net] >>457 なにこれ?ナウなやつ??
469 名前:デフォルトの名無しさん [2019/06/15(土) 23:31:12.45 ID:TLpy9Lqp0.net] MacのCore2.1でデリゲートのシリアライズを試してるんだけどさあ、これって動くプラットフォームもあるってことなの? class Program { static void Main(string[] args) { Func<int, int> A = i => i + 1; BinaryFormatter formatter = new BinaryFormatter(); var tempStream = new MemoryStream(); formatter.Serialize(tempStream, A); //System.Runtime.Serialization.SerializationException がスローされました //"Serializing delegates is not supported on this platform." } } レファレンスだとMacで動かないとか特に書いてはいなさそうだけど、どこを見たらそういう情報ってわかるんだぜ? https://docs.microsoft.com/ja-jp/dotnet/api/system.runtime.serialization.formatters.binary.binaryformatter.serialize?view=netframework-4.8
470 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 23:37:24.81 ID:eE+hzs3Oa.net] >>462 ないでしょ だってそれ、変数を一切キャプチャしないラムダ式以外では問題が起こるんじゃない?
471 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 23:54:10.26 ID:ioIpgNFD0.net] デリゲートをシリアライズするっていう発想がそもそもなかったわ
472 名前:デフォルトの名無しさん [2019/06/16(日) 00:04:36.79 ID:IRiSsL3Z0.net] ダメか、ありがとう
473 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 00:06:06.77 ID:j15M4OK0a.net] デリゲートのシリアライズはFullFWなら可能 .NET Remotingで通信先からRPCするために使う機能だ .NET Coreでは.NET Remotingが廃止されたから、.NET Coreで使えないのは当然 そもそもBinaryFormatterはそれ自体が廃止された.NET Remotingの一部であり、互換性のためだけに残されてる遺物 今更新規に使っちゃダメ
474 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 00:12:52.39 ID:G7NVDdhd0.net] >>461 うん、HttpClientのイケてないとこをラップして使いやすく(間違いを犯しにくいように)したやつ
475 名前:デフォルトの名無しさん [2019/06/16(日) 00:22:01.61 ID:IRiSsL3Z0.net] >>466 正直、これが出来るとリモートプロシージャコールの受け側がif/switch羅列になるのを避けられると思っていました しかし、これはもろに時代に逆行していたんですね・・・・ 廃れたと言うことは今流のやり方もあるんですか?
476 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 00:27:11.51 ID:j15M4OK0a.net] .NET CoreでRPCしたいならRESTかgRPC使えとMS様は仰ってるね
477 名前:デフォルトの名無しさん [2019/06/16(日) 01:01:25.28 ID:IRiSsL3Z0.net] gRPCを使用する場合でも、サーバからグローバルIPを持たないクライアントのメソッドを呼びたい場合にデリゲートシリアライズ化は有用なように思えてしまいます 接続を切らずにStreamで独自形式の命令を送り続けることになり、クライアント側では送られてきた命令を解析するためのswitch/if文だらけのコードになってしまうからです でもif文羅列で正しいのかな・・・・どうなんだろう・・・・
478 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 01:18:24.92 ID:WGBivVxV0.net] プログラミング未経験からC#を勉強して1週間程の者です 疑問に思うことがふたつあるのでよかったら教えてください ひとつめは配列の宣言について、宣言は省略せずにきちんとしたほうがいいのでしょうか? また宣言する場合に string[] array = new string[3]; と変数名を最初にstringで指定しているはずなのに、配列の数をstringで再び書くのはなぜでしょうか? ふたつめは、 Console.Write("a は {0}, b は {1}", a, b); と書くのは Console.Write("a は " + a + ", bは " + b); と書くより見やすいためでしょうか?
479 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 01:25:53.37 ID:G7NVDdhd0.net] >>471 ひとつめ:varが使える場所ならvarを使った方がいい ふたつめ:前者だと、文字列をconstやリソースファイルで保持してパラメーターだけ入れ替えられる(=使いまわしできる)。 ただ、最近はよほどパフォーマンスにシビアだったりリソースを再利用したい箇所でなければstring interpolationを使うことの方が多い(圧倒的に見やすいしバグも発生しにくいから)。
480 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 01:27:37.22 ID:G7NVDdhd0.net] Console.Write($"a は {a}, b は {b}"); こうすると読みやすいしパラメーターの位置を間違える可能性が減る
481 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 01:52:02.63 ID:z9IiVZ7F0.net] C# は、面倒だな Ruby の式展開(interpolation)では、 ダブルクォート文字列内に、#{式} で書くと、式の結果を文字列に変換してくれる puts "a は #{ a }, b は #{ b }"
482 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 02:00:09.86 ID:yJ9OuDHU0.net] >>474 C#にもあるだろ。直ぐ上でも出てる。 $"a は {a}, b は {b}"
483 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 02:05:52.16 ID:G7NVDdhd0.net] 1つ上のレスくらい読んでくれよ…
484 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 02:12:46.91 ID:WGBivVxV0.net] string interpolationは参考にしておいたサイトでは見たことがなく初めて知りました 確かに圧倒的に見やすいですね varを使うことで必然的に型を指定して初期化することになるので、その辺りの宣言はしっかりしようと思います ありがとうございました
485 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 02:40:38.10 ID:G+0AwVAf0.net] Rubyの人 おかえりはこちらです
486 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 02:49:49.58 ID:U3MUj56p0.net] >>467 いいね!使ってみる。
487 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 05:00:17.20 ID:wxDeKJDL0.net] interpolation 略して inpo
488 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 08:33:51.55 ID:59NNwAx00.net] >>470 WebSocketとかSignalRとか使ったらサーバーからの通知対してにライブラリが適切なメソッドを呼んでくれるのでは
489 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 08:38:40.27 ID:xspDtD2o0.net] >>458 httpClientをusingする方が間違いでは? 接続先ごとに作るもんだと思ってた。ヘッダとか共通にしたい粒度と同じ粒度で。
490 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 09:55:00.36 ID:X9An2SCta.net] >>482 だから… usingするのは間違いだがじゃあどうやって使いまわすかでバグりやすい 使いまわすのをどこかに任せて使う側は自由に使えるようにしてないと 本当に使いにくい
491 名前:デフォルトの名無しさん [2019/06/16(日) 12:12:22.08 ID:NdAq/MEw0.net] >>480 +1
492 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 12:20:15.94 ID:xspDtD2o0.net] >>483 そう?APIアクセスにはこのHttpClient、リソースにはこのHttpClientって別けてると結構便利だけど。 デフォルトヘッダーつけたり、デフォルトのタイムアウトとかをそれ用に設定したりして。 URIなんかで適当に使い回されるのはちょっと使いづらくなるな。
493 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 12:29:55.12 ID:+FeN72guM.net] staticなインスタンスを持つという行為がオブジェクト指向にそぐわないのだろう
494 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 12:35:21.44 ID:WIm6t9KAd.net] じゃあDIによるシングルトンで
495 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 16:29:01.69 ID:xspDtD2o0.net] >>486 それも変な話だけどなー。 staticなインスタンスなわけではなくて、環境に対してインスタンスがあるんじゃないのかな。 使い回すって、もしかして何もかものHttpClientを1つのインスタンスや、いくつか作って適当に余ってるインスタンスで賄ってるの? 少なくとも1ホスト1HttpClientで扱わないとよろしくなかったはず。 そういう意味では、完全にstaticな訳ではなくて、多分MVCならコントローラごとに、宛先ホストやデフォルトヘッダー別のHttpClientを持てば充分なので、特に長寿命になる訳でも、広範囲に露出する訳でも無いんじゃないかな。 毎回作るようなusingで囲む事をするのはよろしくないだけであって、適宜作ってDisposeする分には問題ないっしょ。 だからデストラクタでDisposeできるようにIDisposableなんじゃ?
496 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 17:56:30.01 ID:yX0oMZwqa.net] Disposeは要らんかった 惑わされる
497 名前:デフォルトの名無しさん [2019/06/16(日) 17:59:45.19 ID:IRiSsL3Z0.net] デリゲートのシリアライズについて色々試したところ、WindowsやUbuntuのCore.2.2ではデリゲートのシリアライズは可能でした まさかMac版だけ違うとは・・・・ >>481 WebSocketについては全くわからないのですみませんが、Signalrは良さそうですね
498 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 18:56:40.91 ID:ikomc5kEr.net] >>488 絶対に一つのホストに対して非同期で複数接続しない? 変だろそれは? 普通に非同期処理やマルチスレッドなどを多用したところで複数接続することがあるだろ ちゃんと管理しないとおかしなことになる
499 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:03:24.48 ID:xspDtD2o0.net] >>491 xxxxAsyncはだいたいスレッドセーフだよ。
500 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:13:58.14 ID:6Ugz9fj30.net] httpClientの設計がまずいのは周知の事実だろ オプションとしてならいいけどさ まともな通信用のクラスをなぜ作れんのだ
501 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:20:45.53 ID:xspDtD2o0.net] んー、なんか俺の返事がズレてる気がする。 1つのホストの1つ用途に対して使い回すのは良いんだけど、 別のホストや別の用途に対して使い回すのは良くないんじゃないかな、って話で、 1つのホストの1つの用途に対して複数のHttpClientを使うのも、悪かないんじゃないの?限度があるけど。 そもそもHttpClientを毎回作ってはいけない理由が、インスタンスを立てるとソケットをopenしに行って、CloseしてもTIME_WAIT以降を待ってソケットがcloseするから、パフォーマンス的にもまずいしソケットが枯渇するって問題なんだし、 捨てないとDNSの変更が反映されない問題も避けれないんだから、LBとか考えると同一ホスト対象でもずっと使い回すより、処理粒度に合わせてインスタンス持つようにした方がいいんでないの、って要旨だった。
502 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:22:37.45 ID:xspDtD2o0.net] >>493 結構まともな設計だと思うけどなぁ。 MSDN読んでない奴が安易にusingしたり、安易にずっと使い回すからいかんのでは? そんなどうhttp接続を使うかみたいなビジネスロジック層の問題をフレームワークに求めるのは酷じゃ無いかな。 あくまでWindowsのソケットの実装としてはね。
503 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:24:29.05 ID:ikomc5kEr.net] その管理を誰がやるのか? 低級プログラマがそれを考えて使えるのか? 使えないなら管理をどこかでちゃんとやる仕組みを作れ
504 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:27:19.28 ID:ikomc5kEr.net] そもそもの仕組みは簡素なつもりなんだろうけど 結局考えてコーディングしなければバグってしまってアプリを使ってる人にはその理由がわからない
505 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:36:40.16 ID:G7NVDdhd0.net] >>496 だからHttpClientFactoryなんだろ何回も言わせんな…
506 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:51:24.02 ID:ikomc5kEr.net] .NET Frameworkは?
507 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 19:58:59.39 ID:xspDtD2o0.net] >>496 そんな字が書けなくても小説が書けるノートを寄越せみたいな事言って何になるの?
508 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 20:01:51.47 ID:ikomc5kEr.net] .net core 3.0でWPFサポートはいるけど それまではWPFなどで作る場合.NET Frameworkだろ ずっと放置しといて.net coreで入ったからいいなんて思うなよ
509 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 20:02:01.46 ID:xspDtD2o0.net] >>497 簡単な事だと思うんだけど、考えてコーディングすれば良いだけでは? 考えずにコーディングする方がどうかしてるんじゃないの? くもんのドリルとか、早指しの将棋じゃねえんだから。
510 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 20:24:08.68 ID:+fU13JTma.net] >>490 へー もちろん、ラムダ式で変数キャプチャーやメソッドやプロパティーにアクセスしたり、 そもそもデリゲートがメソッドを参照してる場合はNGだよね?
511 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 21:07:08.31 ID:6Ugz9fj30.net] まず通信のためのインスタンスを保持しておく必要があるって点が意味不明 なんで一通信毎に一インスタンスを使い捨てさせてくれないんだ?
512 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 21:11:11.53 ID:2a6zi2hA0.net] ないなら作ればとしか思わんけど
513 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 21:15:37.29 ID:0NEzhhkla.net] Keep Aliveの為に必要なんですよ
514 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 21:27:28.53 ID:2mY5Onwd0.net] HttpClientに関連して、NetworkCredentialのダイジェスト認証バグもどうにかしろよって感じです。 GETにクエリパラメータ付いてると認証失敗したり、ところどころRFCに従ってなかったりとか。 散々ググって、どうやら解決方法が自前実装しかないと辿り着くまでに時間かかった。。 今どきダイジェスト認証って感じで放置されてるのかもですが、 Webサーバ積んでるIoT機器なんかでは結構使われてるので、ちょっとしたツール作るのもダルくなります
515 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 21:35:16.94 ID:WJsnIQ8z0.net] 半端なライブラリはこれだから Javaみたいに産廃レベルだと「じゃあ俺が最強のHttpClientを作ってやる」ってのが出てくるのにね
516 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 21:41:01.31 ID:+fU13JTma.net] web系は仕事で触ったことないからまったく分かんないやw どっかにいいチュートリアルとかある? でも話聞いてるとweb系って今でもバッドノウハウの塊みたいでストレス度高そうだなw
517 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 22:05:12.05 ID:6Ugz9fj30.net] >>507 そんなんあるんかよ… つまりヘッダを自分で組み立てるしかないってこと?
518 名前:デフォルトの名無しさん [2019/06/16(日) 22:20:27.61 ID:gEahNK3la.net] 結局MSはWPFをどうしていくんだろうか
519 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 22:25:47.52 ID:wD0NHooaM.net] C
520 名前:#プログラミング初心者です Form実行時の各イベントの発生順序について質問させてください Form実行時にどういう順番でどういうプログラムが処理されていくのかよくわかりません Formを実行したときFormのコンストラクタが設定されイニシャライズ内の各コントロールが配置されるという認識で合ってますか? あと実行時に一番最初に処理されるのはProgram.csですか? コンストラクタとイニシャライズの意味がよくわかっていないかもしれません よろしくお願いします [] [ここ壊れてます]
521 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 22:33:03.04 ID:gLoRAJ8t0.net] >>512 もう十年やってる俺の認識と一致してんじゃん 後は強く生`
522 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 22:47:40.58 ID:Qo3kD6WQ0.net] >>512 コンストラクタはFormもそうだけどクラスのインスタンス生成時に最初に呼び出される InitializeComponent()は単なるVisualStudioが用意しているデザイナのためのメソッド コンストラクタ内などで自分で用意してもいい 一番最初に処理されるのはProgram.csでなくその中に書いてあるclass ProgramのMain(エントリポイント) とりあえずこの辺から読んでみたら。特に理解しなくてもコードは書けるけども [雑記] エントリーポイント https://ufcpp.net/study/csharp/structured/miscentrypoint/ [基礎] C#のプログラムの基本構造 https://ufcpp.net/study/csharp/st_basis.html
523 名前:デフォルトの名無しさん mailto:sage [2019/06/16(日) 22:58:44.87 ID:wD0NHooaM.net] >>514 親切にURLまで貼っていただきありがとうございます とてもわかりやすかったです 助かりました
524 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 11:09:57.31 ID:aKGiWlYO0.net] なんかメモリーがどんどん減ってくんですが。
525 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 11:41:26.98 ID:KqnEIU5BM.net] それは痴呆だよ
526 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 11:45:08.07 ID:d6mw/rQbp.net] 観測した途端にメモリーが足りなくなる不思議
527 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 12:01:39.02 ID:KqnEIU5BM.net] 記憶がだんだん遠くなる
528 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 13:56:49.50 ID:JXiMVUT0M.net] 観測しなければいいじゃん
529 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 14:00:02.92 ID:i1zZ44t70.net] 足りないのに無くならない不思議
530 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 14:07:34.68 ID:fWv+7syLd.net] WPFデビューしようと思って色々調べてるんだけど情報少なすぎない? Prismが便利らしいけど公式サンプルがちょこっとあるだけだし全然使えなさそう
531 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 14:20:39.66 ID:a0UOupWUd.net] それはWPFじゃなくてPrismの問題だろw
532 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 17:13:19.75 ID:d6mw/rQbp.net] WPFはFormと同じ名前のまんまのメソッドやプロパティ使えたら不人気にならなかったはず。 微妙に違ったりするから混乱するんだよな。
533 名前:デフォルトの名無しさん [2019/06/17(月) 23:14:24.82 ID:js38FdP50.net] class test { byte i = new byte(); public void calc() { ... } ... } こんな感じのnewの使い方をみたのですが、こういうのc#だけですよね? どこかに解説はありませんか?
534 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:24:08.75 ID:qS39OOn20.net] >>525 書き方として有効でも普通はそんなことやらない https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/new-operator >new 演算子は値型のパラメーターなしのコンストラクターの呼び出しにも使用します
535 名前:デフォルトの名無しさん mailto:sage [2019/06/17(月) 23:54:16.01 ID:dLLbEhJJM.net] 構造体の引数無しのnewはdefaultと同じ newだとユーザー定義の初期化処理が走っているように見えてしまうから、最近だとdefaultのほうが好まれる傾向がある フィールドの場合は明示的に初期化しなくても勝手に既定値で初期化されるから不要なんだけど
536 名前:デフォルトの名無しさん [2019/06/18(火) 05:55:07.37 ID:LmNIdt8j0.net] C# でDB勉強中なんですが、以下のケースでは、更新/挿入/削除するべきレコードの判定はどうすればよいでしょうか? 元テーブル -------------------------- id | item_name | item_location | -------------------------- 1 item1 1 2 item2 1 3 item3 2 -------------------------- これをDataGridViewに読み込んで、以下のように修正するとします。 -------------------------- id | item_name | item_location | -------------------------- 1 item3 2 ← item1がitem3に変更 2 item1 3 ← item2がitem1に変更されてlocationも変更 3 item4 1 ← item4 追加 4 item5 1 ← item5 追加 -------------------------- ※item2は削除 この処理の場合、insert・update・deleteするべきレコードの判定はどうやって行ったらよいでしょうか?
537 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 06:10:50.02 ID:+H1sBCCVM.net] キー項目は何?無ければ作る
538 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 06:12:13.77 ID:d6M+0/F+0.net] 洗い替えがいいんじゃない? 元テーブルを裏で保持してて対象レコードを全部削除する 修正後を全部INSERT
539 名前:デフォルトの名無しさん [2019/06/18(火) 06:13:19.34 ID:3nOE2mBA0.net] プログラム板にキチガイ降臨中!botに一晩も反応する異常さ 一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。 https://mevius.5ch.net/test/read.cgi/tech/1559872586/ 142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO >>141 名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、 片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか? 一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
540 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 07:41:47.49 ID:HGOf7fkO0.net] WPFが流行らないまま時代はスマホアプリに
541 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 10:24:27.14 ID:MvE0vXDO0.net] >>528 件数にもよるけど全体より修正が少なければ、最初にトラン作っておいて、編集がかかるたびにupdate/insert/delete。 確定時にコミット。 そうでなければ>>530
542 名前:528 mailto:sage [2019/06/18(火) 12:27:38.88 ID:LmNIdt8j0.net] >>530 >>533 神様!ありがとうございます!!
543 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 14:34:26.70 ID:H7tttB9U0.net] C# でセレニウム(Chrome)を操作しています。 この時に ページを復元しますか? Chromeは正しく終了しまsんでした 障害レポートと使用統計データ・・・ というメッセージが出て邪魔です。 これを出ない様に出来ないでしょうか?
544 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 15:07:21.28 ID:6gzOVRYwd.net] >>535 再現可能な必要最小限のプロジェクトを共有して
545 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 16:06:35.49 ID:H7tttB9U0.net] >>536 再現しないですかね? 普通にC#+ChromeDriverです。
546 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 16:35:19.94 ID:6gzOVRYwd.net] しないよ
547 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 18:08:04.60 ID:WG6tLdsV0.net] ずーっとセレニウムと格闘してんねw
548 名前:デフォルトの名無しさん [2019/06/18(火) 18:35:30.59 ID:lLW7uP7d0.net] >>537 ChromeDriverのことはChromeDriverのForumで聞けよ https://groups.google.com/forum/#!forum/chromedriver-users
549 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 19:51:09.93 ID:9LNNY8IFM.net] C#でDB操作時かつトランザクション使用時のコミットやロールバックを書く場所と、例外発生時の処理の止め方について質問させてください DB内のデータをC#のDataGridViewにバインドし編集したのち登録や削除を行う課題をしているのですが、 コミットやロールバックを書く場所や、例外発生時に処理を止める方法がよくわかりません 今までメソッドの処理を中断するときはreturnを使えば良いと思っていたのですが、私に課題を出していただいてる方にそのやり方ではないと言われました どうやらthrowを使うパターンもあるらしいのですが調べてもよくわかりません わかりにくい文章で申し訳ありませんがヒントだけでもいただけたら嬉しいです どうかよろしくお願いします
550 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 20:01:43.07 ID:z/sE9uve0.net] >>541 throwはこれ。例外を投げて場合によってはメッセージを入れるなどして呼び出し元でcatchさせたりする https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/throw
551 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 23:02:13.66 ID:PmBejiWq0.net] Ruby で、Selenium WebDriver を使えば? Chrome Driver は、ちょくちょく変わるよ。 それに、Chrome も、知らない間に、バージョンアップされてる! 自分のChromeが、バージョンアップされた時に、 新しいChrome Driverにしていないと、バージョンの不一致により、エラーで落ちる! 自分のChromeのバージョンを見て、もしバージョンアップされていれば、 そのバージョンに合った、Chrome Driverに変えてください!
552 名前:543 mailto:sage [2019/06/18(火) 23:13:17.82 ID:PmBejiWq0.net] それと、5ch みたいに、空のHTML を送ってきてから、 Ajax で内容を取得するようなサイトは、 30秒ぐらい待たないと、内容が取得できないこともある それと、5chはバグが多いから、ある日、突然動かなくなる。 IE では、フリーズするし サイトのバグで動かなくなることも多いから、 example.com とか、色々なサイトで、使ってみる事!
553 名前:デフォルトの名無しさん mailto:sage [2019/06/18(火) 23:17:03.81 ID:H7tttB9U0.net] >>543 >>544 Chromeがマスト条件なんですよね。。。
554 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 00:25:52.80 ID:SHnWP/2E0.net] >>545 そいつは自分の言いたいことを言うだけだから、会話しようとしても無駄だぞ
555 名前:デフォルトの名無しさん mailto:sage [2019/06/19(水) 00:43:45.23 ID:cBT9gst5a.net] chromeコンテナ使えよ
556 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 10:51:14.98 ID:+Ex9QBom0.net] DataGridViewの列にDataGridViewImageColumnを設けています。 ネットからダウンロードしたエロ画像をローカルに保存して DataGridViewのその列に1.jpg〜5.jpを一覧表示します。 DataGRidView.DataSource = ero_DataTable; 参照している画像 c:\dat\downloaded_files\1.jpg 〜 2.jpg 再び別の画像をダウンロードし DataGridViewにレンダリングする為に、まず最初にローカル画像を削除しようとすると 「別のプロセスで使用されているため、プロセスはファイル '1.jpg' にアクセスできません。」 というエラーメッセージが表示されてしまいます。 ローカルの画像を削除した後で、新しい画像をネットからダウンロードしてローカルに保存し 1〜***.jpgとして保存し、DataGridViewから参照したいのですが、何か良い方法はないでしょうか?
557 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 10:52:25.51 ID:LVq54M8sp.net] とりあえずcloseだな。
558 名前:デフォルトの名無しさん mailto:sage [2019/06/21(金) 11:05:23.63 ID:+Ex9QBom0.net] >>549 Closeはインテリセンスにいずれも出ませんでした。。。 困ってます。教えてくださいm(_)m