ふらっと C#,C♯,C#(初心者用) Part158 at TECH
[2ch|▼Menu]
[1からを表示]
50:sage (ワッチョイ 3d07-+ld4)
23/03/30 23:23:36.52 9GC6l0iD0.net
>>49
いや、プログラムの実行は成功していて、エラーが出てる様子はないですね

51:デフォルトの名無しさん (ワッチョイ be2d-uhGV)
23/03/30 23:52:54.11 CLZl5Xie0.net
意図せずクリックしてブレークポイントが設定されてそこで止まってるんじゃないかな
再開を押してみたら

52:33 (ワッチョイ 2ef2-uluY)
23/03/31 00:13:56.73 w3z1Snlm0.net
>>39-47
色々アドバイスありがとうございました
再起動では直らず、CLIで試したところ動きました

>>47 さんがご指摘頂いたようにUWPで作っているのが原因でした
WPFに変更したところ無事NamedPipe通信ができました

趣味のツール作りでUIが簡単に作れそうだと思いC#を試してたのですが、
マルチプラットフォームが意識されているだけあって出力ターゲットによって振る舞いが大きく変わるんですね
勉強になりました

皆様、ありがとうございました!

53:デフォルトの名無しさん (ワッチョイ 3d07-+ld4)
23/03/31 00:42:46.76 RPSTRQwt0.net
きのう、レスの番号が48だった者です。
解決しました。「ビルド」から「ソリューションのリビルド」をクリックした後、
画面の中央に{デバックを中止しますか?}というコメントが出て、「はい」をクリックしたら
「続行」から「開始」へと切り替わり、プログラム作成画面になりました。でも、なぜでしょうか?

54:デフォルトの名無しさん (ワッチョイ 494f-+ld4)
23/03/31 04:34:09.75 gyiRYrVS0.net
以前に「開始」したプログラムがまだ終了してなかったから

55:デフォルトの名無しさん (ワッチョイ 2e10-Jabn)
23/03/31 06:02:33.93 axb4XKnm0.net
アマゾンのKDPのダラダラ書いてあるC#とかの入門書に買う価値なしと☆1のレビュー付けたら著者が顔真っ赤にして開示請求されたわ
もちろん開示を断ったらそれまでだったが

56:デフォルトの名無しさん (ワッチョイ ffa7-9P2W)
23/04/01 18:53:33.93 efFm48HR0.net
>>29>>31
正にプログラミング自体初心者だったときはufcpp筆頭にググって上位に出てくるサイトだけで習得余裕だったけどな
「いかがでしたでしょうか?」系のぺージはブラックリスト放り込んでたので必然的にほぼほぼufcppかdobonで学習していたが

57:デフォルトの名無しさん (スッップ Sd9f-7hna)
23/04/02 10:28:56.98 JLr3Pvuvd.net
そりゃまあそういう人も中にはいるかもね

58:デフォルトの名無しさん (ワッチョイ ffbc-Cn9/)
23/04/02 11:53:54.95 hVTPoi+J0.net
最近じゃ AI がかなりいい回答を出してくれるそうじゃない。
もうすぐ AI 自身がプログラムを組んでくれるようになるだろうから、それまで粋がってればいいじゃない。

59:デフォルトの名無しさん (ワッチョイ df78-kVuH)
23/04/02 12:06:01.91 8yMDXZM90.net
出力結果が正しいかどうか判断できる能力がないと使いこなせないぞ

60:デフォルトの名無しさん (ワッチョイ 5f5f-Fdr2)
23/04/02 12:21:03.35 8ArPExQV0.net
自然言語対話エージェントによって「ソフトウェア設計の外注・検収の粒度」が劇的に小さくなった(作業者と直で対話するレベルに降りてきた)だけであって、今までと同じく成果物の正当性を判断できない人に(外注は)は使いこなせない

61:デフォルトの名無しさん (ササクッテロラ Sp33-Vyvl)
23/04/02 12:52:31.04 u6xNxXPcp.net
みずほの案件はAIにやらせた方が人的被害少なくていいかも

62:デフォルトの名無しさん (ブーイモ MM4f-e2c1)
23/04/02 12:57:43.89 b86hlElpM.net
>>60
成果物の正当性を判断するテストや手順をAIに作らせることができるから使い手次第になるけど相当にハードル低いよ

自然言語で正確に要件が書けて
その要件をテストする方法を理解してればいい
テストといってもユーザーテストのレベルで概ね問題ない

63:デフォルトの名無しさん (ワッチョイ 7fbd-icd+)
23/04/02 15:24:34.96 2lYBmHPa0.net
テストプログラムもAIに作らせるなら、それが正しいかは現状人間がチェックする必要があるな。
それをAIにやらせると、それをチェックするAIが必要になって収束しない。

64:デフォルトの名無しさん (ワッチョイ 5f79-mXbH)
23/04/02 15:30:41.44 Rf8vlqHG0.net
ユーザ「操作もAIにやってもらうからどうでもええよ」

65:デフォルトの名無しさん (ブーイモ MM4f-e2c1)
23/04/02 17:48:28.78 D0YauKDyM.net
>>63
段階的に抽象度があがるので発注者/要求者の理解できる範囲に収束させられる
やり方によって質の違いはでるけど広い分野で発注者/要求者が十分と思える質が出せるようになる

66:デフォルトの名無しさん (ワッチョイ ff2d-wDYO)
23/04/02 17:50:37.49 8MKS+oyN0.net
似て非なるものが出来上がって来ることが多くてなかなか収集付かなそうだ
バグのある部分だけ修正とか器用なことは苦手なようだし

67:デフォルトの名無しさん (ワッチョイ ffbc-Cn9/)
23/04/02 20:02:28.99 hVTPoi+J0.net
いや、それって現状もそうなんじゃないかと。

確かに AI と発注者?の仲立ちする人材は必要だろうけど、それってどのくらいだろうね。
大部分は失業しそう。

・・・とか言うことを以前にここだか他だかで書いたときの反応とまるで違うのが面白い。それだけ現実的になってきたってことかな。

68:デフォルトの名無しさん (ワッチョイ 5f79-mXbH)
23/04/02 22:11:23.74 Rf8vlqHG0.net
>>67
無理無理
設計書すら満足に書けねえのが現実

実はプログラムってのは
脳みそなんか使う必要ない
考えなければならないとしたら
それは詳細設計書が不出来だから
プログラムは常に
設計書通りに動くこと
をチェックすればいい

69:デフォルトの名無しさん (スプッッ Sd1f-7hna)
23/04/03 01:45:50.22 9Lwny+qrd.net
暴論吐いて悦に浸ってるだけではなぁ

70:デフォルトの名無しさん (アウアウウー Sa23-mFyV)
23/04/03 10:27:57.20 efbJG7yXa.net
>>68
設計者とただのコーダーを区別すればそうだな

71:デフォルトの名無しさん (ササクッテロロ Sp33-W4em)
23/04/03 10:29:46.04 qa3KNP21p.net
>>68
詳細設計書なんてアテにしてたら動かないものが出来上がる定期

