ふらっと 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/22(水) 22:31:33.00ID:aZ0d5T8Y0
それって1番ダメなやつやんw
2023/02/22(水) 22:33:18.05ID:hKnEsPO40
UIでボタン押したあと一回一回終わる処理ならawaitで同期して書く
トリガ受けて常駐する処理なら完全にわける
2023/02/22(水) 22:34:20.17ID:aZ0d5T8Y0
一般ユーザって馬鹿なんよ

UIフリーズしたら裏でどうこうなんて知らないんだからアプリが重いとか処理が固まったって言うんよ
要は糞アプリ認定
2023/02/22(水) 22:45:48.29ID:R6q1C2ar0
実際に重いんだから当然だろ
処理を並列化してマルチコア対応するのなら非同期も意味が出てくるからやるといい
出来ないならヤメロ
WindowsはマルチタスクOSなのでエロビデオ見ている間に終わればいい
2023/02/22(水) 22:48:14.10ID:hKnEsPO40
windowsじゃUIフリーズはOSが応答なしと認識して
殺しますかってダイアログ出してくるから駄目や
2023/02/22(水) 22:52:53.20ID:iDIgOzo00
>>679
今時UIフリーズは見っともないぞ
1秒とか極短時間ならまぁありだと思うけど
2023/02/22(水) 22:53:47.40ID:1bDiXhoP0
>>683
UIを軽視するな
2023/02/22(水) 22:55:04.76ID:R6q1C2ar0
普通なら1秒かからない処理まで非同期にしてエラーメッセージすら出せなくなったWindows11さんのようにならないように気をつけてね
2023/02/22(水) 23:06:17.46ID:R6q1C2ar0
ま、極論だけどな
wpfならコマンドボタンにAsyncRelayCommandをはめるだけだ
簡単だな
でもめんどうだからウインドウまるごと無効化とかしちゃうよねw
2023/02/22(水) 23:07:26.87ID:aZ0d5T8Y0
またゴミ屑が混ざってるな
2023/02/22(水) 23:09:33.79ID:R6q1C2ar0
>>689
めんどくさい上に意味がないんだよ
反論できますか?
2023/02/22(水) 23:14:45.72ID:aZ0d5T8Y0
>>690
既に馬鹿なユーザによって糞アプリ認定されると書いたけど?

糞アプリ認定ってのは客が誰かによるが業務系アプルなら当然改修しろって言われる
スマホアプリ見たいな奴なら売れない

反論できる?
2023/02/22(水) 23:17:51.51ID:aZ0d5T8Y0
>>690
お前の言ったエロビデオをPCで見たとしよう

ビデオ閲覧ソフトが面倒だって理由でUIフリーズさせててエロい画面が更新されずってなったら使わんだろ?
お前が言ってるのはそういうことだ

商品や製品レベルじゃ無いんだよ
2023/02/22(水) 23:19:37.65ID:iDIgOzo00
別にアプリの操作は出来なくても構わないけど、ウィンドウ移動すら出来なくなるはちょっと
今なら大した手間でもないのに
2023/02/22(水) 23:20:49.12ID:aZ0d5T8Y0
まあ馬鹿には分からないんだろ
2023/02/22(水) 23:36:22.32ID:SqmMPCpZ0
まあawaitから抜けたタイミングでCancelされたりDisposeが走ったりをいちいちチェックしなくちゃいかんのは面倒ではあるな
ただ、これを怠るとクソアプリになっちまう
696デフォルトの名無しさん (ワッチョイ 1b05-I4Me)
垢版 |
2023/02/22(水) 23:42:53.10ID:nCkg+nHK0
ようわからんかったら全部Task.Runに押し込んでコールバックすればいいよ
2023/02/23(木) 03:09:48.61ID:K1P6f92B0
たんに非同期とかいうと範囲が広すぎるからな
まあ、非同期は目的じゃなくて手段なんだから、目的をはっきりさせよう
>>676のいう非同期ってのはawaitに限定した話で良いのか?
2023/02/23(木) 05:45:14.30ID:d3tkzJuS0
>>657
型が厳密なほうが好きだ。
varもなるべく使わないできっちり書く。

スクリプト言語で型がなくて文字列でも整数計算できたりするのはいいのだけど、
Pythonのように型宣言がないのに型がある言語がつらい。
intを入れていた変数の中身がいつの間にかfloatになっていて原因を調べたら、
途中の除算のせいだった。Pythonだとint型/int型=float型。
2023/02/23(木) 07:24:06.39ID:+YhBBcDf0
どうでもいいけどそれは変数の使い回しも問題じゃないのん?
除算したらもう違う意味のものやろ
2023/02/23(木) 08:06:33.56ID:BvhctNj6a
「//演算子」を知らないお前が悪いとしか
2023/02/23(木) 08:39:59.38ID:O5A4F0mW0
右辺でnewしててそのまま扱うだけの時なんかはvarしてるけど
関数の戻り値受ける時とかは型名書いて宣言してるかな
2023/02/23(木) 08:46:22.62ID:6eqWydaM0
C#はvar使えるけど強力な型推論でコンパイル時点で弾いてくれるから別に使ってもいいかな
2023/02/23(木) 09:23:07.97ID:YlmVjB0R0
VBだと勝手にキャストされたりするけど、C#はそのへんの制限強いもんね
2023/02/23(木) 09:43:10.46ID:U/HQXaW+M
C#の型推論は出始めは強力な部類だったけど今はrustとかと比べるとかなり貧弱なんだよな
まあ技術や概念は進歩するんだ
2023/02/23(木) 10:48:24.21ID:NaebF7tW0
呼ばれてないのにRustチョーーーーーン
2023/02/23(木) 12:38:42.14ID:c775I29ma
正直F#並の推論が欲しくなることはある
2023/02/23(木) 13:17:33.61ID:d3tkzJuS0
>>699
定数変数の倍数に丸めたくて、
hoge = 10
fuga = fuga / hoge * hoge
とかしたんだよ。たしか。

