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

レス数が900を超えています。1000を超えると表示できなくなるよ。
2022/11/25(金) 13:16:08.91ID:HZEumDr50
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を3行冒頭に書くこと(1行分は消えて表示されない為、もう1行は予備)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part156
https://mevius.5ch.net/test/read.cgi/tech/1663479569/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2023/02/28(火) 19:29:40.86ID:M/injSE6p
三文字打てば良い楽々コーディングよな
2023/02/28(火) 19:53:22.92ID:It5dm/K20
>>825
そこマイクロソフトよりデカい?
2023/02/28(火) 20:03:37.91ID:qEty2QKoa
だからそう言ってこいよ
2023/02/28(火) 20:24:10.06ID:gde+l/Fdp
VisualStudioは、 varを使うか型名を使うか、どっちにしても余計なお節介出して来るんだよなぁ
2023/02/28(火) 20:36:45.66ID:0m/LxTGDM
ツールに振り回されてんの?
人として情けないね
2023/02/28(火) 20:44:18.58ID:kJd3bldF0
何言ってんだコイツ。
2023/02/28(火) 22:14:36.56ID:QptBiF/w0
ただでさえプログラムは面倒くさい事のオンパレードなのに、var位使って行こうぜ
834デフォルトの名無しさん (ワッチョイ ae05-Fsum)
垢版 |
2023/02/28(火) 23:33:21.23ID:N7XzWDMw0
>>822
完全に同意
否定人のコーディング見てみたい
2023/03/01(水) 01:34:59.57ID:VyWbviLu0
LINQの場合、var書かないわけにもいかないし、その時だけだと統一感が悪い。
2023/03/01(水) 07:54:50.21ID:qaR+V2vd0
>>835
お前はお前で匿名クラスなんて使ってんじゃねえよ
上位互換のタプルができて何年経つんだ
2023/03/01(水) 08:07:51.48ID:tbGPzE+Ma
タプルが上位互換とは
2023/03/01(水) 08:44:56.23ID:c5msHDS5a
varを使ったほうが楽じゃん
2023/03/01(水) 09:03:00.15ID:qaR+V2vd0
>>837
知らんのか
2023/03/01(水) 10:03:28.25ID:sgVp+QOv0
Item1とかItem2とか、どれが何のためのデータなのか解らんようなの使う気にならんな……
2023/03/01(水) 10:25:21.30ID:zgl5hYJEa
>>840
名前つけられるの知らんのか
2023/03/01(水) 10:28:16.33ID:NWENc0Hxp
メソッドの引数のネーミング、考えるの面倒だよな?
2023/03/01(水) 10:45:11.60ID:zgl5hYJEa
命名が難しいのはだいたい設計が悪い
ローカル変数ならともかく引数は明確な役割があるはず
2023/03/01(水) 10:46:22.97ID:iOTs8eHzp
>>843
だからそのprivateメソッドの方が尚更面倒なんよ
2023/03/01(水) 10:48:50.55ID:zgl5hYJEa
だからそれは変な切り出し方をしてるからだよ
2023/03/01(水) 10:51:27.66ID:iOTs8eHzp
ローマ字つづりでいいかなぁ?
2023/03/01(水) 10:54:17.84ID:sgVp+QOv0
>>841
そっちのタプルは構造体やん
2023/03/01(水) 11:44:56.01ID:zgl5hYJEa
>>847
構造体だからパフォーマンスが高いんだろw
2023/03/01(水) 12:27:27.77ID:sgVp+QOv0
俺、パフォーマンスの話なんかしとらんからなぁ
まぁ、ValueTupleも場合によって使うけど、だいたい即値分解してしまうからあんまりメンバ名付けたことないな
2023/03/01(水) 12:51:38.98ID:iHuCndf+a
>>849
じゃあ構造体で何が悪い?
2023/03/01(水) 14:00:57.77ID:svqy3iKu0
なんでこの人たちこんなイライラしてるの
2023/03/01(水) 15:07:47.34ID:qaR+V2vd0
イライラしたやつ出てきたなw
853デフォルトの名無しさん (ワッチョイ dae6-Csze)
垢版 |
2023/03/01(水) 17:45:05.94ID:LI8bJI1D0
正規表現で、一致した文字列のうちの一部だけを変更するにはどうすればいいでしょうか。
例えば、
\[.+\|.+\]
というパターンでマッチングして、マッチした値の[と|と]を置き換えたいです。
↓例
入力:[あ|あいうえお]
置換後:<あ-あいうえお>
※[を<に、|を-に、]を>に置き換えています。
854デフォルトの名無しさん (ワッチョイ fa74-hJgV)
垢版 |
2023/03/01(水) 17:49:47.98ID:81D5Vj700
\[(.+)\|(.+)\]
<$1-$2>