72:デフォルトの名無しさん (ワッチョイ 5f01-icd+)
23/04/03 14:40:55.62 XxTTMVFq0.net
フォームに設置したメニューのアイテムが20個以上あるのですが
それらのアイテムに割り当てるイベントも20個あります
アイテムごとにファイルを分けるためにpartialで分割するのはありでしょうか?

73:デフォルトの名無しさん (ワッチョイ ff2d-wDYO)
23/04/03 15:16:52.52 UR8U39nS0.net
個人的意見だが、無しだな
見通しが悪くなるだけであまりメリットが無い
partialはIDE等の自動生成のためだけに留めておいた方が良いと思う

74:デフォルトの名無しさん (ブーイモ MM4f-OlzB)
23/04/03 15:40:40.31 FBDQFNn3M.net
偏った書き方になるから万人受けはしないだろうけど・・・
・Form内に内部クラスとしてContextMenuStripを継承したクラスを宣言
・MenuItem(クリック時処理含む)をデザイナを使わず継承クラス内にすべて手書き
するのであれば、内部クラス1個ごとにpartialにする価値あり

内部クラスなんでformのprivateメンバも問題なく読み書きできて便利だから自分もたまによくこの書き方をする

75:デフォルトの名無しさん (ワッチョイ df42-kVuH)
23/04/03 18:46:41.53 7cJzGFyX0.net
フォームのクラスに処理全部を書こうとするから見通しが悪くなる
フォームのクラスにはイベントハンドラと画面の制御ぐらいだけにして
残りは別クラスを作ってそこで処理をする
そうすりゃハンドラが20ぐらい並んでいても見通しが悪くなることはない

76:デフォルトの名無しさん
23/04/03 20:26:43.72 F18sx3nF0.net
別のクラスにフォームクラスのインスタンスを渡してゴニョゴニョするのかな?

77:デフォルトの名無しさん
23/04/03 21:09:06.76 u50VhsXZ0.net
デザインを別にするならだけど。
フォームクラスのイベントハンドラを1つにまとめて、sender だったかのパラメータでイベントの発生元を識別するようにする。
この手の処理はイベントの発生元に限らずだいたい同じなので、このイベントハンドラ内の処理を共通化してすっきりさせる。
これまでは大体これでどうにかなったな。

78:デフォルトの名無しさん (ワッチョイ 5fe5-9P2W)
23/04/04 08:49:37.59 2LySch560.net
>>76
UI制御はフォーム側に書いておきゃインスタンス渡す必要なかろう

79:デフォルトの名無しさん (スップー Sd1f-rBMF)
23/04/04 18:26:02.88 J80P79rXd.net
c++clrから移住して最初につまずいた
c#難しい

80:デフォルトの名無しさん (ワッチョイ 7fbd-icd+)
23/04/05 00:11:03.06 pugUgjF60.net
C++/CLIよりはるかに簡単だと思うけど…。

81:デフォルトの名無しさん (ワッチョイ df2f-DB2t)
23/04/05 00:46:45.79 wtS5Em1S0.net
つまずいたポイントを教えてほしい

82:デフォルトの名無しさん (ワッチョイ ff10-MhB/)
23/04/05 07:04:36.94 7c3G3tWr0.net
KDPのC言語本てステマが法律で禁止されたのにようやるなと

83:デフォルトの名無しさん (ワッチョイ ffcf-icd+)
23/04/05 07:42:57.81 87qn8azV0.net
>>80
バックグラウンドが違えば感じ方も違うだろ。
C++とC++/CLIの差分よりC#の仕様の方がだいぶ大きいわけだし。

84:デフォルトの名無しさん (ワッチョイ 5f01-Vyvl)
23/04/05 08:14:21.55 YgLkUvh+0.net
>>82
またお前か

85:デフォルトの名無しさん (ワッチョイ 5fe5-9P2W)
23/04/05 08:45:34.25 PNvz4EJs0.net
昔Javaを多少触りはしたが基本的にC++とVB6しかやってなかったけど、C#移住全然躓かんかったけどな

86:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 09:16:23.63 jU3TV3ZDa.net
C#の名前にCがついてるから文法も概念も同じだと勘違いしてるやつが結構躓いてるぞ
最初から別物と思わないとstructとか使い方全然違うからな

87:デフォルトの名無しさん (ワッチョイ ff10-MhB/)
23/04/05 09:31:30.78 7c3G3tWr0.net
CPU言語は表層が違うだけでやってる事は機械語に解読してるからみんな一緒だろ
結局アセンブラでもBASICでも1つを完璧に知ってればなんとかなる
むしろ割り込みの仕組みとかシリアル通信とか基礎のハードウェアを知らんとヤバイ

88:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 09:39:54.87 jU3TV3ZDa.net
想像で物を言うとそういうイタいことになる

89:デフォルトの名無しさん (スプッッ Sd1f-7hna)
23/04/05 09:41:25.21 zOhuKeKbd.net
>結局アセンブラでもBASICでも1つを完璧に知ってればなんとかなる
こういう極論をしたがるの一定数いるよね

90:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 10:02:18.58 jU3TV3ZDa.net
JavaScriptですら最終的にはマシン語に翻訳されることを知らんとか同じコンパイル言語でもそれぞれできることが違うのを知らんとかも大概だし割り込みやシリアル通信はモダンな言語だとだいたい隠蔽されて考えなくていいようなライブラリがあるんでプログラミングしたことないやつが見栄を張ってるようにしか見えんのですわ

91:デフォルトの名無しさん (ササクッテロロ Sp33-W4em)
23/04/05 10:04:39.32 1qZSc/I2p.net
>>90
javascriptはマシン語には翻訳されないよ
マシン語で動作している翻訳プロセスを介して動くけどな

92:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 10:14:21.30 jU3TV3ZDa.net
>>91
JITコンパイラを調べて赤面してろよ

93:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 10:17:08.89 jU3TV3ZDa.net
と言ったが調べる能力もなさそうだからこれ読んどけ
URLリンク(devsakaso.com)

94:デフォルトの名無しさん (ササクッテロロ Sp33-W4em)
23/04/05 10:17:48.47 1qZSc/I2p.net
>>92
だからさ、Java自体がマシン語なんてもんにゃならないんだよw

95:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 10:18:28.61 jU3TV3ZDa.net
JavaScriptとJavaの違いも知らんとは恐れ入ったな

96:デフォルトの名無しさん (ササクッテロロ Sp33-W4em)
23/04/05 10:19:34.90 1qZSc/I2p.net
あーおまえはパソコンの世界しか知らないからそうなんだなw

97:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 10:20:34.20 jU3TV3ZDa.net
JITコンパイラを一言で言うと実行寺にソースを機械語に直すコンパイラだ
このくらい今は常識だから覚えとけ

98:デフォルトの名無しさん (ワッチョイ df5f-O8+C)
23/04/05 10:28:48.07 TPpnJ1X/0.net
C#スレでなにやってんだ

99:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 10:32:48.94 jU3TV3ZDa.net
C#の話か?
ソースからILという仮想機械の機械語に翻訳される
これをコンパイルと呼ぶ
しかし実際には仮想機械を立ち上げるわけじゃなく実行時にこの仮想機械語を実行環境の機械語にコンパイルする
この時に環境に合わせた最適化も行われるので高速動作が可能になっている
つまり事前コンパイラとJITコンパイラの二段構えなわけだ

