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


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

ふらっと C#,C♯,C#(初心者用) Part143



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

448 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 13:36:31.53 ID:Io9qelQj0.net]
APIとしてはWindowsがある限り残るだろ
内部的に別の仕組みの描画フレームワークに渡すだけになる将来はあるかもしれんが

449 名前:デフォルトの名無しさん mailto:sage [2019/06/14(金) 19:05:00.84 ID:B1OfNWTta.net]
独自OSはやめてLinux M$ディストリになったら最高なんだけどね

450 名前:デフォルトの名無しさん [2019/06/15(土) 00:33:09.29 ID:8CcGi59t0.net]
while(i<=1000000)
{
i++;
}

こういうお手製のループって結局invokeと同じ機能なんですかね?
待つという意味では

451 名前:デフォルトの名無しさん [2019/06/15(土) 02:59:58.42 ID:h/MXyyEj0.net]
質問です。
JSONシリアライズなんですけど
{ "foo": "bar" }
としたいのに、DataContractJsonSerializerに
Dictionaryをシリアライズさせると
{ "key": "foo", "value":"bar" }
となってしまいます。
何かいい方法ないですか?
どういうキーワードでググればいいかも分からなくて。

452 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 06:29:12.34 ID:izWNJzhX0.net]
>>443
何のinvokeの話なのか知らないけど
ほとんどのInvokeメソッドとは全く違うんじゃないかな

>444
DataContractJsonSerializerSettings.UseSimpleDictionaryFormat

453 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 07:12:02.05 ID:+UtdpkHU0.net]
ConcurrentDictionary<Guid, ConcurrentDictionary<int, string>>
のようなデータ構造で、Value部の付け外しにlock機構って必要ですか??

var cd = new ConcurrentDictionary<Guid, ConcurrentDictionary<int, string>>();

lock(_lockObj)
{
 if(!cd.TryGetValue ・・・)
 {
  var child = ConcurrentDictionary<int, string>();
  cd.TryAdd(Guid.NewGuid(), child);
 }
}

2つのスレッドがほぼ同時にアクセスしたとき、
最初に追加したValue部(ConcurrentDictionary<int, string>)を潰したくないです。

lock使うなら、普通にDictionaryでいいんですかね・・ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)


454 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 07:35:12.58 ID:IMLKv0k+0.net]
getとaddが不可分操作じゃないから要る

455 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 09:17:07.61 ID:6PSH/Imja.net]
>>446
TryAddがfalseを返したら処理を最初からやり直せばいい
それならロックは不要
楽観的排他制御ってやつだ

456 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 14:37:59.48 ID:qro2r2SGM.net]
HttpClientもWebClientもHttpWebRequestもまともじゃないのは一体なんなんだ



457 名前:デフォルトの名無しさん mailto:sage [2019/06/15(土) 14:47:05.46 ID:hWID9DJjM.net]
>>449
具体的には?

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






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

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

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