これくらいハゲでもわかる
2023/03/01(水) 17:55:01.04ID:LI8bJI1D0
>>854
ありがとうございます!!(>▽<)
2023/03/01(水) 19:34:04.22ID:LQeRVcKu0
また髪の話してる・・・
2023/03/02(木) 01:06:05.40ID:pwr4e0eZ0
ModernWPF UIのコンテントダイアログでプログレスダイアログをいい感じにMVVMで実装する方法ないかな?

やりたいこと:
これをProgressDialog.xamlで定義してEventAggregatorでイベント飛ばしてプログレスバーとテキストを更新
https://github.com/Kinnara/ModernWpf/wiki/ContentDialog

令和にもなって、IProgressDialogやTaskDialogというか別ウィンドウ出すのはなんかダサいし。
2023/03/02(木) 01:40:05.17ID:W+Au/SFm0
>>857
WPF(.NET, WinUI) GUIプログラミング Part31
https://mevius.5ch.net/test/read.cgi/tech/1674334396/
ここで質問の方が良くないか?
2023/03/02(木) 09:19:55.51ID:pwr4e0eZ0
>>858
OK、そっちで質問してみる。
マルチポストになっちゃうが。
2023/03/02(木) 09:20:53.64ID:2uS/Yj6n0
誘導されてきた言えば問題ないやろ
2023/03/02(木) 09:51:09.87ID:TSzVcIRer
>>1にも
>内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
とあるしね
2023/03/04(土) 22:44:54.38ID:MWrxXT5A0
あるクラスの中に定数やenumを定義したとき、そのクラスのインスタンスを複数個生成したら
全く同じ定義がそれぞれのインスタンスに含まれてしまうのでしょうか?
もしそうでも別に実害は無いですが、なんか気持ち悪いです。
2023/03/04(土) 22:52:26.87ID:XS/j5rrj0
アホw

出来る出来ないの話と
実際にやるやらないは別

気持ち悪いと思うならやならければ良い
それがクラス設計ってもんやろ
2023/03/04(土) 23:10:17.51ID:MWrxXT5A0
>>863
では、862の現象が事実だと仮定して、それを回避するには
例えばCarState列挙型を定義したいときは、Carクラスとは別にクラスを作ってそこに定義するしかないのでしょうか?
2023/03/04(土) 23:31:39.37ID:8JZeKg+Q0
ただの定義にインスタンスもなにもないよ
気にする必要は無い
2023/03/05(日) 00:06:21.53ID:jHbb3BElM
>>862
含まれない
2023/03/05(日) 00:18:49.48ID:ebD0iZh90
>>865
>>866
ありがとうございます。
2023/03/05(日) 01:59:20.41ID:Q+Z0cI/30
そこらのSEよりC#のコンパイラのほうが何倍も賢い
2023/03/05(日) 07:49:42.36ID:eEJXh7qx0
>>864
何で列挙型をクラスの中に作るって発想しかないの?

CarクラスとCarState列挙型を作るだけやろw
アホw
2023/03/05(日) 07:56:16.98ID:ZL6T0NVj0
>>862
constはクラスの中に入れんとダメだが、enumはclassの中じゃなくても定義できるやで
2023/03/05(日) 08:19:17.85ID:eEJXh7qx0
結局は基礎が出来てないだけかw

出来る事が分かってなきゃそうなるわな
特に基礎レベルで分かってなきゃ尚更
2023/03/05(日) 08:27:55.53ID:XuMWIxYS0
constやenumがビルドしたらどうなるのかとか、classの実体がどうなるのかとか
そういうのちゃんと勉強した方がいいね
2023/03/05(日) 08:59:55.66ID:4pO1EQ6ma
>>869
それは別にいいだろ
作れるようになってんだから
クラスの中に入れちゃいけない縛りだとprivateなenum作りたいときどうすんの
2023/03/05(日) 09:22:43.13ID:eEJXh7qx0
>>873
だから“しか”って言ってんだろ
2023/03/05(日) 09:24:43.12ID:eEJXh7qx0
こういう文章の意味が分からずに突っ込んで来る連中って本当にプログラム書けてるの?