100:デフォルトの名無しさん (ワッチョイ 5f5f-Fdr2)
23/04/05 10:56:42.54 e64l6plW0.net
初心者用スレでよくわからん自説を連投する様は、ただただ痛々しい

101:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 10:58:30.02 jU3TV3ZDa.net
よくわからんのはお前が頭悪いからだよ
常識だと言ったろ
初心者でもみんな知ってることだ

102:デフォルトの名無しさん (スップ Sd9f-7hna)
23/04/05 12:18:02.53 rtFMpRjvd.net
そのへんにしとかないと心証を悪くするだけだよ

103:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 12:22:16.13 jU3TV3ZDa.net
名無しさんの?w

104:デフォルトの名無しさん (ワッチョイ 5fe5-9P2W)
23/04/05 12:32:52.22 PNvz4EJs0.net
心証なんざ既にマイナスだろw

105:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 12:47:44.97 jU3TV3ZDa.net
初心者相手だと思って雑魚が嘘ばっか並べてるスレだと嘘を見破れる人は心証悪いよなあ
すまんすまん
続けてくれ

106:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 13:03:35.19 jU3TV3ZDa.net
JITコンパイラという常識を語るとJavaとJavaScriptの区別もつかんような雑魚と愉快な仲間たちがワラワラ湧いて出て一ミリも反論できず心証云々言ってるのはなかなか笑えたよ

ほらどうした
初心者を騙してマウント取る作業を続け給えよ

107:デフォルトの名無しさん (スッップ Sd9f-YxMi)
23/04/05 13:11:30.10 xBlgsSX7d.net
はいはいそろそろお薬の時間でちゅよ

108:デフォルトの名無しさん (スップ Sd9f-7hna)
23/04/05 13:20:25.40 rtFMpRjvd.net
>>106
違う違う
主張の内容自体に対してどうこうじゃなくて
売り言葉に買い言葉ではそれまでの発言や立場を毀損するよって言いたかったのよ

109:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 13:25:12.55 jU3TV3ZDa.net
名無しさんの立場?w

110:デフォルトの名無しさん (スップ Sd9f-7hna)
23/04/05 13:34:30.89 rtFMpRjvd.net
別に反論するつもりも敵対するつもりもなくて
ただ憂慮してのつもりだったんだけど汲み取ってもらえないものかね・・・

111:デフォルトの名無しさん (ワッチョイ 5fe5-9P2W)
23/04/05 13:47:57.71 PNvz4EJs0.net
何言うても無駄だと思うぞ

112:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 13:49:05.84 jU3TV3ZDa.net
ごまかし方が下手過ぎて笑えるが本気でやってんのそれ?

113:デフォルトの名無しさん (ワッチョイ df5f-O8+C)
23/04/05 13:54:30.23 TPpnJ1X/0.net
> なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
> C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください。見かけたらNGしましょう。相手してしまったらあなたも荒らしです

114:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/05 14:06:42.90 jU3TV3ZDa.net
>>113
よう荒し

115:デフォルトの名無しさん (スップ Sd9f-7hna)
23/04/05 14:29:22.61 rtFMpRjvd.net
>>112
それ俺に対して言ってる?

116:デフォルトの名無しさん (ワッチョイ ff10-MhB/)
23/04/05 14:51:15.57 7c3G3tWr0.net
CPUの基礎構造も知ってるとええで
アキュムレータとかスタックポインタとかプログラムカウンタとかレジスタとか言われてもわからんだろ
その辺の概念がわかるとどの言語も楽勝
割り込みも概念が解ってないと割り込みルーチンで長文書くとかアホなことしだす

117:デフォルトの名無しさん (ワッチョイ 5f07-VQD5)
23/04/05 15:08:53.71 sB818/CP0.net
割り込みルーチン使うとか今どきねーよ

118:デフォルトの名無しさん (ブーイモ MM9f-e2c1)
23/04/05 15:13:47.52 BHJ5CxFKM.net
>>116
C#もJavaもJavaScriptも全然理解してないことが露呈したあとに
どの言語も楽勝とか言っても恥ずかしいだけですよ

119:デフォルトの名無しさん (オッペケ Sr33-vkAy)
23/04/05 22:11:02.39 sz/zgQ2Fr.net
無責任にデカいこと言った方が勝ちみたいなゲームはそろそろ卒業してほしい

120:デフォルトの名無しさん (ワッチョイ 7fbd-icd+)
23/04/05 23:52:36.91 pugUgjF60.net
Z80アセンブラ→68000アセンブラ→C→C++→Java→C#→C++/CLI ときたのでつまづかなかった。
あとTcl/TK、sh、Perl、JavaScript、PowerShell、Python。
Rustを試したいが時間が取れない。

121:デフォルトの名無しさん (スプッッ Sd1f-j25d)
23/04/06 00:06:12.09 3X1nsxKId.net
>>120
マシン語直接入力がないのでやり直し

122:120 (ワッチョイ 7fbd-icd+)
23/04/06 00:14:30.25 XbnIA9J60.net
>>121
Z80時代はハンドアセンブルしていた。まだ小学生でアセンブラを買う金がなかったので。
よく使う命令は16進の値を覚えていた。

123:デフォルトの名無しさん (オイコラミネオ MM53-icd+)
23/04/06 00:23:17.66 2IAiy+HBM.net
RET C9 サイクル10的なのを覚えてたんだろ
ノートに相対ジャンプのアドレス計算書いたり
それで言語ができると何の関係があるんだろうか?

124:デフォルトの名無しさん (ワッチョイ ff8e-j25d)
23/04/06 02:08:29.77 5BQAgGMd0.net
>>122
後付け乙

125:デフォルトの名無しさん (ワッチョイ 7f4b-pTXX)
23/04/06 05:40:05.28 ehcl4uYU0.net
小学生でマイコンとか渋いな

126:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/06 08:39:03.94 hFBJipKZa.net
>>122
その当時の普通だ
プアな環境でハンドアセンブル繰り返してりゃ自然に覚えるわ
そこから数十年かけて全く進歩できてないのは無能としか言いようがない

お前の培った技能は今全部自動化されてるんだよw
コンピュータはお前より遥かにハードを使いこなして上手に最適化するからお前は完全に無用の長物というわけだ

127:デフォルトの名無しさん (ラクッペペ MM4f-+zBY)
23/04/06 09:29:45.22 1UIy0vwOM.net
マイコン
オーディオ
アマチュア無線

80年代頃の趣味の最先端

128:デフォルトの名無しさん (ササクッテロロ Sp33-W4em)
23/04/06 09:53:23.79 etBQDNCap.net
Z80は拡張命令があって命令数が腐るほどあったから全部覚えてられなかったよな?

129:デフォルトの名無しさん (ワッチョイ 7f79-u6c4)
23/04/06 09:56:07.98 UaY7mTo60.net
>>127
それってどれも手段であって趣味ではないよね
その最先端のを使ってどんなコンテンツを楽しんでるかが趣味なんだよね
きっとろくでもないんだろうね

