ふらっと 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/24(金) 08:21:35.39ID:LXr7iqjl0
>>726
さすがにインクリメントとかにはどうこう言わんけど
ここで言う再利用ってのは、別の目的に使いまわすなってことな
わざわざstringにしたいって事は出力等が目的だろうから、それ用に変数作れ
2023/02/24(金) 09:11:31.26ID:k+kkC7Nop
ref した引数に値を入れなくてもいいけど
out する引数は値を入れないとだめなん?
2023/02/24(金) 10:07:52.27ID:zTZFqfcCd
ちょうど今GIMPのPythonでint→float→intとやらされて色々と考えさせられるものがあった
2023/02/24(金) 10:13:00.07ID:IQGX/86sp
pythonって、型変換によって出る数値精度の劣化ってどう思ってんだろって常々疑問に思ってる
2023/02/24(金) 10:17:03.70ID:RFzamc280
>>728
そういう意味の修飾子だからね
2023/02/24(金) 14:05:40.83ID:ccbVR1xk0
varならvarで全然いいけど、
一番嫌なのは「なんでここは分かりきってるのにvarじゃないんだよ!」って思わされること
理不尽なストレスが嫌なだけ。VSなら提案されるからそんなにないけどね
2023/02/24(金) 18:47:14.17ID:gJNax+MV0
自作のコントロールで矢印キー押すと
なんでかフォーカスが移動して入力不能になる現象が発生して悩んでたけど
ProcessDialogKeyをオーバーライドするっていうのやってみたら収まった
2023/02/24(金) 20:01:44.03ID:qE9KpEOq0
>>732
使用箇所を文字列検索かけたときにvarになってるとヒットしないのが嫌だな
visualstudioならvarから元の型に戻せるから戻しておいてほしい
2023/02/24(金) 20:09:57.73ID:X82MwmgO0
文字列検索をやめればいいんじゃね
参照箇所の検索でヒットするかしらんけど
2023/02/24(金) 20:21:44.92ID:OehCc09P0
型名で検索なんかしたことないわ
どんだけ長いメソッド書いてんだ
2023/02/24(金) 21:06:30.12ID:KCjnBZl8M
VSの便利な機能を知らないから型名で文字列検索してるんだろう
かわいそうに
2023/02/24(金) 22:42:06.35ID:xSIwGcb90
>>734
文字列検索をする必要がほとんどないのがVSのC#の大きなメリットなのに
2023/02/25(土) 01:56:33.91ID:WSoHMtrUd
C#の後にC++/CLRで作業するとめっちゃストレス
2023/02/25(土) 02:13:00.47ID:W+rTgIxF0
C++/CLRなんて必要な場面ある?
2023/02/25(土) 02:20:29.88ID:WSoHMtrUd
ない
2023/02/25(土) 02:57:31.15ID:i9tFdOEb0
C++/CLIじゃなくて?

CからC#を呼ぶためのラッパーを作るのに使ってる。
C→C++/CLI→C#
言語としてはカオスすぎると思う。
2023/02/25(土) 09:01:46.97ID:Qtv3l3QB0
managedな参照や名前空間、それにfinalizerなどが追加されたくらいで構文等も明解だと思うがなあ。
カオスというなら当のC++自身の方がよっぽどカオス。
2023/02/25(土) 10:18:33.21ID:5xbVML89M
カオスと言うか黒魔術みたいなレベルだし呪文を唱えさせられるのがキモイ
2023/02/25(土) 10:32:27.39ID:Qtv3l3QB0
SFINAEとかADLとかまさに魔術だよなあ。
2023/02/25(土) 10:51:49.65ID:W+rTgIxF0
今時C・C++触りたくない
地雷原が多すぎる
2023/02/25(土) 12:12:03.26ID:o/Ym2CPC0
すごくスレチだけど聞いてみたい。
C・C++ の地雷ってどんなの?
2023/02/25(土) 12:30:25.26ID:i9tFdOEb0
>>747
メモリ範囲外アクセス
2023/02/25(土) 12:47:41.33ID:4hS8Efqpa
>>748
その辺なら以前に比べてだいぶマシになってるぞ
生の配列とポインタの代わりにVectorとか使えばいい
2023/02/25(土) 12:52:47.37ID:i9tFdOEb0
C言語「そんなものはない」
2023/02/25(土) 14:01:22.71ID:DPzAUzVtM
ほかにも標準と呼べるオープンなドキュメントが無い、環境依存、未定義動作の多さ、文字列操作の貧弱さなどクソ要素挙げるとキリがない
速度だけがメリットだな
2023/02/25(土) 14:03:00.56ID:xCsxsaHDp
ヌルポ
2023/02/25(土) 14:06:15.81ID:lQBV1xBt0
勉強すればするほどわからなくなる言語、c++
2023/02/25(土) 14:10:32.78ID:TtZ3k42Xp
テンプレート多用し出した辺りからおかしくなって
マネージド対応する頃には別言語になってた
2023/02/25(土) 14:21:54.79ID:mMXgXQi10
子どもの頃にN88から始まってC++/Win32APIでもしっかりもの作って
自分のHP作るのにJavaScriptやPHP書いて、そんで近年はC#してるから
まぁ型宣言あるのも無いのもどっちも受け入れられてるなw
2023/02/25(土) 14:38:42.47ID:dAzPm75C0
そんなことしなくても大半のやつは受け入れられてる
2023/02/25(土) 15:40:00.51ID:wyXcT7/f0
読むのにはあったほうがいいのは確実で右クリックメニューで一発変換なので
気がついたら俺がvar消しとくから大丈夫だ
2023/02/25(土) 16:54:24.41ID:KRwgMm4X0
csprojのImport要素で読み込んだmsbuildタスクの.targetsにて$(IntermediateOutputPath)が機能せずnullなのですが
読み込み元プロジェクトのIntermediateOutputPathを得ることは不可能なのでしょうか?
2023/02/26(日) 08:45:30.70ID:2htEN4+y0
>>757
何で読むのに型が必要なの?
VSでカーソル合わせりゃ型名分かるやん

VS単体でできたか忘れたけどReShaper使うと型名をグレーで表示してくれるのもあるやん

何よりvarから変換してそのままバージョン管理にコミットしてプッシュするん?
無駄に色んな箇所の修正履歴付いて糞面倒


やっぱり底辺無能プログラマって考え足りないんだなw
2023/02/26(日) 08:49:23.47ID:2htEN4+y0
別にやるなとは言わんけどある程度状況が落ち着いてから一気にリファクタリングしろよ

そもそもチームやプロジェクトでコーディング規則決めておいてコードフォーマット共有しておいて変換される様にしておけば良い

チームやプロジェクトでvar使うルールなら黙って従え
自分の好きなルールにしたけりゃ出世しろ
2023/02/26(日) 10:18:52.53ID:PXNtu1caM
var使うなってルール聞いたことがない
2023/02/26(日) 10:29:02.26ID:OE3X2HvJ0
>>759
逆に言うとカーソル合わせないと分かんないじゃん
2023/02/26(日) 10:30:46.28ID:OE3X2HvJ0
カーソル合わせないと分かんないコードと
見ればわかるコードと
どっちがいいか議論の余地もないですね
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は、コードを書く人のための機能であって
コードを読む人のための機能ではないと思うぞ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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