プログラム“言語”だぞ
2023/03/05(日) 09:25:19.90ID:4pO1EQ6ma
>>874
逆になぜそこで「しか」と思っちゃったんだよ
2023/03/05(日) 09:26:42.55ID:4pO1EQ6ma
>>875
お前昨日のやつだろ
自分の言葉がどれだけ怪しいか指摘されたことないのか?
煽り抜きで見るからにアスペだぞ
指摘されても自分で否定して忘れてるならこれからは少し聞く耳を持ってみろ
2023/03/05(日) 09:32:14.41ID:eEJXh7qx0
昨日のやつ?

俺はDBのPKフィールドはGUID使えばリスク減るって言ってた奴だよ

別人と勘違いすんじゃねえよ
文言で区別付くだろ

これだから無能はw
2023/03/05(日) 09:34:22.04ID:VNYPZIzLd
相手の質問に煽るだけって時点でね…
そもそも質問も答えもまだ理解できてないんじゃないか
2023/03/05(日) 09:39:07.78ID:HVqlejWD0
>>878
そっちの無能かw
どっちにしろ無能じゃねーかw
2023/03/05(日) 09:47:05.28ID:eEJXh7qx0
は?
お前ら全員が無能だって証明されて終わったやんw
何言ってんだ無能w
2023/03/05(日) 09:55:22.67ID:4pO1EQ6ma
こんな典型的なアスペはなかなかいないな
2023/03/05(日) 10:35:18.92ID:tq7yfQYd0
>>870
learn.microsoftなど見るとこれが一番適切な回答っぽいな。ただキーワードが分かっているものは自分で検索したほうが質問するよりずっと早い
enum
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/builtin-types/enum
const
https://learn.microsoft.com/ja-jp/dotnet/csharp/language-reference/keywords/const

あとNG推奨
ワッチョイ 417c-1tkp
アウアウウー Sa1d-/UsF
ワッチョイ c907-/UsF
2023/03/05(日) 10:38:45.37ID:HVqlejWD0
>>883
どこを見て有効だと思ったんだw
NG推奨はお前だアスペ
2023/03/05(日) 11:33:39.09ID:LimRRCEtd
前回は流してたんだがGUIDをキーにするとした場合、
少ない時間で大量にデータが登録される際の並び順ってどうやって保証するのかね
(INSERT~SELECTで複数件登録するとか)
そういう時は使わないって回答なんだろうか
2023/03/05(日) 12:11:21.86ID:V5cM5Nk90
IDENTITYの自動採番だってそういうの保証はされないんじゃね?
何らかの順序情報が必要ならそれを持たせるようにしないと。
2023/03/05(日) 15:46:52.04ID:CbYCfeUhM
>>886
一括の複数インサート時の順序は保証されてる

複数テーブルにまたがる複数のトランザクションならインサート順とコミット順が前後する可能性はあるけどインサート順とidentityの大小は基本的に保証されてる
保証されないのはIDENDITY_INSERT OFFのような特殊な使い方をした時だけ

ついでに言うとコミット順で完全にソートできるようにするには1つのトランザクションがコミットするまで次のトランザクションを待たせる作りが必要になるので一般的にはやめたほうがいいやり方
2023/03/05(日) 16:11:18.22ID:LimRRCEtd
普通は1トランザクション内で保証されていればいいと思ってるけど
仕様によっては複数トランザクションでも保証しないとだめなケースもあるとしたらそうかもしれないね
スレチだったわすまん
2023/03/05(日) 16:34:12.19ID:wm/Rzcr70
GUIDはメリットがまったくないわけじゃないが、言うほど強力なものでもない
何しろ彼でさえ理由を具体的に説明できない程度だからね

で、問題はユニークであることが完全に保証されないからそれなりのケアが必須だってことだな
2023/03/05(日) 16:37:17.48ID:V5cM5Nk90
>>887
だから他のトランザクションから見てID列の値が単調増加に見えるのはdirty-readの場合だけじゃん。
一般的なread-commited以上なら最大IDより小さなIDが後から挿入されたように見えることもあるわけで。
891デフォルトの名無しさん (ワッチョイ 8bbb-W6o5)
垢版 |
2023/03/05(日) 17:55:09.83ID:7ksBORrg0
すまんが、ASP.Net Coreに用意されてる3(4?)つのフレームワークでさあ
ログインページを各言語に対応させるにはどうすればよかんべ?
他の自分で作ったページを多言語化する方法は乗ってるけど、フレームワークで用意されてるログインページ等はどうすんじゃい???
https://learn.microsoft.com/en-us/aspnet/core/blazor/globalization-localization?view=aspnetcore-7.0&pivots=server
2023/03/05(日) 18:35:43.98ID:Vq0cOu8uM
>>890
何が「だから」なのかよくわからない
他のトランザクションから見て最大IDより小さなIDが後から挿入されたように見えて何か問題あるの?