130:デフォルトの名無しさん (ラクッペペ MM4f-+zBY)
23/04/06 10:01:32.18 WxcUnJlHM.net
その後90年代あたりからオタク化するか理系エリート化するかが人生の分岐点

131:デフォルトの名無しさん (オッペケ Sr33-vkAy)
23/04/06 10:02:41.19 50z6rG5Kr.net
何でもいいからとにかく人に噛み付きたいみたいなのはそろそろ卒業してほしい

132:デフォルトの名無しさん (ラクッペペ MM4f-+zBY)
23/04/06 10:06:14.44 WxcUnJlHM.net
まだ専攻分野で情報分野を扱う大学なども少なく大体は電気科か電子科で学ぶものが多かった時代

133:デフォルトの名無しさん (ワッチョイ df5f-O8+C)
23/04/06 10:15:38.38 cLuUm0Wb0.net
スレチだっつの
マ板の雑談部屋行けよ

134:デフォルトの名無しさん (アウアウウー Sa23-doF5)
23/04/06 22:05:52.10 7WsUOQMza.net
こんばんは
専門学校で情報処理を2年間学び、今春からIT会社入社です
学校ではC#を学び、それを活用できる会社に入ったのですが、上司からC++が中心と言われてしまいました
使用感としてはC#と大差ないと言われたのですが、実際にどちらも使用したことがあるPGさん目線ではどんな感じでしょうか

135:デフォルトの名無しさん (ワッチョイ 5f07-VQD5)
23/04/06 22:17:08.18 O4MLKnYM0.net
大差ないとか大嘘で草
テンプレートスパゲティの洗礼を受けるがいい

136:デフォルトの名無しさん (ワッチョイ 5f07-VQD5)
23/04/06 22:18:50.54 O4MLKnYM0.net
あとC++はまともに日本語が扱えない
C#と用途が被ることってゲームくらいじゃね

137:デフォルトの名無しさん (スプッッ Sd1f-j25d)
23/04/06 22:50:32.42 9OXigCoVd.net
>>134
お前落ちこぼれだろ
金と2年間も時間を使ってC#とC++の違いもわからんとは使いものにならんわ

138:デフォルトの名無しさん (ワッチョイ 5f07-VQD5)
23/04/06 22:58:34.92 O4MLKnYM0.net
ていうか派遣か超絶ブラックな気配しか感じないわ
まともな企業なら会社が就職希望者を選抜するがお前の会社は嘘をついて人を集めてる
こんなわかりやすい地雷が見えてるなら地雷も一つだけじゃなく他にも心当たりあるだろ

139:デフォルトの名無しさん (ワッチョイ ffbc-Cn9/)
23/04/06 23:10:52.40 0qi4RJoe0.net
>>134
素人には見た目は同じように見えるかも。
C# では考えられないような罠があちこちにあったりするから最初はタイヘンかもしれないけど、頑張れ。

コツが分かればかなり自由にいろいろ出来て、自分的にはかなり好きな言語なんだけどね。

140:デフォルトの名無しさん (ワッチョイ 7f79-u6c4)
23/04/07 00:20:18.59 hzbXpJpo0.net
断言しておくけど専門でC#の学習経験しかない奴にC++の案件は100%こなせない
今後C#案件が自分に回ってこなさそうであれば完全に入る会社を間違ったな
あーあ経歴にさらに傷が付いちゃった

141:デフォルトの名無しさん (オイコラミネオ MM53-icd+)
23/04/07 00:47:18.51 zb+54C3zM.net
専門学校でC#を教えてるなんて

選ぶ学校間違えてる
そんなところに行かなくても独習でとは思う

142:デフォルトの名無しさん (スッップ Sd9f-j3u0)
23/04/07 00:50:58.62 jfyWzwkJd.net
まーたっくの初心者で趣味でC#やろうとしたが言語仕様の壮大さに負けてKotlin~Flutter目指すことにしたサヨナラ

143:デフォルトの名無しさん (ワッチョイ 5f07-VQD5)
23/04/07 01:19:52.32 1Moiy0gQ0.net
一つの言語すら怖気づくやつが目指しても無駄だけどな

144:デフォルトの名無しさん (ササクッテロロ Sp33-W4em)
23/04/07 09:53:19.46 9oOSsjTpp.net
言語仕様はそんなに壮大じゃ無いが、使えるクラスとメソッドが異常に多いし、クラス毎に出来る事が偏ってるから面倒だとは思う

145:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/07 10:00:57.11 UzsORH9Sa.net
winformsとかwpfとかuwpとかxamarinとかmauiとかunoとかblazorとかアプリ用フレームワークの乱立と迷走が酷いのは事実
さっさと統一しろおら

146:デフォルトの名無しさん
23/04/07 11:53:01.40 GJ9VlQpa0.net
MS<もうWinFormsは機能強化しないって言ったのに、みんな使い続けてる・・・

147:デフォルトの名無しさん (ワッチョイ 5fe5-9P2W)
23/04/07 12:29:32.20 NtDbqE3F0.net
じゃあWindowsなんとかしろよw

148:デフォルトの名無しさん (ササクッテロラ Sp33-KR65)
23/04/07 12:43:55.58 y1ANyd0Sp.net
WinFormsまた機能強化しますと言えばいいだけのこと

149:デフォルトの名無しさん (アウアウウー Sa23-doF5)
23/04/07 13:32:40.19 kQPpgDuua.net
>>141 だいたいの専門学校の情報処理科だとC#は必ずやってるもんだよ
はよやめろとも思うが需要がそれなりにあるんだからしゃーない

150:デフォルトの名無しさん (ワッチョイ dfae-1sX2)
23/04/07 13:50:48.21 GJ9VlQpa0.net
MS<機能強化はしないと言ったけど、仕方ないから高解像度に対応してあげるからね
MS<機能強化はしないと言ったけど、仕方ないからUWPのライブラリを呼べるようにしてあげるからね

地味だけど大きい改良してるんだよなw

151:デフォルトの名無しさん (ラクッペペ MM4f-gzdx)
23/04/07 13:55:07.67 yidNy5+ZM.net
がっこうって四則演算とコンソールアプリ程度ジャネーの?
しらんけど

152:デフォルトの名無しさん (スフッ Sd9f-YxMi)
23/04/07 15:06:19.52 ekvLskPDd.net
youtuber育成科でもあったら受講してみたいな
引退後はお喋り配信でもして暮らしたい

153:デフォルトの名無しさん (オッペケ Sr33-9xvd)
23/04/07 15:06:57.10 MubD/dkJr.net
>>150
もうすぐMVVM対応の改良もはいるよ

154:デフォルトの名無しさん (ワッチョイ dfae-1sX2)
23/04/07 15:11:03.21 GJ9VlQpa0.net
>>153
ツンデレ面倒見が良すぎるなw

155:デフォルトの名無しさん (ワッチョイ 5f5f-0Qwp)
23/04/07 17:28:59.51 n3YFdE+90.net
>>153
え?マジで??

156:デフォルトの名無しさん (ワッチョイ df07-DB2t)
23/04/07 18:24:33.31 ZyGCTKiu0.net
すいません 
本に書いてあったコードで質問があるのですが、

