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

■ このスレッドは過去ログ倉庫に格納されています
2020/12/16(水) 11:29:35.35ID:TSvQ057dM
!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

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

■前スレ
ふらっと C#,C♯,C#(初心者用) Part148
https://mevius.5ch.net/test/read.cgi/tech/1590578921/
■関連スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■コードを貼る場合は↓を使いましょう。
http://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
http://referencesource.microsoft.com/
・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
2021/02/23(火) 19:56:17.34ID:8AF7Ea+I0
クイズって書いてあるな・・

>>737
2つ目の例でも最上位ビットはどちらも0で同じように見えるが?
比較する2つの数値はビット長が一緒なのかとか、もうちょい仕様を詳しく
2021/02/23(火) 20:19:12.56ID:lNyBX+Rq0
>>739
最上位ビットではなくて1になってるビットの最上位だぞ
2021/02/23(火) 20:25:36.23ID:BNINfFnp0
>>727
ツー・デュニティって何のことかと思った
2021/02/23(火) 20:26:05.61ID:Ke2QO8XG0
レスありがとうございます!

>>738
> クイズでも出されたの?
おっしゃるとおりです。ネットで調べるのは OK なのですが、
外国語も含めて検索してみても私の力では解決できそうになかったので
こちらで質問させていただきました。


>>739
説明がうまくできなくて申し訳ありません。

x = 0b_0101, y = 0b_0110

の例だと、1 になっているビットで最上位のものが
両方とも下から数えて 3 番目なので true なのですが、

x = 0b_0101, y = 0b_0011

の例だと、x は先ほどと同じですが y のほうは 1 になっているビットで
最上位のものが下から数えて 2 番目なので、false になります。


>>740
補足どうもありがとうございます。
最上位ビット(MSB)というと普通は >>739 さんのおっしゃっているような
意味で捉えられそうなものなので、最初からもう少し丁寧に説明すべきでした。


どうぞよろしくお願いいたします。
2021/02/23(火) 20:26:52.22ID:iu17pC6m0
>>739
> 比較する2つの数値はビット長が一緒なのか
さすがにそれは仮定してもいいんじゃね?
2021/02/23(火) 20:47:25.97ID:8AF7Ea+I0
それなら
2*x<y
でいいんじゃないの?
trueなら一番左の1の位置は同じ
2021/02/23(火) 20:57:42.88ID:iu17pC6m0
>>744
x = 1, y = 1 がfalseになるんですけど…
2021/02/23(火) 21:04:05.18ID:8AF7Ea+I0
それは失礼w

難しいね
y:123456789abcdef
x:12 4   8
2021/02/23(火) 21:55:49.11ID:26JD/Fyv0
演算の回数っていうのがよくわからないが、
BitOperations.LeadingZeroCount(val)
の比較じゃダメなの?
2021/02/23(火) 22:04:06.39ID:6EEdG0Ut0
>>747
普通に考えたら命令ステップ数のことだろうな

今の時点でビット演算2つと比較が1つなので、boolを返す以上は比較は外せないから、これより少ない(軽い)となると、なかなか難しいね
2021/02/23(火) 22:07:00.98ID:iu17pC6m0
>>737みたいに4bit同士程度ならテーブル引くとかでもいいかも
2021/02/23(火) 22:14:05.32ID:6EEdG0Ut0
>>749
uint でって指定されてるわけだから、4ビットで書かれてるのはあくまで例でわかりやすくしてくれてるだけでしょ
2021/02/23(火) 22:33:00.48ID:W3jldd/z0
>>746
return x==y || (2x<y && y<=x);

って感じか?わかりづれぇw
2021/02/23(火) 22:53:10.92ID:W3jldd/z0
なんか違うな。
要は>>746に書いてある通り、xとyが1,2,4,8,16,32・・・みたいに
一番左の1が立ってる同じグループにいるかでしょ?
酔っぱらってて頭まわらんw
2021/02/24(水) 00:39:34.09ID:bQ0lAzRD0
(x^y)<(x<y?x:y)
こんなのはいいのかな?
細かくテストしてないからバグってたらごめん
演算1回比較2回だから演算回数は減ったとも言える
どっちが早いかは最適化とかCPUとか次第な気もするけど
2021/02/24(水) 00:52:24.83ID:jmWlpF6B0
皆様レスどうもありがとうございます。

