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

■ このスレッドは過去ログ倉庫に格納されています
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/26(日) 12:19:06.70ID:uDw5JavV0
命名さえきちんとしてればvar使おうがどっちゃでも構わんよ
うちの会社では全面的にOKにしてる
2023/02/26(日) 12:21:39.64ID:H0yuRSQqp
初期化無し変数使わない人たち?
2023/02/26(日) 13:29:38.39ID:NMq20dGb0
>>786
勘弁してください
2023/02/26(日) 15:39:47.68ID:5M6WVcNga
>>788
初期化せず予め宣言すること自体ないわ
2023/02/26(日) 15:50:59.27ID:/EdsYwMi0
>>792
try-catchの外側で変数宣言しないの?
2023/02/26(日) 16:03:34.39ID:UDvE2DGT0
それこそ初期化してないとダメなやつでは?
2023/02/26(日) 16:05:18.21ID:5M6WVcNga
>>793
ああわかった
お前のメソッドは無駄に長いんだよ
そのブロック外に出せ
2023/02/26(日) 17:59:22.50ID:1pphtrpop
>>795
外に出しても同じじゃね?
2023/02/26(日) 18:15:27.22ID:CTUJHtcQ0
>>796
同じ?
いったい何をしようとしてんだ
2023/02/26(日) 18:27:05.38ID:PXNtu1caM
よくわからんけどこんな感じの話かな?

一般的な使い方
try{
 何らかのファイルを読み込んだりするメソッド()
}catch

上の初心者の使い方
べつの何らかのメソッド(){
try{
 File.ReadAllText()
}catch //もうここでキャッチしてる
}
2023/02/26(日) 18:35:34.01ID:1pphtrpop
varで宣言するか、型名で宣言するかの話な
string s;
swith(hove)
{
case 1:
s = “one”;
break;
case 2:
s = “two”;
以下略
みたいな時に、
string s;って書くか、var s = “”;みたいに書くか
2023/02/26(日) 18:37:30.50ID:2htEN4+y0
そういう事じゃなくてtryの中での何かしらの情報をcatchの中でも使いたいって事なんじゃね
2023/02/26(日) 18:41:55.62ID:kPCuIbSup
いや、一連の流れはvarを使うか型名を使うかの話なんだが?
2023/02/26(日) 18:45:14.91ID:PXNtu1caM
ダメな例外の使い方

Tekitou a = null;
try{
a=適当なメソッド();
} catch(略)|
return null;//もしくはエラーコードなんか返したりするw
}
return a;
2023/02/26(日) 18:59:07.89ID:PXNtu1caM
それでメソッドの戻り値がnullかどうか判定してると言う…

必要な場合もあるかもしれないけどよく考えてみて欲しい

var a=適当なメソッド();
a.何かする();
return a;
でtry-catchは呼び出し元で判定でいいんじゃないかと
2023/02/26(日) 19:01:36.48ID:uDw5JavV0
Try系メソッドの存在の否定始まったな
2023/02/26(日) 19:03:07.43ID:PXNtu1caM
上の初心者は
Tekitou a = null;
がtryブロック前に必要だからvarじゃだめだって言ってるんだろ?
2023/02/26(日) 19:05:15.93ID:PXNtu1caM
>>804
違う
上位で捉えたら例外の意味が伝わるのにnull何かにして渡す意味はないよと
try-catchの場所を間違えてるよと
2023/02/26(日) 19:08:43.27ID:6DyDqsNYa
だから何だ死ね。
2023/02/26(日) 19:09:32.53ID:uDw5JavV0
例外の内容を精査する必要が無いなら、握りつぶす事はあり得る
2023/02/26(日) 19:20:26.09ID:PXNtu1caM
もし対応不能な例外なら
var result=何とかメソッド();
if(result is null)
{
console.writeline("原因はわからんけど失敗しました");
return ;
}

↓こうなったほうがいいんじゃないか?(個人の感想です)


try{
var result=何とかメソッド();

catch(適当)

console.writeline("ファイルがなかった");

catch(また適当)

console.writeline("ファイルのフォーマットが間違ってた");
2023/02/26(日) 19:31:21.12ID:jfiEDsdga
>>800
初期化してない可能性があるのに使えるわけないじゃん
2023/02/26(日) 22:13:31.77ID:OE3X2HvJ0
センスゼロの奴に限って非推奨なことやりたがるってよくわかるな
2023/02/26(日) 22:43:29.16ID:2htEN4+y0
>>810
話の流れが分かって無いアホw
2023/02/26(日) 22:48:20.14ID:uDw5JavV0
話が完全に横道に逸れてて草
2023/02/26(日) 22:53:18.80ID:EH54EPWP0
横道というか、スレタイも >>1 も読めない奴らに草
2023/02/26(日) 23:21:00.54ID:CTUJHtcQ0
>>812
話の流れをもうちょい前から読んで見ることだなw
2023/02/27(月) 20:12:03.56ID:Akgqa2X30
try-catchとか関係なくて
nullに初期化したいときにvarが使えないってだけの話だろ
varは型が推論できないとダメなんだからそういうもんだってだけ

変数をnullで初期化することの是非や例外の扱いは別の話
2023/02/27(月) 21:56:17.35ID:egjSOww/0
初心者スレで非推奨のvarの使い方勧めるのやめてくださいね
2023/02/27(月) 22:29:07.67ID:JLUpdfoUr
どうしてもvarを使ってnullで初期化したいなら、たとえば
 var s = (string?)null;
でいちおう文法的にはいけるね

ローカル変数宣言はすべてvarで統一するようなコーディングスタイルを採用してるなら、
個人的にはちょっと賛同しがたいけど、そういうポリシーということでアリなのかもしれない
2023/02/27(月) 22:43:14.23ID:GQlYFKfY0
Cシャープ滅茶苦茶勉強して知識死ぬほどあるのに
競技用プログラミングではセンスある未経験に負けるのが悔しすぎて泣きたすぎる
2023/02/27(月) 22:52:24.05ID:IwcHfuRb0
言語学者が文学で勝負すんな
2023/02/28(火) 07:11:14.63ID:3WmX3+jc0
(センスとか言ってる時点で知識量が足りねーんだよ)
2023/02/28(火) 14:16:08.99ID:y7elf6D90
ufcpp見るとだいたいvar使ってればOKでコードが読みづらくなるならvar以前の問題が何かあると書いてる
まったくもってその通り
2023/02/28(火) 17:33:08.16ID:ovA6LiBhM
>>822
なんか根拠あるの?
2023/02/28(火) 17:50:10.38ID:qEty2QKoa
経験則
2023/02/28(火) 17:50:55.08ID:qEty2QKoa
ufcppより経験を積んでる自信があるなら論破してこい
2023/02/28(火) 19:28:39.24ID:50ahu/qg0
そもそもvarは、コードを書く人のための機能であって
コードを読む人のための機能ではないと思うぞ
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はメリットがまったくないわけじゃないが、言うほど強力なものでもない
何しろ彼でさえ理由を具体的に説明できない程度だからね

で、問題はユニークであることが完全に保証されないからそれなりのケアが必須だってことだな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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