d(オブジェクト名).Text (プロパティ)="変数aの値は"+a+"です。"

というコードを打ってもエラーが出ます。
本には「この2つの+演算子の一方のオペランドには“ “でかこまれた文字列の値が含
まれています。このとき+演算子は四則演算の加算ではなく、
文字列として連結するという処理を行います」
とかいてありますが、なぜ

変数aの値はaです。

という文字が出ず、エラーが出るのですか?

157:デフォルトの名無しさん (ワッチョイ ff7b-UQeZ)
23/04/07 18:32:13.85 78O19JXu0.net
>>156
なぞなぞかな?原因をそれだけでエスパーしろと
dがnullの可能性、aが定義されてない可能性?
ともかくエラー内容というか把握している情報くらい書いてくれ

158:デフォルトの名無しさん (スプッッ Sd9f-j25d)
23/04/07 18:32:16.65 nu6NXWXzd.net
馬鹿ってエラーメッセージも提示しないよな
馬鹿過ぎるから、オブジェクト名とかプロパティとか全角()を打ち込んでいそう

159:デフォルトの名無しさん (オイコラミネオ MM53-icd+)
23/04/07 18:33:21.02 377j0hRUM.net
どこかで間違えてるからでしょう
とりあえずエラー内容を書いてください

あと
これは打ち込んだコードをそのままコピーしてませんよね?
全角文字と半角文字が混ざってて普通は動きません
行末に ; を付けましょう
それと変数aの値はaですか?

160:デフォルトの名無しさん (ワントンキン MMdf-FlsS)
23/04/07 18:41:20.55 htDU62+OM.net
>>159
全角;を入力するぞ

161:デフォルトの名無しさん (ワッチョイ 5f01-9xvd)
23/04/07 18:48:43.17 C4KkKia50.net
>>155
メニューやボタン類がICommand対応になる的な

162:デフォルトの名無しさん (オイコラミネオ MM53-icd+)
23/04/07 19:04:25.43 377j0hRUM.net
質問者の人はビビらないで続けて欲しい
誰でも最初はこんなもんだ

一番の馬鹿はテンプレが読めず初心者相手にマウント取るしかできないんでそういうのは無視でいい

163:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/07 19:07:05.47 lYV4UoJIa.net
5chで聞くとこうなるのがわかってるのにアホなのかな?

164:デフォルトの名無しさん (ワッチョイ df07-DB2t)
23/04/07 19:32:22.30 ZyGCTKiu0.net
ありがとうございます
原因調べてみます
たぶん;の付け忘れか
型名 a
というふうにaを変数化してなかったからだと思います。

165:デフォルトの名無しさん (ワンミングク MM03-FlsS)
23/04/07 19:35:04.00 g9oDCLqTM.net
あくまでエラーメッセージを書かない馬鹿

166:デフォルトの名無しさん (ワッチョイ 5f07-VQD5)
23/04/07 19:35:52.08 1Moiy0gQ0.net
>>161
とっくに対応してるが?

167:デフォルトの名無しさん (ワッチョイ 5f07-VQD5)
23/04/07 19:37:35.11 1Moiy0gQ0.net
>>165
いいんだよ
解決しなくても話し相手になればそれで満足して帰ってくれるんだから
車のエンジンがかからないからどうしようと女に聞かれたらバッテリーがどうこう言っちゃだめ
同情して雑談するのが正解

168:デフォルトの名無しさん (ワンミングク MM03-FlsS)
23/04/07 19:41:22.07 g9oDCLqTM.net
>>167
林檎を一緒に買いに行くのか!

169:デフォルトの名無しさん (アウアウウー Sa23-VQD5)
23/04/07 19:43:55.45 lYV4UoJIa.net
>>168
マックのシェアが上がったのはそういうわけ

170:デフォルトの名無しさん (オイコラミネオ MM53-icd+)
23/04/07 19:47:35.73 377j0hRUM.net
以前17歳の少年にmacはwindowsも動くから開発するならmac一択でwindows機は買わなくていいって言われたよ
そういう理由でユーザーを増やしてる面もある
情報系の大学ではmac持ってる生徒が多い

171:デフォルトの名無しさん (ワッチョイ 5fe5-gzdx)
23/04/07 19:53:07.95 0nhk3VLO0.net
>>170
URLリンク(twitter.com)
(deleted an unsolicited ad)

172:デフォルトの名無しさん (オイコラミネオ MM53-icd+)
23/04/07 19:54:54.12 377j0hRUM.net
自分はmac上のwindowsでしか起こらないバグもあるかもしれないから意味ないと思うと答えたが
そんなの言いだしたらきりがないなと後で思った

173:デフォルトの名無しさん (ワッチョイ 92bd-Rzwh)
23/04/08 00:55:25.26 3Ljte8fK0.net
Windowsのライセンスを用意してMacで動かすくらいなら、
安いWindows PCも買ったほうが同時に使えるし便利だと思う。

174:デフォルトの名無しさん (ラクッペペ MM66-DefY)
23/04/08 02:10:45.67 HLFl9C7qM.net
どうせライセンス違反の不正使用だろ

175:デフォルトの名無しさん (ワッチョイ 92bd-Rzwh)
23/04/08 02:25:03.68 3Ljte8fK0.net
>>134
プログラミング言語は複数覚えていったほうがいいから、まあ頑張れ。

176:デフォルトの名無しさん
23/04/08 18:34:36.54 fmzyFWYH0.net
文法が似ているだけで、C++とC#とでは必要な知識の幅が全然違うような気がしてしまう

177:デフォルトの名無しさん
23/04/08 19:26:35.54 3Ljte8fK0.net
C++と言っておきながら、実はC++/CLIだったりするとさらに大変。

178:デフォルトの名無しさん
23/04/08 21:45:50.77 CCnvrQGQ0.net
>>134
STLも使えるしC言語よりはマシ

179:デフォルトの名無しさん (ササクッテロロ Spd1-pbGt)
23/04/09 14:11:13.69 E8Nnpiwgp.net
C#がイニシアチブ取れる最大の理由はライブラリやクラスメソッドの豊富な点
CやC++は環境依存が高過ぎて無理だった

180:デフォルトの名無しさん (ワッチョイ 0279-90pI)
23/04/09 15:24:20.69 I9Qf3W7D0.net
C#は実行環境が基本Windowsで処理系も1個しかなく
外部が作った最大公約数的な規格やらに振り回される事もないからね
言語の在り方としてはDelphiからC#まで設計の中心に居たアンダースヘルスバーグの影響が一番でかいだろうけども

181:デフォルトの名無しさん (オイコラミネオ MM29-Ay2p)
23/04/09 15:42:52.26 0jWwjzccM.net
へじたんというかボーランドから引っ張って来たグループ全体の影響だね

へじたんは10年ぐらい前にtsに行っちゃって多分だけどずっといない
tsの改善提案もたまにする
twitterでts10周年について言及してたけどC#は言及されない

182:デフォルトの名無しさん (ワッチョイ 412d-dXWb)
23/04/09 16:10:51.58 fcL4nlHr0.net
C++は美しくないので使うのやめた方がいい