>>743
> > 比較する2つの数値はビット長が一緒なのか
> さすがにそれは仮定してもいいんじゃね?
補足ありがとうございます。
ひとまず、符号なし32ビット長整数ということにさせてください。

>>744
> 2*x<y
> でいいんじゃないの?
実際、(x ^ y) < (x & y) より簡単なものを探そうとすると
もうそのくらい簡単なものくらいしか候補に残らないですよね。
もしくは、何か発想の転換が必要なんでしょうか。。。

>>745
> x = 1, y = 1 がfalseになるんですけど…
このレスを読んで思ったのですが、
(x ^ y) < (x & y) という計算も x = 0, y = 0 のときは
false になるんですよね。
最上位の 1 の位置を比較するのが目的なので
x や y が 0 のときは気にしなくてもいいのかもしれませんが、
やはりちょっと不自然なので (x ^ y) <= (x & y) のように
等号付き不等号にしたほうがベターでしょうか。
(ただ、
 Math.Floor(Math.Log(2, x)) == Math.Floor(Math.Log(2, y))
 という式は x = 0, y = 0 のとき false になるようです)
2021/02/24(水) 00:54:09.63ID:jmWlpF6B0
>>747
> BitOperations.LeadingZeroCount(val)
> の比較じゃダメなの?
なるほど!こんな関数があるんですね。
BitOperations クラスのドキュメントを読んでみると
「これらのメソッドでは、基になるプラットフォームで使用可能な場合、
 ハードウェアの組み込みを使用します。」
と書いてあるので、良い答えになりそうです。
アドバイスどうもありがとうございます。

>>748
> 今の時点でビット演算2つと比較が1つなので、boolを返す以上は比較は外せないから、
> これより少ない(軽い)となると、なかなか難しいね
難しいですよね?!
普通の演算子だけを使うなら考えられるパターンは限られているので、
やはり拡張命令を使うとかテーブルを用意するとか、
なにか根本的な発想の転換が必要なのかもしれません。

>>749
> 4bit同士程度ならテーブル引くとかでもいいかも
>>750
> uint でって指定されてるわけだから、4ビットで書かれてるのはあくまで例でわかりやすくしてくれてるだけでしょ
>>750 さんが言ってくださっているとおりなのですが、
逆にわかりにくくなってしまったかもしれません。失礼しました。
ただ、普通の演算子を組み合わせるだけの方法ではどうにも手詰まりな気がしてきたので、
テーブルというアイディア自体は検討する価値がありそうです。どうもありがとうございます。
2021/02/24(水) 00:54:22.31ID:bQ0lAzRD0
boolのために比較が必要という前提なら比較は6種
== != < <= > >=
2項演算子は加減乗除商、シフト、and or xorくらい?
演算→比較の順に評価することになるので1比較1演算のパターンはそんなに多くない
全部試したわけじゃないけど無理じゃない?
2021/02/24(水) 00:58:28.94ID:jmWlpF6B0
>>751
> return x==y || (2x<y && y<=x);

>>753
> (x^y)<(x<y?x:y)

色々と考えてくださってどうもありがとうございます。

>>745 さんの猿まねですが、
>>751 さんが書いてくださった式は x = 2, y = 3 のときに false となり、
>>753 さんが書いてくださった式は x = 1, y = 3 のときに true になってしまいますねw

ただ、こうやって苦労を分かち合ってくださるのはとても心が救われます。
本当にどうもありがとうございます。
2021/02/24(水) 01:04:08.81ID:jmWlpF6B0
>>756
> boolのために比較が必要という前提なら比較は6種
> == != < <= > >=
> 2項演算子は加減乗除商、シフト、and or xorくらい?
> 演算→比較の順に評価することになるので1比較1演算のパターンはそんなに多くない
> 全部試したわけじゃないけど無理じゃない?