>>886に書いてある何らかの順序情報を持たせたとしてもコミット順じゃなくインサート順だから全く同じことなんだが?
2023/03/05(日) 22:00:17.61ID:V5cM5Nk90
>>892
>他のトランザクションから見て最大IDより小さなIDが後から挿入されたように見えて何か問題あるの?

そこは外のトランザクションから見た場合に挿入順序とIDの増加順が一致することが保証されないという
事実を書いただけだが。
それで困るかどうかは要件次第。
たとえば定期的な処理で前回の処理以降に追加されたレコードを求めるのに前回のmax(ID)を使うとか、
そういう用途には使えない。
2023/03/05(日) 22:13:31.94ID:V5cM5Nk90
いや、明示的にテーブルロックとるかrepeatable-read以上で最初にmax(ID)取得してしまえばいいか?
どっちにしろそのへん意識する必要がある。
2023/03/05(日) 23:19:20.27ID:6Aoy6FGpM
>>894
分離レベルで対応するならシリアライザブルじゃないと防げないんじゃないかな?

でも現実的にはテーブルロックやシリアライザブルは同時実行性能を極端に落とすので
挿入日時のようなデータを使って締め前に開始したトランザクションが確実にタイムアウトしてるようなタイミングで締め前に挿入されたデータだけを処理したり
処理ステータスを示すカラムを作って対応する

バッチ処理の頻度や重要度やエラー時に必要な対応によって実装を選択することになる
2023/03/05(日) 23:30:28.82ID:wm/Rzcr70
結局レコードをトランザクションに書き込むタイミングでIDは発行されるしタイムスタンプもその時間となる
コミットしたタイミングなどDBに記録することは不可能だし一体何を問題にしているのやら
2023/03/05(日) 23:41:58.79ID:NuUQDnR4M
GUIDとの比較で重要なのは後続のバッチ処理みたいなのがあったときに
IDENTITYの場合はほぼシーケンシャルアクセスで処理できるがGUIDだと完全にランダムアクセスになるので桁違いの遅さになる
外部キーなんかを含めて1ページに収まるレコード数が減るのとランダムアクセスで性能が極端に悪化する場合があるのがGUIDの一番のデメリット

NEWSEQUENTIALID()でシーケンシャルなGUIDも作れるけど分散環境でマージが必要な状況でない限りIDENTITYに対するメリットがない

他にはULID使う方法なんかもあるけどやっぱりメリットデメリットがあるので当たり前だけど用途に合わせて使い分けるもの
2023/03/05(日) 23:43:48.09ID:V5cM5Nk90
>>885の言うような順序の保証は単なるIDENTITY任せじゃダメな場合があるってこと。
2023/03/05(日) 23:54:52.18ID:wm/Rzcr70
>>898
IDの発行と書き込み時のタイムスタンプはトランザクションに書き込んだタイミングで同時に行われるから
結局IDとタイムスタンプの順番はおなじになるんじゃね?
コミットのタイミングなど何処にも記録されない
2023/03/06(月) 00:04:07.46ID:+8ntKfDE0
トランザクションの外から見た場合、タイムスタンプが古いレコードが後から現れたりするのは変わらん。
2023/03/06(月) 00:47:16.07ID:ai8Q1Y+e0
>>887
>インサート順とコミット順が前後する可能性はあるけどインサート順とidentityの大小は基本的に保証されてる
インサート順ってなんのことを言ってるの?
まさかSQLの発行タイミングのことをいってるのか?
2023/03/06(月) 08:34:46.51ID:WDk1SNWF0
また始まったのか・・・
2023/03/06(月) 08:41:17.38ID:jJIeXpQ30
何度スレチだと言われても耳を貸さない連中だから放っておくしかないべ
2023/03/06(月) 09:01:59.17ID:Qy0wg21h0
ニートだからスレタイ読めないのか、スレタイ読めないからニートなのか、それが問題だ!
2023/03/07(火) 16:27:16.46ID:R6IzsuUJ0
Blazor Desktop でアプリ作る場合、JS 使うのって邪道ですか?
普通はどうなんでしょうか?
2023/03/07(火) 16:29:37.59ID:nGiwAbPE0
>>905
邪道というより仮想DOMがよくわかってないと難しいぞ
907デフォルトの名無しさん (ワッチョイ 1301-ksrJ)
垢版 |
2023/03/07(火) 21:34:13.24ID:eLRrbAoH0
>>905
別に邪道じゃないよ
猫ジョーカーもPrism.js使ってた
2023/03/07(火) 22:25:01.39ID:/W+QRqxd0
コントロールのプロパティをVisual Studioのプロパティからいじるのと、
コードに直接記載するのはどっちがベストプラクティスでしょうか?
2023/03/07(火) 23:03:26.48ID:iHhQsjAZ0
>>908
好きなほうでいいよ
自動生成か自分で記述するかは些細な違い
コメントも残したいなら当然、load以降のタイミングだね
910905 (ワッチョイ 13e6-xySQ)
垢版 |
2023/03/08(水) 00:27:21.36ID:OaTx32y+0
>>906-907
ありがとうございます。
今既に使ってるんですが、後になって「JS使わない為のBlazorだろ」とか「JSなしで出来ねーのかよ」
とかいう謎のイチャモン言われるのがちょっと怖かったのです。
2023/03/08(水) 07:00:30.67ID:+lL6bJso0
Load以降じゃなくてもコンストラクタでも良くない?
2023/03/08(水) 07:59:37.27ID:UYleOs8I0
>>910
マウイ君みたいなキチガイは無視でいい
2023/03/08(水) 08:08:55.61ID:dTyeizIq0
>>908