>>700
>>698を書いている時に知った。
2023/02/23(木) 14:19:59.52ID:U/HQXaW+M
自分はrustは勉強したけど使ってない
C#の方がいいから

外からの刺激は必要だと思うけど全部が全部取り込む必要はない
こんな微妙なタイミングでジェネリックで計算できるようになったのはrustからの刺激が原因だろうけど
今更感がある
2023/02/23(木) 15:19:02.16ID:Rcv3zn+Ua
ジェネリックで計算できるようにしてほしいという要望は相当前からあったぞ
むしろInt32とかは最初からIArithmeticインターフェイスを実装しかけてコメントアウトで外してる
おそらく実装者の技術的限界で見送り続けてきたのがようやく実装できたんだろ
2023/02/23(木) 15:28:18.88ID:U/HQXaW+M
一部で要望はあったけどずっとなくても何とかやって来てこの微妙な時期での実装

rustのマクロを駆使した超強烈な実装を見て手法が確立されて実装されたんじゃないかと
2023/02/23(木) 15:32:55.31ID:Rcv3zn+Ua
まあそう思いたいなら思っとけ
なんでrustとかruby使ってるやつはこんなんばっかなんだ
712デフォルトの名無しさん (ササクッテロラ Spe1-An8R)
垢版 |
2023/02/23(木) 15:35:49.50ID:D5ClvIDip
ジェネリックで計算ってどういうこと?
言語仕様なんて全然追いかけてないからわからない
2023/02/23(木) 15:35:55.63ID:U/HQXaW+M
だから使ってないって言ってるだろ
2023/02/23(木) 15:38:21.15ID:BgVzVA3A0
>>712
generic mathでググれ
2023/02/23(木) 16:13:42.99ID:ZqbKv2H4r
>>710
理屈と膏薬はどこにでもつく
716デフォルトの名無しさん (ササクッテロラ Spe1-An8R)
垢版 |
2023/02/23(木) 16:26:11.54ID:Rqipt3qxp
>>714
ふむふむ、なるほどねー(何もわかってない)
2023/02/23(木) 18:09:58.93ID:U/HQXaW+M
超簡略して書くと
今まではジェネリックで単純に計算できなかったけど制約付きでできるようになりましたよ
2023/02/23(木) 20:40:35.46ID:5afFl0ZD0
>>714
ググった。マジすか。
昔から欲しかった数値型制約ってことすか。
待ってて良かったC#
2023/02/23(木) 20:43:42.35ID:1RS70dw+0
>>698
俺も書くときはvarが好きで
読むときはvarは嫌い

って思ってたらVSで一発で変換できる機能があったから使ってた
2023/02/24(金) 00:34:19.46ID:LXr7iqjl0
面倒くさいからvar使いまくってるわ
721デフォルトの名無しさん (ワッチョイ 1501-An8R)
垢版 |
2023/02/24(金) 01:03:49.83ID:PeKlM3lq0
varってint入れた後、変数再利用でstring入れたりできる?
2023/02/24(金) 01:23:46.89ID:Q77HdEB50
できない
暗黙なだけで型を持った変数だから
なんでも取れるオブジェクトではない
2023/02/24(金) 07:39:41.14ID:5s0A+5N90
C#やってるせいか、型宣言しないJavascriptは不安になる。
でも、そっちの人達は逆に冗長に感じるんだろうか。
2023/02/24(金) 08:09:39.64ID:OehCc09P0
JavaScriptの型はこんだけしかないから
https://developer.mozilla.org/ja/docs/Web/JavaScript/Data_structures

クラスはなんちゃってクラスでメソッドやプロパティとして使える属性をいくらでも増減できる連想配列でしかないから変数に型を宣言するだけ無駄
それを無理やりやるとTypeScriptになる
2023/02/24(金) 08:10:35.46ID:LXr7iqjl0
そもそも変数を再利用しようとするなと
バグの温床だし、新しく変数宣言しろ
2023/02/24(金) 08:14:35.74ID:OehCc09P0
>>725
++とか/=とか使ったことのないタイプかw
今回問題になってるのはPytonで除算に二種類の演算子があって片方を使うと小数点以下が出るということだけなんだよw
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 の使い方ってどういうのがあった?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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