183:デフォルトの名無しさん (オイコラミネオ MM29-Ay2p)
23/04/09 16:22:39.13 0jWwjzccM.net
c++はパフォーマンス目的じゃないと使うべきじゃないかな(個人の感想です)
でも本当にパフォーマンス目的なら積極的に使うべきで地球の温暖化予防になる

.net frameworkの古い部分はc++的に書かれてるところが点在してる
変数名とか…

ヘルパークラスの中身に多い気がする
そもそもがC#はデビューしてなかったんだからMSの中にいたのは大部分がCかC++プログラマだったから仕方がない

184:デフォルトの名無しさん (ワンミングク MM52-k0ie)
23/04/09 17:02:57.88 IIry9qCTM.net
>>183
>そもそもがC#はデビューしてなかったんだから

なぜこういう嘘を書くのか

185:デフォルトの名無しさん (オイコラミネオ MM29-Ay2p)
23/04/09 17:10:39.08 0jWwjzccM.net
>>184
え?どこが嘘だと思った?
はっきり指摘してくれよ

C#発売前にどうやってネイティブのC#プログラマ募集すんの?
2002年にC#が発売されたんだけどその時,net framewarkはついていた

186:デフォルトの名無しさん (スプッッ Sd22-RMXA)
23/04/09 18:39:12.85 99/FlESqd.net
>>185
MS内部の開発は何を使ってると思っているんだ?
それとも発売されないと内部で使ってはいかんのか?

187:デフォルトの名無しさん (オイコラミネオ MM29-Ay2p)
23/04/09 18:56:34.94 0jWwjzccM.net
>>186
話がかみ合ってないと言うかなんでIDコロコロしてんの?
それとどこが嘘なのかはっきり書けよ

,net frameworkを開発したときにC#で書いたプログラマはもともとなにプログラマでしたか?
ネイティブC#プログラマじゃないでしょ?

おそらくCかC++(それかボーランドから流れて来たobject Pascalプログラマ)じゃないの?
だから.net frameworkのソースにC++のような名残が多いんだろ?

C#ブートストラップも最初からC#で書いてたと思ってそうで怖い

188:デフォルトの名無しさん (オイコラミネオ MM29-Ay2p)
23/04/09 19:02:10.71 0jWwjzccM.net
MS内部の開発者の多くはCかC++プログラマ
それまで存在しなかったC#で書かれた.net frameworkのソースを書いたのはC#を覚えたその人たち

どうしてこんな簡単なこともわからないんだよ

189:デフォルトの名無しさん (スプッッ Sd82-RMXA)
23/04/09 20:48:24.64 cX6/BjZ9d.net
>>187
馬鹿って例えばDelphiのライブラリは何で作ってあると思っているんだ?

190:デフォルトの名無しさん (ワッチョイ a968-pZgd)
23/04/09 20:59:09.16 y3zvbzeA0.net
C++からC#を覚えたんだけど、ヘッダー不要、メモリー解放不要ってだけでほれぼれしたわ

191:デフォルトの名無しさん
23/04/09 22:59:42.51 0jWwjzccM.net
>>189
いい加減に理解しようよ
新しい言語が出来てその言語でライブラリを書く人は他の言語の経験がある人だろ
プログラムもOOPも始めての人間には不可能てわかるだろ
もちろんその言語は初心者で他のプロジェクトなんて経験してない
なんでこの人は小学生並みの思考力もないんだろうか?

192:デフォルトの名無しさん
23/04/09 23:13:41.21 jMM6L0eg0.net
今、画面をC#で作って、性能が必要な部分をCで書いてる。実質C++みたいな書き方してるけど。
固定長配列でよいところは固定長にして余計はメモリ確保・解放を排除、
スタックを使いすぎないようにTLSにしたり、
スレッドプールで実行スレッドがコロコロ変わるけど同一スレッドの間だけTLSを使ったり。
性能は良く、ワットパフォーマンスも良いと自画自賛しているけど、
書くのに時間がかかるし、メモリ管理で二重Freeや誤って0バイトメモリで変な落ち方して
調査に時間がかかった。

193:デフォルトの名無しさん
23/04/09 23:23:40.43 a3JbCGzy0.net
C言語はB言語で書かれたが直ぐにC言語で書き直されたという
故にC言語のライブラリはC言語で開発されている
と、例外中の例外を書いてみる

194:デフォルトの名無しさん
23/04/09 23:31:44.05 fcL4nlHr0.net
セルフホストは別に例外じゃないよ
コンパイル型の言語は最終的にセルフホストになるだろ

195:デフォルトの名無しさん (ワッチョイ c5ae-izbf)
23/04/10 13:30:15.85 ezn0wDlC0.net
>>153
>MVVM ツールキットの概要
>このパッケージは .NET Standard を対象としているため、任意のアプリ プラットフォーム (UWP、WinForms、WPF、Xamarin、Uno など) で使用できます。

いつの間に対応してたんだ・・・
これでInvokeしなくて済むのか

196:デフォルトの名無しさん (ワッチョイ 4666-cPl8)
23/04/10 13:39:28.19 gE7mrU5A0.net
下記のコードでcomboBox1.Textに"a2"を設定しているのですが
comboBox1は"a"のままです。設定を反映する方法はあるでしょうか。

public Form1()
{
InitializeComponent();

comboBox1.Items.Add("a");
}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.Text = "a2";
}

197:デフォルトの名無しさん (ワッチョイ 412d-dXWb)
23/04/10 14:10:01.67 GqegRxcS0.net
comboBox1.Items.Add("a2");
これを先に書かないから変更されない

198:デフォルトの名無しさん (ワッチョイ 6e7b-k+0N)
23/04/10 18:04:17.45 qyQrCJTA0.net
>>196
まずcomboBox.TextとcomboBox.Itemは別のプロパティでTextを変えても表示されない。表示されるのはcomboBox.Item
Item"a"を選択したときに表示を"a2"に変えたいということなら
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.SelectedIndexChanged -= comboBox1_SelectedIndexChanged;//Indexを変えるのでイベントを外す
if (comboBox1.SelectedIndex == comboBox1.Items.Count - 1)//登録されている最後のIndexを参照する
{
comboBox1.Items.RemoveAt(comboBox1.Items.Count - 1);//Itemコレクションの内容を変えるために元のアイテムを削除する
comboBox1.Items.Add("a2");//"a2"を新しく登録する
comboBox1.SelectedIndex = comboBox1.Items.Count - 1;//コレクションの内容を変えるとIndexが変わるのでIndexを指定する
}
comboBox1.SelectedIndexChanged += comboBox1_SelectedIndexChanged;
}
たぶんこのくらい必要

199:デフォルトの名無しさん (ワッチョイ 5234-Ay2p)
23/04/10 19:06:06.56 CWrknl8o0.net
comboBoxのテキストを変更できるようにするプロパティがあったよね?

200:デフォルトの名無しさん (ワッチョイ 25e4-eWK2)
23/04/10 19:44:46.51 1G6uJTu10.net
ワーカーサービスとサービスアプリって別物なの?

201:デフォルトの名無しさん (ワッチョイ 6e10-+HcC)
23/04/10 19:54:33.42 025b1B4Q0.net
>>196
BeginInvoke(new Action(() => comboBox1.Text = "a2"));