デザイン画面との差異が発生しにくいから
コードじゃないと設定できない事以外は基本的にはフォームデザイナでやってる
コードでやられると、一々実行して確認しないといけないし
人によって書き方・書く場所違ったりして追うのが邪魔くさい
2023/03/08(水) 08:51:11.40ID:qdKF3wc3d
フォームデザイナは良いんだけど、変更値をコードに出力する方法あるのかな
パラメーターシート作る時毎回困る
2023/03/08(水) 09:11:44.28ID:h0XeijSda
>>914
designer.cs
916デフォルトの名無しさん (ワッチョイ 8bcf-3zFX)
垢版 |
2023/03/08(水) 09:16:43.12ID:jVki9SUw0
昨日一日、メソッドが動かなくて悪戦苦闘してたが
単に、メソッドを割り当ててたボタンのクリックイベントが
なぜか外れてただけだった!
くそ!!!!
2023/03/08(水) 09:22:20.21ID:h0XeijSda
>>916
なぜ外れたかはともかくなんでそれで一日悪戦苦闘することになるんだ?
真っ先にイベントハンドラにブレークポイント張らないか?
それで呼ばれなかった場合Shift+F12で一発でわかるだろ
2023/03/08(水) 09:50:33.13ID:NmLqgG0dM
>>914
デザイナで設定した値全部ドキュメントに出力すんの?不毛すぎる
ドキュメントから初期化メソッドのソース生成するならまだ分かるが
919デフォルトの名無しさん (ワッチョイ 8bcf-3zFX)
垢版 |
2023/03/08(水) 10:51:13.94ID:jVki9SUw0
>>917
デバッガの見方がいまいちよくわかってないからなwww
分かりやすいサイトあったら教えてくれ

メソッドのケツで止まってるような表示だったから
中身ばかり見てた
結局、関係するところ全削除して
ボタンを配置しなおしてクリックイベント設定したら
最初のメソッドで動いた
2023/03/08(水) 12:46:01.79ID:qdKF3wc3d
>>918
既定値から変更した箇所って原則全て網羅してパラメーターシートに出してるけど
これ仕事だと普通じゃないの?
不毛なの?
2023/03/08(水) 12:48:38.98ID:qdKF3wc3d
>>915
これにコードとして出力されるのね
理解した
2023/03/08(水) 13:11:31.27ID:/RllHwwua
>>920
普通ではないし意味もわからんがそうすることになってるなら仕方ないな
2023/03/08(水) 13:13:09.06ID:/RllHwwua
もし普通ならもっと簡単にできる仕組みが一般に広まってないとおかしい
2023/03/08(水) 14:24:27.05ID:6WeulyynM
>>920
普通じゃない
むしろ何に使うんだ?
2023/03/08(水) 14:52:43.10ID:iEMOw9f1M
お客様に見せつけてお金を貰います
2023/03/08(水) 17:00:31.74ID:VS7v+oF80
しかしchatgptやべーなー…
ちょっと前ならここで聞くか迷うような質問がガンガン出来てしまうしかなり詳しい回答が返ってくる
勉強の補助として使うには最高だわ
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況