ふらっと 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(日) 10:36:48.50ID:PXNtu1caM
>>763
馬鹿が偉そうに
2023/02/26(日) 10:37:01.47ID:OE3X2HvJ0
https://learn.microsoft.com/ja-jp/dotnet/csharp/fundamentals/coding-style/coding-conventions

なんかマイクロソフトさんも
お前らの言う使い方は非推奨じゃない?
2023/02/26(日) 10:37:53.33ID:PXNtu1caM
そもそもが厳密に型がわからないとコードを理解できない人間がコード書くなと思うが
2023/02/26(日) 10:40:31.54ID:2htEN4+y0
>>763
だからReShaper使えばいいじゃん

そもそもコード追うのにVS使ってコードジャンプとかも使うじゃん

そうか!
無能だから紙に印刷したコード見てるわけか!
なるほど納得だよw
2023/02/26(日) 10:40:50.97ID:OE3X2HvJ0
まあ大御所様がループカウンタとか定数以外使ったらぶっ殺すぞって言ってるんだからそれで終わりよ
2023/02/26(日) 10:41:03.48ID:PXNtu1caM
varが出来た当時は自分も馬鹿だったからvarには否定的だったけど
今はvar使わない人間は真の馬鹿だと思ってる
2023/02/26(日) 10:45:38.22ID:2htEN4+y0
でも型名にしたところで分かるのは宣言の所やん

コードをスクロールして見ていってこの変数なんだっけってなったら結局カーソル合わせて確認するやん


そうか!
無能だから未だにハンガリアン記法で変数名付けてるんですね!
でもそうなるとvarでも良いんじゃ?
いやぁ無能の考えることは分かりませんなぁw
2023/02/26(日) 10:45:52.90ID:OE3X2HvJ0
またお前らに完全勝利をしてしまった
2023/02/26(日) 10:47:49.58ID:2htEN4+y0
アホすぎて勝負になってないw
2023/02/26(日) 10:48:44.93ID:OE3X2HvJ0
だって作ったマイクロソフトさんも勧めてない使い方してるのに何言ってるの?
2023/02/26(日) 10:52:33.04ID:PXNtu1caM
>>773
MSのコード見て見れば?
roslynだろうがcoreだろうがvar使ってるよ?
2023/02/26(日) 10:53:22.68ID:OE3X2HvJ0
>>774
そこ書いたやつがウンコだっただけよ
2023/02/26(日) 10:54:32.98ID:PXNtu1caM
>>775
使ってない人がウンコだと気が付けよ
新しい他の言語でもvar相当のものが実装されててみんな使ってる
2023/02/26(日) 10:55:34.64ID:PXNtu1caM
var相当のものを使わない派は多分全体の0.01%ぐらいの割合だよ
2023/02/26(日) 10:58:38.89ID:2htEN4+y0
ぶっちゃけどっちでも良い

varで書かれてようが型名だろうが読むのに困った事は無い
勿論どっちかに変換しなくてもだ
2023/02/26(日) 11:00:48.02ID:EH54EPWP0
スレチだけど、教えて。

>>773
そのマイクロソフトさんが勧めていない、ここで挙げられた var の使い方ってどういうのがあった?
2023/02/26(日) 11:37:49.57ID:xFOa2C1pp
varが便利だなぁって思うの
長ったらしいクラス名のオブジェクト使うときくらいかなぁ
後はC時代に生きた俺としては型名無しで受けるのは違和感しか無いし
2023/02/26(日) 11:38:46.95ID:2htEN4+y0
>>780
つまり老害w
2023/02/26(日) 11:44:29.82ID:JuHo9gXt0
>>773
MSのコード規則が世界の全てじゃねぇぞw
2023/02/26(日) 11:45:30.12ID:xFOa2C1pp
うおー、iPhoneじゃセミコロンが打てないw
コード書いてこんな場合は型名の方がいいよって書こうとしたのに
残念だ
2023/02/26(日) 11:48:22.16ID:2htEN4+y0
そもそもリンク貼られたコーディング規則にvarを使うなって記述は無い

勿論
>割り当ての右側から型が明らかではない場合,
>var を使用しないでください。
といった当たり前の注意は有る
2023/02/26(日) 11:49:42.82ID:2htEN4+y0
>>783
すまんが意味不明

アイポンだけどセミコロン打てるで?
786デフォルトの名無しさん (ササクッテロラ Sp75-sXdP)
垢版 |
2023/02/26(日) 11:55:53.77ID:xangEsOIp
そうだ、VBAのvariant導入しよう
何でも入れ放題、違う型にも再利用し放題だぞ
2023/02/26(日) 12:01:21.94ID:xFOa2C1pp
;あ、カナ変換モードだと無理なだけだったわ
2023/02/26(日) 12:04:16.19ID:xFOa2C1pp
その場でメソッドから戻り値受け取る様な場合にはvarで良いが
予め宣言しておく変数を使う場合は型名で宣言してるなぁ
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

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

気持ち悪いと思うならやならければ良い
それがクラス設計ってもんやろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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