202:デフォルトの名無しさん (ワッチョイ 8205-QZiB)
23/04/11 07:47:00.52 p3uKa8IZ0.net
comboBoxの者ですが例示頂いたサンプルコードで期待の動作をしました
ありがとうございます
.Textのセッターで書き換えられたら直感的だなと思いつつ別の仕様で都合悪いんでしょうね

203:デフォルトの名無しさん (ワッチョイ 6e10-bvj9)
23/04/11 10:42:20.15 LwvkJIu70.net
大学だとmacは買うなと名指しで書かれてた
買うのはWindows11入りi5以上RAM8G以上のoffice付

204:デフォルトの名無しさん (ササクッテロロ Spd1-pbGt)
23/04/11 10:44:39.71 u/0zmHtvp.net
>>204
Mac「も」買えば無問題だぞ

205:デフォルトの名無しさん (ワッチョイ 495f-h/KG)
23/04/11 10:56:37.78 U1LmOZAY0.net
365のアカデミック垢(Education A3/A5)を配布してない大学なんだろうか?

206:デフォルトの名無しさん (ワッチョイ a9e5-/aea)
23/04/11 11:00:45.32 bVzsGz390.net
>>204

207:デフォルトの名無しさん (ワッチョイ 6e10-bvj9)
23/04/11 11:18:50.69 LwvkJIu70.net
officeは大学によって配布とそうじゃないとこがあるな
合格通知に付いていたパソコン購入の栞にはどこも同じようなスペックを書いてあった
毎年トラブルになってるらしくmacは非推奨、忘れてたけどSSDを強く推奨されてた。

208:デフォルトの名無しさん (オッペケ Srd1-QZiB)
23/04/11 12:05:57.60 Owu2Qdxkr.net
>>203
情報系大学ならOS問わず乗り越えて欲しいよね
強いて言えばニンテンドースイッチをハックしてOffice365動作させるくらいの気概が欲しい

209:デフォルトの名無しさん (ワッチョイ 412d-dXWb)
23/04/11 13:07:41.05 0aEeU09s0.net
東大はMacだもんな

210:デフォルトの名無しさん (ワッチョイ 6e10-bvj9)
23/04/11 15:24:29.19 LwvkJIu70.net
CPUが非intelな時点で選択肢には入らんでしょ

211:デフォルトの名無しさん (ワッチョイ 4642-Ay2p)
23/04/11 15:24:33.92 M16SAa5X0.net
>>207
SSDをSODと空目して、時間を止めるボタンを購入しちまう人もいるだろうさ

212:デフォルトの名無しさん (ワッチョイ a9e5-/aea)
23/04/11 15:35:49.07 bVzsGz390.net
amdは許して

213:デフォルトの名無しさん (ワッチョイ c5ae-izbf)
23/04/11 15:57:37.42 E8WJry610.net
経済学部とかならOS関係なくクラウドで全部出来るけども、
情報系なら機器制御とかもやるから、OS問わずは無理だろ

214:デフォルトの名無しさん (ワッチョイ eebb-9Wvd)
23/04/11 17:07:55.85 xhbQUVf+0.net
授業内容によってはMac非推奨もあり得るだろう
ただどこの大学のどの学部なのか書かないことには、何に向かないのか参考にもならないだろう

215:デフォルトの名無しさん (ワッチョイ 6e7b-k+0N)
23/04/11 18:13:31.92 SxJtNgeT0.net
ワッチョイ 6e10 3回
サクッテロロ Spd1
ワッチョイ 495f
ワッチョイ a9e5
オッペケ Srd1
ワッチョイ 412d
ワッチョイ 4642
ワッチョイ a9e5 2回
ワッチョイ c5ae
ワッチョイ eebb

216:デフォルトの名無しさん (ワッチョイ 9194-izbf)
23/04/11 19:01:55.92 yYayl2te0.net
URLリンク(books.google.co.jp)
の内容に関しての質問なんだけど、
Fooのコンストラクタをstaticコンストラクタに書き換えると、何で3 3になるの?

Console.WriteLine(Foo.X); // 3

class Foo
{
public static Foo Instance = new Foo();
public static int X = 3;

static Foo() => Console.WriteLine(X); // 3
}

217:デフォルトの名無しさん (ワッチョイ d907-NO7/)
23/04/11 19:08:53.25 gigFj8HV0.net
なんでってConsole.WriteLineが2回呼ばれてんじゃん

218:デフォルトの名無しさん (ワッチョイ 9194-izbf)
23/04/11 19:14:24.00 yYayl2te0.net
>>217
いや、だから static を付けない場合は、最初の出力は 0 なんだって
で、何故 static を付けると、3 になるかという事を聞きたいわけ

219:デフォルトの名無しさん (ワッチョイ d907-NO7/)
23/04/11 19:17:23.77 gigFj8HV0.net
何がわからんのかマジでわからん
初期化したらそれが出力されるのは当たり前じゃね?

220:デフォルトの名無しさん (ワッチョイ 9194-izbf)
23/04/11 19:19:52.43 yYayl2te0.net
>>219
で、static を付けた場合と付けなかった場合の出力結果の違いはどういう理由?

221:デフォルトの名無しさん (ワッチョイ 9194-izbf)
23/04/11 19:21:27.61 yYayl2te0.net
>>220
デフォルトコンストラクタ Foo() の直前の static の事ね

222:デフォルトの名無しさん (ワッチョイ d907-NO7/)
23/04/11 19:22:18.16 gigFj8HV0.net
どこにstaticつける話をしてるのか知らんけどクラスメンバーかインスタンスメンバーかの違い
静的コンストラクタはクラスメンバーがアクセスされる時点で初期化が終わってることが保証される

223:デフォルトの名無しさん (ワッチョイ d907-NO7/)
23/04/11 19:23:14.19 gigFj8HV0.net
>>221
それはコンストラクタじゃなくて静的コンストラクタだぞ
多分その本のもっと前に書いてある

224:デフォルトの名無しさん (ワッチョイ 9194-izbf)
23/04/11 19:39:59.03 yYayl2te0.net
>>222-223
staticを付けない、コンストラクタの場合、class Fooの最初の行でインスタンスが生成された時点では、Xが3に初期化されてないので、0になるが、
staticを付けた静的コンストラクタの場合、class Fooの最初の行とは無関係に、既にXが3に初期化された状態で Console.WriteLine(X) が実行済みなのね

public static Foo Instance = new Foo();

をコメントアウトして実行させてみて、やっと気付いた

有難う

225:デフォルトの名無しさん (ワッチョイ 4201-BePx)
23/04/11 23:11:43.43 /nZPjbDG0.net
1: Console.WriteLine(Foo.X); // 3
2: class Foo {
3: public static Foo Instance = new Foo();
4: public static int X = 3;
5: static Foo() => Console.WriteLine(X); // 3
6: }

静的コンストラクタのあるクラスの場合は
静的コンストラクタが実行される直前に静的イニシャライザが定義順で実行される

1行目のFoo.Xで静的コンストラクタがトリガーされるけど
その前に静的イニシャライザが3行目、4行目の定義順で実行される
3~4行目の実行が完了してから5行目の静的コンストラクタが実行されるのでXは3