レスどうもありがとうございます。確かにおっしゃるとおりのような気がしてきているところです。
とりあえずこの前提の場合だけでも (x ^ y) < (x & y) が最善なのかどうか結論を出したいので、
全パターンを網羅して確認するプログラムの作成に挑戦してみたいと思います。(できるかな…(汗)
2021/02/24(水) 01:07:30.18ID:OSOzzlvda
>>737
0を排除できるなら、たぶん
x/y + y/x == 1
になるような気がする。
全然演算の量が減ってる気はしないけどw
2021/02/24(水) 01:08:45.27ID:OSOzzlvda
あ、これじゃX == yの時2になるからダメかw
2021/02/24(水) 01:11:25.71ID:jmWlpF6B0
>>756
全部網羅と簡単に書きましたが、
例えば仮に (20210224 * x ^ y) < 12345 が正解だとして、
しらみつぶしに探してこれを見つけるのは至難のワザですよね。
う〜ん、難しい。。。。
2021/02/24(水) 01:15:30.76ID:bQ0lAzRD0
>>757
もともと提示された式と比較すると同じ結果になるんだけど?
https://sharplab.io/#v2:C4LgTgrgdgNAJiA1AHwAICYAMBYAUBgRjzwDMB7MACgDcBDMAAgEsGBeBzAbmYYB53MAIwD6mAuO5NEiAJR4GChuSp1GAKzYduG/hxFiJDNdLm5F55iQaUAxgAsApjYDWmSkxhqZDAITt7Ts4E7p4yphYRDKgEAJyUACQARFBkwAwOAI4QtAA2IADeTAC+MAz5akWJMpzykebE+AQAbAyCZGQ5DAEubkxQaQAepX1pAJ7erAB81gMMAHoM43wzDABki9V40S1tHV2OLsEjDEPM/Rts05SzC0u8K/ejDAD8JwwgGzW4QA
2021/02/24(水) 01:20:20.17ID:jmWlpF6B0
>>759
> 0を排除できるなら、たぶん
> x/y + y/x == 1
> になるような気がする。

!!!
確かにこれ自体は違うかもしれませんし、計算量も減っているとは思いませんが、
発想の新鮮さは私にとって正直感動を覚えるほどでした。

私は問題文にビットという言葉が出ている時点で数値をビットの並びとしか捉えていなくて、
このレスを読むまで数値を数値として扱うという発想がまったくもって出てきていませんでした。

貴重なアイディアどうもありがとうございます。
2021/02/24(水) 01:22:06.74ID:xxKZPG3j0
>>761
演算子のコストは概ね下記のようになってるので、今のところ 737 の式が一番高速だな

代入、加算、減産、ビット演算 < 乗算 < 分岐 < 除算
765デフォルトの名無しさん (ブーイモ MMe7-Dcdc)
垢版 |
2021/02/24(水) 09:43:01.27ID:BstpO7i2M
NOT(x ^ y) &x &y
766デフォルトの名無しさん (ブーイモ MMe7-Dcdc)
垢版 |
2021/02/24(水) 09:47:44.01ID:BstpO7i2M
ビット反転は ~か
~(x ^ y) &x &y
2021/02/24(水) 10:19:17.50ID:TFahGwNV0
>>764
代入とかってアセンブラ上はmov1命令だけど実際内部ではxorクリアしてから|=してるだろうからビット演算と同列で並べちゃダメだろ
2021/02/24(水) 16:56:51.55ID:seoVzzn4a
仕事でJavaをやるとC#って快適だったんだなと実感する
Javaは開発環境の準備からなにから全てが辛い
2021/02/24(水) 18:14:53.26ID:edAGB3A30
というかjavaはプロジェクト自体が辛いことが多い
客先しかり他のエンジニアしかり
2021/02/24(水) 19:34:45.11ID:lrBUkyKZ0
単価安いし
2021/02/24(水) 21:35:26.39ID:KW+DlOc20
この流れに乗って質問するが、
おまいらはこれからC#とどう付き合っていくつもり?

C#をとことん極めて、新しいバージョンが出れば追い、このまま一生C#と骨をうずめるつもり?
それとも、C#は腰かけ程度と考えて適当に付き合い、もっと良い言語が出たら乗り換えるつもり?

質問を言い換えると、C#ってあと何年ぐらい人気言語の一つとして君臨していられると思う?

Javaがオラ狂うによってほぼほぼ有償化された今、
Javaが失速するのは間違いない
あのJavaが、だ

C#だってそんな日が来るんじゃないの?
来るとしたらどんなオチ?
それとも、親方マイクロソフトだから大丈夫?
772デフォルトの名無しさん (ブーイモ MMff-cyI8)
垢版 |
2021/02/24(水) 21:58:03.72ID:NDokwu7RM
友達以上愛人未満
2021/02/24(水) 22:08:07.59ID:F5qWAR4O0
別れたいけど、できちゃったので。
2021/02/24(水) 22:13:18.72ID:KW+DlOc20
>>772
無駄に幅広いな
2021/02/24(水) 22:17:05.12ID:KW+DlOc20
>>773
惰性で一緒になっても幸せになれんぞ
2021/02/24(水) 22:58:18.77ID:UF3ntcxf0
都合のいい友人
2021/02/24(水) 23:51:18.96ID:K88oDGnD0
テキストエディタとWindowsにデフォで入ってるcsc.exeでできる範囲で付き合っていくわ
GUIもWinFormsで十分
2021/02/25(木) 02:48:18.40ID:A477YYD30
15年前にいつかは消えると思ってたjsが気づけば最前線にいるんだ
先のことなんてわからんからその時の仕事に合わせて適当に付き合ってくだけよ
2021/02/25(木) 07:47:32.19ID:ljkJPR6C0
>>771
プロダクトに最適な言語を使うだけよ
どんな業界でも、年々道具は新しくなるだろ?
プログラミング言語もそれと同じ

中には代々受け継がれた道具しか使わないような職もあるが、それは一般的じゃない
2021/02/25(木) 09:38:17.80ID:BkBvtXEC0
この問題をc#で解こうと思い
https://atcoder.jp/contests/abc106/tasks/abc106_c
このように書いてみたのですが入力例 3が通りません
https://pastebin.pl/view/raw/cbf5d3cd

大変お手数ですがご指摘いただけるとありがたいです。
2021/02/25(木) 09:38:17.80ID:BkBvtXEC0
この問題をc#で解こうと思い
https://atcoder.jp/contests/abc106/tasks/abc106_c
このように書いてみたのですが入力例 3が通りません
https://pastebin.pl/view/raw/cbf5d3cd

大変お手数ですがご指摘いただけるとありがたいです。
2021/02/25(木) 11:44:12.11ID:zlGf24tO0
文字数計算のためのCalcDだと思うけど正常に計算できてなさそう
何日後も引数にして、2日後とか3日後で想定した戻り値になってることをテストしてみた方がいいよ
メソッドを分離することとメソッド毎にテストすることの大切さがわかる典型例だな
2021/02/25(木) 11:45:33.33ID:Kp+Bp4Dl0
>>781
pow(2, 5000兆)の時点で制約のK番目のKはpow(10, 18)以下を楽々超えるな
要するに最初のシード値を律儀に全部計算するまでもない
2021/02/25(木) 13:46:32.79ID:5iIS9NC9a
>>781
https://ideone.com/mLheCz
書きなぐりで何の検証もしてないから違うかも
問題を間違って理解してなければ全然難しいと思わなかったよ
2021/02/25(木) 13:54:37.81ID:HJ9YlmBf0
ソースコード見えないけど5000兆なんて時間計算量も空間計算量も現実的な値にならんから愚直に文字列計算する方法じゃ無理
最初が1以外なら答えは常に最初の桁の数字になって、そうじゃないときは1じゃなくなるまでの桁数よりKが小さいか同じなら1でKがそれより大きいなら1以外で最初に現れた数字が答え
786デフォルトの名無しさん (アウアウエー Sadf-pQAD)
垢版 |
2021/02/25(木) 13:58:47.94ID:5iIS9NC9a
パラメータの与え方が間違ってるなw
Console.WriteLine(mi.GetDigit((long)5e15, 9460730472580800));
2021/02/25(木) 14:32:33.73ID:zlGf24tO0
>>785
競技プログラミングでそんなひねくれた回答に何の意味があるの?
知らんけどとんち問題じゃないんだから実行時間2sメモリ976MBという制限で作れてるのか、出来てなかったら減点とかそういう感じでしょ
2021/02/25(木) 14:45:28.54ID:lgRHqN3Y0
解法を自然言語で書き下しただけなのに対してひねくれた回答ってどういうことだ
2021/02/25(木) 14:48:23.79ID:Odue14P30
競技プログラミングって
そういうやつなのか
2021/02/25(木) 14:56:27.68ID:lnJvnVl60
処理時間短縮のために工夫したアルゴリズムを文章で書いただけじゃん
捻くれたと捉える方がどうかしてる
2021/02/25(木) 15:06:03.06ID:cAbWQIRq0
>>787
競技プログラミングってある種のとんち問題だぞ
2021/02/25(木) 15:24:52.06ID:A477YYD30
競技プログラミングって問題文を読み解きいかに計算量を少なくする解法を見つけるかに特化した問題が多い
プログラミング知識より数学的知識やひらめきのほうが重要なこと多い
大抵の問題はメモリも処理速度も大して必要とせずに数秒以内で解けるような解法が存在してる
2021/02/25(木) 16:05:21.75ID:WNWuE6ey0
若いなあ
2021/02/25(木) 17:09:26.66ID:zlGf24tO0
プログラミング技術を競うものかと思ってたけど関係ないのも多いんだな
まあ今回の問題がそうだったって感じなのかもしれないけど数値設定がやってくれと言わんばかりにおかしいもんな
2021/02/25(木) 17:23:13.48ID:Kp+Bp4Dl0
ちゃんとインプットのチェックロジックを作れば初っ端に気付ける事なんだよ
pow(10, 18)はqword範囲内なのに対して1以外の文字長は最小の2だとしても余裕で範囲外だからな
2021/02/25(木) 17:30:29.82ID:BkBvtXEC0
>>784
ありがとうございます、参考になります
でもこのコードだと入力が
1
1

1121
2
の時2を出力してしまうので不正解になります、正解は両方とも1です。

>>785
たぶん785さんが正解だと思います。私は問題文を愚直にシミュレートしたコードを
書いてしまいがちなせいでよく制限時間をオーバーします

>>794
プログラミングの技術力向上のためと思い、やり始めたのですが
これはむしろ算数、数学力の競い合いだなと感じています
2021/02/25(木) 17:46:07.28ID:zlGf24tO0
>>795
一応数学的な話で 2^5000兆>10^18 の比較になる
こんなんチェックしなくても一目で問題ないことがわかる
2021/02/25(木) 18:28:40.93ID:Kp+Bp4Dl0
>>797
だからこそ標準入力から渡された桁数指定であるKが10^18以下であるかのチェック構文をちゃんと書けばその時点で気付けるって話
781のコードはそれが書かれてないから「Kは10^18以下」っていう制約自体を見逃してるんだろうな
799デフォルトの名無しさん (エムゾネ FF1f-pQAD)
垢版 |
2021/02/25(木) 18:53:48.04ID:rcOltu0HF
>>789
競プロっていわゆる普通のプログラミングとか数学とかとは別の世界だと思う
2021/02/25(木) 19:05:19.81ID:mcXAAtHya
>>796
どっちもケースもちゃんと1を出力するよ
可読性重視で冗長に書いたけど合ってるんじゃないかな?
知らんけど。

非OOPで短く書き直すとこう
https://ideone.com/f58hKP
801デフォルトの名無しさん (ワッチョイ ffe6-0TpN)
垢版 |
2021/02/25(木) 19:49:45.24ID:BqNXMQx70
新聞紙を100回折りたたむと厚みが宇宙と同じぐらいになるって奴ね
2021/02/25(木) 20:05:35.05ID:84+MX2N/0
>>785
おまえアタマいいな。
自分は3分考えて分からなかった。

792 の言うようにひらめきの世界だわ。
3分の間にアタマに引っかかっていたところに手が届いてれば正解に行き着いてたかも、とか 785 を読んで思いましたまる
2021/02/25(木) 21:52:33.13ID:cAbWQIRq0
Math.Pow(2, 5e15)はInfinityになって計算できてないの気持ち悪いな
Kが10 ^ 19まで広がると日付次第ではバグる
2021/02/25(木) 22:02:36.79ID:OCB2UzGya
あーなるほどそういう問題なのね
まったく気づかなかったw
冷静に数字見りゃそりゃそうだよね

こんなスレでそんなひねくれた問題が出てくると夢にも思ってないし
2021/02/26(金) 15:03:06.02ID:JTr0u2pq0
Benchmark.netにてAllocatedのサイズは見れるんですが、何のオブジェクトかの内訳詳細は見れないんでしょうか?
2021/03/03(水) 21:31:29.25ID:GRpGW1SM0
closedxml初めて触ったけどすごいね
エクセル操作プログラミングで毎回うんざりしてたのがウソみたいに快適
gasのスプレッドシート制御と同じような感覚で書けるしusingも使える
2021/03/04(木) 12:19:55.97ID:RGW+RZMQ0
以下のような2つの構造体リストを重複除外して結合したいのですがどうすれば良いでしょうか。
Unionをすると重複したまま結合されてしまうので困っています。

public struct Menber
{
/// <summary>
/// 部署
/// </summary>
public int Id;
/// <summary>
/// 名前
/// </summary>
public string Name;
}

List<Menber> list1
list[0].id = 1
list[0].Name = 田中

List<Menber> list2
list[0].id = 1
list[0].Name = 鈴木
list[1].id = 1
list[1].Name = 田中
list[2].id = 2
list[2].Name = 吉田
2021/03/04(木) 12:41:03.43ID:7LtyX+sHa
>>807
Unionのドキュメントぐらい読もうよ。
IEquatable<T>を実装しろって書いてあるでしょ

構造体の場合はEqualsは全フィールドとプロパティが等価なら
trueを返すように自動実装されるはずだと思ったけど、UnionはEqualsの方は
使ってくれないんでしょうたぶん。

知らんけど。
2021/03/04(木) 14:28:31.44ID:JHtiE7pvM
デフォルト実装で特に問題無いけどな
https://dotnetfiddle.net/UIfYBX
2021/03/04(木) 18:58:02.93ID:wo0nxJ5c0
>>809
だよな。騙されてるんだよ、相手するだけ無駄。
2021/03/06(土) 02:12:29.40ID:t6oqPQ7k0
なんか久しぶりにc#に戻ってきたら
public int GetIntVal
{
get => _intVal;
}

とかプロパティの取得に=>とか使ってて意味がわからなかった
この手の構文って今から憶えるとしたらどこのサイトを見たらいいでしょう
2021/03/06(土) 02:24:50.57ID:+wsnPdhjM
MSのリファレンス
2021/03/06(土) 11:37:07.78ID:3bUl0e7xd
>>811
c# ラムダ式でググれ
2021/03/06(土) 11:52:26.43ID:+wsnPdhjM
public int IntVal => _intVal; の形式はよく使うけど、>>811の形式は個人的には嫌いだな
811の形式はgetだけなら冗長なだけなのでsetアクセサを書く必要のある場合のみ意味があるわけだが、
setは副作用そのものなのでexpression bodied syntaxで書くのはあまり良くないと思う
2021/03/06(土) 14:22:19.93ID:JTkugHrDd
構文調べんじゃなくてまずバージョンアップの変更点一通り見てきなよ
まずはそこからだろ
2021/03/06(土) 14:55:39.29ID:NkI+ANJT0
https://ufcpp.net/study/csharp/
バージョンごとの新機能はここに纏めてあるから、ダラダラ見てみるといいよ
2021/03/06(土) 15:23:05.91ID:F0Z1/6ce0
Class class = new();
が地味に便利。
2021/03/06(土) 16:05:50.67ID:2Vsiq+bMd
ラムダ式は初見で何じゃコリャって思ったけど、今じゃガンガン使ってる。
あっさりコーディングできていいね。
2021/03/06(土) 16:12:37.53ID:WRKHF19V0
>>818
慣れると分かりやすいよね
2021/03/06(土) 18:54:57.52ID:NwqNYXOS0
var hoge = new();

で、俺様が何をインスタンス化したいか的確に判断してコンパイルしてくれるAIできないかな
2021/03/06(土) 19:04:15.77ID:WRKHF19V0
>>820
それ出来たとしてもお前がインスタンス化しようと思ったものが正しいとは限らんから結局バグるだけやぞw
2021/03/06(土) 19:19:09.69ID:eoDpywBc0
>>821
その時はすぐに別のものを思うんだよ!
2021/03/06(土) 19:56:18.42ID:t6oqPQ7k0
思考をホットリロードするの?
また新しいUSBガジェット買わないとならないじゃん
2021/03/06(土) 20:22:48.44ID:wbV88shF0
そんなとこまで読み取ってくれるならもうコードすら書かなくて良いようにして欲しい
2021/03/06(土) 21:26:52.61ID:NwqNYXOS0
ObservableCollection<LongLongClassName>
とか
ConcurrentDictionary<Guid, ConcurrentDictionary<Guid, DeviceInfo>>
とか
見ただけで吐き気してくる宣言。
なげぇんだよ
2021/03/06(土) 21:55:10.56ID:c0Nk1tFyd
ReadOnlyReactivePropertySlim<List<string>>
2021/03/06(土) 22:44:49.40ID:iEqPiFd00
type alias使えば?
2021/03/06(土) 22:51:05.76ID:zakmvXbT0
INotifyCollectionChangedとか
BuildinglistCollectionViewとか
FrameworkContentElementとか
PolyQuadraticBezierSegmentとかな ←最長ぢゃねーか?

ObservableCollectionはクソいっぱい使ってるんでなんとかしてほしいわ
2021/03/06(土) 22:58:22.18ID:zakmvXbT0
>>812
MSのリファレンスほど無味乾燥な読み物は無いわ
図も表もスクリーンショットも無く、
ただただダラダラと書き連ねててまったく読む気せんわ
2021/03/06(土) 23:04:01.25ID:WRKHF19V0
辞書にストーリー求めるバカw
2021/03/06(土) 23:04:24.81ID:NkI+ANJT0
BindingOperations.EnableCollectionSynchronization
2021/03/06(土) 23:13:02.08ID:zakmvXbT0
>>830
箇条書きとか図を付けろっつってんだよ、ヴォケ
一般のブログが方がよほどうまく説明できてるわ
2021/03/06(土) 23:26:27.18ID:RvUIQ/dU0
別にリファレンス読めって人もMSのリファレンスが読みやすいとは言ってないぞ
2021/03/06(土) 23:50:16.20ID:2Vsiq+bMd
空白やアンダーバーで区切らないPascal形式だから余計に見づらいよね。
2021/03/06(土) 23:58:57.56ID:d/Tm++Xea
>>834
好みの問題と言えばそれまでだけど個人的には
Pascal形式が一番相対的にマシだと思うし、だから
比較的若い言語であるC#の文化では標準になってるんだと思う。

しかし、いつもの交通整理の人仕事しろよ。
いつまでこの状態を放っておくの?
やっぱり自分で自分に文句は言えないってご都合主義な事情かねw
2021/03/07(日) 07:51:51.56ID:m48VQs8o0
高い知識を持っている技術者や学者さんが
人に文章として伝える(分からない人に分かるように伝える)技術が高いとは限らない
むしろそれが下手な人が多いので、情報系の大学の講義はほにょつまらんしわかりづらい

別の仕事につきながら片手間に独学で勉強したあとに
学生時代のテキストや講義資料みると
いまじゃ簡単なことが、どんだけわかりづらい教え方してるんだろうと思った
いい先生がいればその頃からプログラムが楽しくて好きになってたんだろうなと
2021/03/07(日) 10:53:06.62ID:viNH5wsJ0
製造の人員に限ってみれば、分かりやすい(日本語の)文章を書けない人が、キレイなコードを書けるとも思えないんだけどね。
コードは機械に対する指示書だから、そう見ると「(人に対する)分かりやすい文章」との共通点は多い。

あと、教師の教え方についても、特定の人に分かりやすい教え方が万人に対してそうとも限らない。
自分の場合は振り返ってみれば開発環境が違うけど C のポインタはテキストを読んでもさっぱり分からなかった。
けどいつの間にか分かるようになってた。

分かるようになった後は「いまじゃ簡単なことが」なんで分からなかったのか分からない状態で、今も分からない。
ある意味での概念的な関門があるんだろうな、とか思う。「自転車に乗る」ってのとどこか似てるような気もしなくもない。
2021/03/07(日) 10:58:07.46ID:RNKpyeef0
それを突き詰めると日本語って欠陥言語じゃね?という結論に行き着くんだけどな
ポインタが難しいってのもカタカナ英語だからってだけの理由だから
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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