3行目のnew Foo()で実行されるのはインスタンスコンストラクタで
staticがついた5行目の静的コンストラクタとは別のものになる

226:デフォルトの名無しさん (ワッチョイ 9194-izbf)
23/04/12 01:51:45.88 3I+WNe+L0.net
>>225
分かりやすい説明有難う御座いました。

227:デフォルトの名無しさん
23/04/12 08:44:45.21 75Jdcna40.net
静的イニシャライザの実行順は不定

228:デフォルトの名無しさん
23/04/12 08:58:31.49 5OqrGPiIr.net
そもそもこんな使い方することってある?
こんなわかりにくい実装したらバグしか生まないだろ

229:デフォルトの名無しさん
23/04/12 09:17:16.51 g9fBg21da.net
どういう順序で実行されるか解説するテキストで実験的なコードが紹介されてるだけだろ
本文が3行以上読めないやつがここで聞いただけ

230:デフォルトの名無しさん
23/04/12 10:30:19.47 mXnPigifr.net
いちいち質問者を貶すようなことでもなかろうに

231:デフォルトの名無しさん
23/04/12 11:26:53.10 yAM4RrWLM.net
どちらかと言うと本文を読んでいないのが >>229 でみんな雰囲気で答えてるだけ
英語嫁

232:デフォルトの名無しさん (アウアウウー Sa05-NO7/)
23/04/12 12:21:14.58 bugel0eha.net
バグしか生まない実装を紹介する本ねぇ
読んだと自称するやつにはそう見えるのか
春だなぁ

233:デフォルトの名無しさん (ブーイモ MM66-Udzl)
23/04/12 12:29:42.24 USOc3PY3M.net
実際質問の出力結果示さずにこのスレの連中にstaticありなしの出力結果予想させたら3割も正解しなさそう

234:デフォルトの名無しさん (オッペケ Srd1-ZlFW)
23/04/12 12:31:58.00 gsM5MkRcr.net
そういう意味ではアンチパターンだな

235:デフォルトの名無しさん (オッペケ Srd1-HvLO)
23/04/12 13:45:09.09 4Can4aDGr.net
C#の挙動がなぜそうなってるかの理由を知ることと、それを実際に開発に使用するかどうかは話が別だろう

当の本もこの挙動を利用して実装しろと勧めてるわけでもなし、バグしか生まない~などと腐すのも筋違い

236:デフォルトの名無しさん (ワッチョイ 4201-BePx)
23/04/12 14:11:43.79 uWUQySNG0.net
本に書いてあるコードでは>>225の5行目にstaticはついてない
3行目と4行目を入れ替えると出力結果が変わるようなことになるという注意を促して
イニシャライザの実行順序を理解させようとしている

static fieldの定義順に依存したコードはアンチパターンと言ってもいい気はするが
現実には↓こういうコード書く人がいるので動きを理解してることは重要
URLリンク(stackoverflow.com)

237:デフォルトの名無しさん (オイコラミネオ MM29-Ay2p)
23/04/12 17:54:22.82 lYmUspEYM.net
本にはこのコードのstaticはついてないのでいくら読んでもそういう話にはならない
コード提示した人が自分でstaticつけて疑問に思ったことを書いてるだけ

チャンと英語読めば批判してる人の脊髄反射でしかないとわかる

238:デフォルトの名無しさん (オイコラミネオ MM29-Ay2p)
23/04/12 17:57:59.05 lYmUspEYM.net
>>232
英語嫁と上で書いてやったのに読まない馬鹿

239:デフォルトの名無しさん (オイコラミネオ MM29-Ay2p)
23/04/12 18:00:18.84 lYmUspEYM.net
>>232
ごめん自分が読めてなかった

自分が馬鹿だったわ…

240:デフォルトの名無しさん (ワッチョイ d907-NO7/)
23/04/12 21:13:56.15 75Jdcna40.net


241:デフォルトの名無しさん (ワッチョイ c5ae-izbf)
23/04/13 17:15:29.58 Zu8K3N7a0.net
過去にはAny CPUを選ぶと32bitライブラリか64bitライブラリかわからなくてエラーになる事があるから、
x86かx64に固定するのを推奨とかどこかで見た気がするけど、
今はそんな事無くなったのかな?

242:デフォルトの名無しさん (ワッチョイ c7e5-S3w6)
23/04/18 09:43:52.47 8GgykzJw0.net
ifで非null判定してからアクセスしてんのにnullの可能性がありますとか警告出す最近のC#はほんとクソ

243:デフォルトの名無しさん (ワッチョイ 4707-uZLY)
23/04/18 09:47:05.00 zIS6YJzM0.net
>>242
出さねーよw

244:デフォルトの名無しさん (ワッチョイ bfda-wFhX)
23/04/18 10:17:07.64 HhMbwi3l0.net
コンパイラのnullチェックを混乱させる凄い(≠素晴らしい)コードなのかもしれない

245:デフォルトの名無しさん (ササクッテロロ Spfb-tEYI)
23/04/18 10:21:16.50 dDei21Qyp.net
見落としてる分岐があるだけだろ

246:デフォルトの名無しさん (アウアウウー Sacb-uZLY)
23/04/18 10:22:53.46 HoHH5EgOa.net
多分チェックした後に別の値を代入するか値が変化するものを使ってるんだろうな
たとえばプロパティは一回目のアクセスと二回目のアクセスで同じ値が得られるとは限らない
変数に入れろ
そしたら多分警告消えるから

247:デフォルトの名無しさん (ワッチョイ dfbd-baic)
23/04/19 07:26:32.14 9LVfV8Mo0.net
警告が消えるのに時間がかかったり、Visual Studioを立ち上げ直したら警告が消えたことがある。

248:デフォルトの名無しさん (ワッチョイ 4707-uZLY)
23/04/19 07:56:31.56 A9DJak9S0.net
マシンが遅いだけ

249:デフォルトの名無しさん (ワッチョイ bf42-sFbk)
23/04/19 08:18:39.49 /RLG/xCj0.net
不必要なhoge?.hage();が残っているとnull判定されることがあるね
?取るとワーニングが消える

250:デフォルトの名無しさん (ワッチョイ 4707-uZLY)
23/04/19 09:00:29.09 A9DJak9S0.net
hoge?.hoge()はhoge!=null?hoge():nullと同じ
nullが返る可能性があることを示すコードだからそりゃnullの可能性があると判定されるわな

251:デフォルトの名無しさん (ワッチョイ bf42-sFbk)
23/04/19 09:16:28.63 /RLG/xCj0.net
>>250
問題はhoge?.hoge()のところではワーニングが出ずに、離れた場所にあるhoge.bar()でワーニングが出るから
知らないと混乱するってことだね

252:デフォルトの名無しさん (ワッチョイ 4707-uZLY)
23/04/19 09:45:55.68 A9DJak9S0.net
そこで問題がないのに出るわけないじゃん
離れた場所にあるなら一度変数に入れなよ
そしたらnullの可能性があるかどうかマウスホバーで教えてくれるから


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

488日前に更新/159 KB
担当:undef