ふらっと C#,C♯,C#(初心者用) Part158 at TECH
[2ch|▼Menu]
[前50を表示]
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の可能性があるかどうかマウスホバーで教えてくれるから

253:デフォルトの名無しさん (ワッチョイ 4707-uZLY)
23/04/19 09:47:07.48 A9DJak9S0.net
結局この警告はバグを潰してくれてるものだから文句を言うのは筋違いだぞ
本来なら警告の代わりに実行時エラーになってたものだからな

254:デフォルトの名無しさん (ワッチョイ bf42-sFbk)
23/04/19 10:04:51.79 /RLG/xCj0.net
>>252
コンストラクタなどで初期化していて本来はワーニングが出るはずがないのに
途中でhoge?hage()なんてコードがあるからヌルが入る可能性があると判断されるようだ
だから?を外すと解決するんだが、それに築くのが大変って話ね

255:デフォルトの名無しさん (ワッチョイ 4707-uZLY)
23/04/19 10:18:42.95 A9DJak9S0.net
そこでnullを代入してるのに気づくのが大変てことはないと思うがな
警告が出ないなら大変かもしれんけど

256:デフォルトの名無しさん (アウアウウー Sacb-uZLY)
23/04/19 10:25:41.00 ozyRSzfKa.net
たとえばUnityなんかだと暗黙の代入演算子をいじっててnullでないものがnullエラーを出すよ
コンストラクタで生成してすぐnullになるオブジェクトも作れる
そういうのを実行前に警告として教えてくれてるんだから親切以外のなにものでもないだろ

警告があれば何か問題があることにすぐ気づけるし気づいたらマウスをちょっと動かせば原因がわかる
コーディングが簡単になりこそすれ難しくなることなんかないだろ

257:デフォルトの名無しさん (ササクッテロロ Spfb-tEYI)
23/04/19 10:29:18.14 wTDlMyrbp.net
nullableなboolean変数を条件判断させるとき
nullだったらどっちに判定されるんだ?

258:デフォルトの名無しさん (アウアウウー Sacb-uZLY)
23/04/19 10:43:36.85 ozyRSzfKa.net
どっちでもない
nullはnull

259:デフォルトの名無しさん (ワッチョイ 7ff2-iKPJ)
23/04/19 12:47:18.86 /ifWvnPE0.net
勉強になった!

260:デフォルトの名無しさん (スプッッ Sdff-wBI8)
23/04/19 14:16:39.58 mDR4Tmnid.net
(bool)null

261:デフォルトの名無しさん (ワッチョイ ff79-e5FP)
23/04/19 18:22:12.39 oWlQU8HM0.net
もうnullだったら死んでくれていい
プログラムでぬらぶるってるとムカつく
いいんだよ例外でもなんでも死ねば

262:デフォルトの名無しさん (ワッチョイ ff79-e5FP)
23/04/19 18:32:54.51 oWlQU8HM0.net
プログラムの99.998%は概ねnullになんかなんないところばっかりなのに
なんでこんなクソ構文作ったのかわからん
現場で書くと嫌われるコード
こんなもんチェックするより他にやることはいくらでもある

263:デフォルトの名無しさん (ササクッテロロ Spfb-tEYI)
23/04/19 19:21:06.22 Yh/qVtVOp.net
bool値に三状態あるのかw

264:デフォルトの名無しさん (ワッチョイ 5f79-uE6i)
23/04/19 19:27:25.28 Gw9y9MAb0.net
ヌルヌルヌールヌル

265:デフォルトの名無しさん (オイコラミネオ MM5b-baic)
23/04/19 19:28:11.01 ol2MoW3SM.net
DBだと伝統的に3値だったりが当たり前
かなり問題がある作り

266:デフォルトの名無しさん (ワッチョイ 7f7b-i286)
23/04/19 19:33:27.51 fW0fg9Ti0.net
null 許容値型
URLリンク(learn.microsoft.com)
null許容値型(Nullable<T> 型)
URLリンク(ufcpp.net)

267:デフォルトの名無しさん (ワッチョイ bfe9-Naft)
23/04/19 20:30:00.61 C4s4zrWJ0.net
FormアプリでForm1とForm2を作る
Form1にラベルを作る
Form2にボタン1,ボタン2を作る
ボタン1を押すとラベルに"1"ボタン2を押すとラベルに"2"を、
Form2を閉じることなく設定するプログラムを作りたいのですが
どういう作り方をすれば実現できるでしょうか。
Form2にプロパティを作りForm1で文字を受け取る方法だとForm2を閉じないと値が設定できません。
よろしくお願いします。

268:デフォルトの名無しさん (ワッチョイ 7f7b-i286)
23/04/19 20:35:45.45 erb9d6p60.net
>>267
別のフォームのデータを取得、設定する
URLリンク(dobon.net)

269:デフォルトの名無しさん (ワッチョイ bfe9-Naft)
23/04/19 22:15:32.11 C4s4zrWJ0.net
>>268
記事中のOwnerプロパティを使うことでやりたいことができました。
ありがとうございます。

270:デフォルトの名無しさん (ワッチョイ 7f10-S3w6)
23/04/20 21:58:50.89 XyBZLb7d0.net
ぬるり

271:デフォルトの名無しさん
23/04/22 21:40:28.10 nV5+mUIN0.net
自作メソッドが投げる可能性がある例外の表記方法についての質問です。
ドキュメンテーションコメントの<exception>タグに、throw する可能性がある例外を表記出来ますが、
例えば下記のメソッドの場合・・・
void MyMethod(string filename)
{
//ZipFile.OpenRead() メソッドと、StreamReader.ReadLine() メソッドを使用する。
}
上記の場合、
ZipFile.OpenRead() は下記の例外を throw する可能性があります。
ArgumentException
ArgumentNullException
PathTooLongException
DirectoryNotFoundException
IOException
UnauthorizedAccessException
FileNotFoundException
NotSupportedException
InvalidDataException
StreamReader.ReadLine() は下記の例外を throw する可能性があります。
OutOfMemoryException
IOException
こうなると、MyMethod() は、上記の計11種類の例外を throw する可能性があるという事になるのですが、
理想論的には、全てをドキュメンテーションコメントの <exception> に表記する必要がありますか?
そうでない場合、表記するべき例外と、そうでない例外はどういう基準で判断すればよいでしょうか?

272:デフォルトの名無しさん
23/04/22 22:30:09.44 XuPaU8GB0.net
>>271
めんどくさいから例外を吐くMethodを記載して、詳細はソチラでにしちゃうかな

273:デフォルトの名無しさん
23/04/23 00:52:29.94 qbQJEsvk0.net
>>271
例外なんて元々どんぶりなんだから
そんな厳密に何かやろうとするなら
そもそも使うなでFA

274:デフォルトの名無しさん
23/04/23 09:59:39.79 UBkEK/lQ0.net
ZipFile使ってること書いてそっち参照とし、独自のは詳細書くとか?

275:デフォルトの名無しさん
23/04/23 10:04:39.68 DUqm0gOHM.net
書いたことがない
自分で使うなら覚書として必要な範囲で
他人に提供するライブラリでも普通は書かない
使われないし必要とされてないから
常識的にそれが何をしているか想定できる場合は書かない
今だったらファイルアクセスしてますよとか引数を取りますよで利用側もある程度想像できる
標準ライブラリの例外でないものを投げる可能性があり
それに回復手段がある場合に書くぐらいなんじゃないかなと

276:デフォルトの名無しさん (ワッチョイ 6610-ASru)
23/04/24 06:43:49.53 P+2JsUDo0.net
ドキュメンテーションコメントなんか書いたことないな・・・

277:デフォルトの名無しさん (アウアウクー MM7d-pS66)
23/04/24 08:26:23.98 F+RPKNFDM.net
ウチはコーディング規約で必須
どこも書いてるかと思ってたけど違うんだね

278:デフォルトの名無しさん (アウアウウー Sa21-ZiWf)
23/04/24 08:47:42.51 iy7IhEXOa.net
今はドキュメンテーションコメント書いたらコパイロットがコード書いてくれるんじゃね

279:デフォルトの名無しさん (ワッチョイ 3679-ByXY)
23/04/25 07:51:13.18 kQ+fG+er0.net
JavadocやDoxygenってゴミにしかなんなくね?

280:デフォルトの名無しさん (ワッチョイ a95f-SH/E)
23/04/25 08:17:55.28 wOLFytDy0.net
>>279
成果物のかさ増しには最適なんだよw

281:デフォルトの名無しさん (スプッッ Sdea-8Xzj)
23/04/25 08:42:20.58 2JpsSRmdd.net
詳細設計書の雛形を自動で作ってくれる…
んだぜ

282:デフォルトの名無しさん (ワッチョイ a5e5-ASru)
23/04/25 08:45:42.17 XCOYQ77g0.net
詳細設計してからコード書いてクレメンス

283:デフォルトの名無しさん (ワッチョイ aade-RykB)
23/04/25 10:50:36.92 KrvjcZC00.net
質問なんですが、コントロールのボタン1~9のイベントハンドラを全部実行したいとき
Button1_Click(null, null);
Button2_Click(null, null);
Button3_Click(null, null);
Button4_Click(null, null);
Button5_Click(null, null);
Button6_Click(null, null);
Button7_Click(null, null);
Button8_Click(null, null);
Button9_Click(null, null);

これをもっとスマートに書く方法ありますか?
それとも20個程度ならダラダラ書いたほうがいいですか?

284:デフォルトの名無しさん (ワッチョイ 1507-ZiWf)
23/04/25 11:03:26.95 h+X7r+oZ0.net
ViewModelも使わないような泥縄式プログラミングならダラダラ書けばいんじゃね
インスタンスを何らかの方法(前もって配列に入れるとかタグをつけるとか)でフィルタリングすればループが使えるし何ならイベントハンドラ自体一つにまとまるくらい同じことしかしてないんじゃないかとも推測できるが

285:デフォルトの名無しさん (ワッチョイ 1507-ZiWf)
23/04/25 11:05:37.36 h+X7r+oZ0.net
あとイベントハンドラを直接呼び出すのは良くないぞ
イベントハンドラの中から実際の処理を行う関数を呼び出すように作ってイベントハンドラを他の関数から呼びだしたい時には代わりにその処理の方を呼び出すんだ

286:デフォルトの名無しさん (ワッチョイ 1507-ZiWf)
23/04/25 11:07:12.18 h+X7r+oZ0.net
どうしてもハンドラの方を呼び出さなきゃいけない時はButton.PerformClickな

287:デフォルトの名無しさん (ワッチョイ aade-RykB)
23/04/25 12:14:00.34 KrvjcZC00.net
>>284,285,286
サンクスです、まずViewModelがわかりません。ググルとandroidやzamarinの事がヒットします。
windowsのformでプログラム作ってます。もうちょと調べてみます。
イベントハンドラの中のメソッドを呼びだすのですね、Button.PerformClickと迷ったのですが
2つの違いがいまいちわかってなくて、もらったアドバイスでもうちょと考えてみます

288:デフォルトの名無しさん (スプッッ Sdea-8Xzj)
23/04/25 13:05:52.77 +0i9aSeod.net
適当なコレクションに入れてforeachでperformclickだな

289:デフォルトの名無しさん (ワッチョイ aade-RykB)
23/04/25 17:08:17.65 KrvjcZC00.net
>>288
レスサンクスです
List<Button> buttons = new List<Button>();
for (int i = 1; i<10; i++)
{
Button button = new Button();


foreach (Button button in buttons)
{
button.PerformClick();
}
こんな感じでしょうか(途中で挫折した)

290:デフォルトの名無しさん (ワッチョイ a5e5-ASru)
23/04/25 17:34:19.71 XCOYQ77g0.net
フォームに他にボタンが無いなら↓でもやれる

foreach(Control childItem in Controls) {
if(childItem is Button button)
button.PerformClick();
}

291:デフォルトの名無しさん (オイコラミネオ MMb5-/HYv)
23/04/25 17:41:31.18 jwlAeKCmM.net
まずボタンから処理を分けようか?
リファクタリングでメソッドに書き直そう

private void Button_Click(object sender, Args e)
{
//ここは実際に何かやってるが仮にコメントにしてある
//
//ここまで
}

仮にこんなコードだとして

//から始まる3行を選択して右クリックすると出てくるメニュー上の方に "クイックアクションとリファクタリング" というのがあるから
それをクリックすると "メソッドを抽出する" と言うのが出てくるので選ぶ
そのあとメソッド名をつけるだけでイベントハンドラじゃなくて単純なメソッドになる

ボタンをクリックしたと言う名前じゃなくて処理にあった名前にできるしそうするべき
いちいちボタンNが何をしていたか調べたり覚えなくて済む

こういうふうにしてあちこちの処理を簡単にメソッドにできるので
処理の区切りでメソッドにしよう
処理に名前を付けて流用できるようにしよう

292:デフォルトの名無しさん (ワッチョイ aade-RykB)
23/04/25 20:49:06.41 KrvjcZC00.net
>>290
レスさんくすです
こんなシンプルにかけるんですね、ちょと理解がむずいところがあるけど
これをもとにちょっといじくってみます

>>291
丁寧な解説ありがとう
なるほどイベントハンドラからメソッド切り出すのはこうすればいいのですね
他からメソッド呼び出すとき意味も分かりやすく、見通しもよくなりますね
リファクタリングはやったことなかた

293:デフォルトの名無しさん (オイコラミネオ MMb5-/HYv)
23/04/25 23:36:51.46 jwlAeKCmM.net
>>292
これだけできるとコードの書きやすさが格段に上がるよ

メソッド内全部じゃなくてもいい
適当に切り出しても引数とかもちゃんとくくりだしてくれる
出来ない場合は理由があるのでそれも勉強になる

失敗してもアンドゥしたらいいだけだし

294:デフォルトの名無しさん (ワッチョイ 3abd-/HYv)
23/04/26 00:00:21.94 lnboBUB50.net
>>291
こんな機能あったんか…。知らんかった。

295:デフォルトの名無しさん (オイコラミネオ MMb5-/HYv)
23/04/26 00:31:44.42 1VlSMqUTM.net
他にもいろいろ機能があるよ
いろいろ試してね

296:デフォルトの名無しさん (ワッチョイ f1e4-n/u1)
23/04/26 06:43:05.45 aS9C8tBv0.net
>>291
こんな機能知らなかった
勉強になったわ

297:デフォルトの名無しさん (ワッチョイ 6a7f-p1wa)
23/04/28 01:40:04.13 EFykGfO70.net
ほんとVisual studioは神

298:デフォルトの名無しさん (ワッチョイ ea79-lTfL)
23/04/28 01:47:14.94 yqQLE+sa0.net
それっぽい名前を付けるのが一番面倒だから
そこは処理をAIに要約させて付けて貰う
完璧だな

299:デフォルトの名無しさん (ワッチョイ 4954-YWDm)
23/04/28 04:28:06.22 SQeM8rhL0.net
非同期メソッドを実行する時「戻り値は特に必要ないが、例外は伝えてほしい」という場合、
戻り値は適当に int とかにしても問題ないでしょうか?
理想的な方法があれば教えてください。

例:
public Task<int> SomeMethod()
{
  return await Task.Run(()=>
  {
    try
    {
      //非同期で実行したいメソッド。
      return 1;
    }
    catch
    {
      throw;
    }
  });
}

300:デフォルトの名無しさん (ワッチョイ 6610-ASru)
23/04/28 07:28:54.39 dvpYRirO0.net
戻り値無くても例外は発生するぞ
ていうかthrowするだけならtry要らないだろ

301:デフォルトの名無しさん (ワッチョイ 6663-Be6V)
23/04/28 07:38:28.05 4gfllXQT0.net
public async Task SomeMethod()

302:299 (ワッチョイ 4954-YWDm)
23/04/28 07:46:32.72 SQeM8rhL0.net
>>300-301
ありがとうございます。
本当に助かりました。

303:デフォルトの名無しさん (ワッチョイ 777c-KiN+)
23/05/02 15:27:13.55 +P/djKKr0.net
>>300
以外と例外処理って勘違いしてる奴が多いんよ

例外が発生する可能性がある場所にtry catch書くべきって思ってる奴が7割ぐらい居る

正解は例外が発生した場合にリカバリー処理を書く場合に使用する

304:デフォルトの名無しさん (アウアウウー Sa1b-gncP)
23/05/02 15:48:44.54 k2jSiG28a.net
リカバリー処理とは?

305:デフォルトの名無しさん (ワッチョイ 777c-KiN+)
23/05/02 15:54:32.37 +P/djKKr0.net
そのままの意味どうすよ
回復や復帰を意味する言葉通り

例えば通信中に環境が悪く回線切断
例外からそれは分かるので回線が繋がりやすい場所は移動する様にメッセージを出した後に再接続して通信を続行させる

306:デフォルトの名無しさん (ワッチョイ 7f79-tpgI)
23/05/02 16:24:14.51 2rV8iq3c0.net
UIソースでtrycatch書くための仕組みだろ

返せる例外は複数も行けるけど1つしか想定してないからどんぶりの類

本処理中と終了処理があるような処理は想定外
終了処理は行われないで帰ってくる
厨房の工作キット

307:デフォルトの名無しさん (アウアウアー Sa4f-ef8y)
23/05/02 16:28:46.70 GVM+dlL1a.net
リカバリー処理とは限らんでしょ

308:デフォルトの名無しさん (ワッチョイ 375f-Hgfr)
23/05/02 16:48:17.59 4Yks9dbV0.net
まあ、自分の業務だけが全ての人は知見が狭くてかなわんなw

309:デフォルトの名無しさん (ワッチョイ 97cf-hzXf)
23/05/02 17:26:39.90 ID016ee+0.net
復帰とも書いてるから、例外の伝播をそこで止めて通常動作に戻すこと全般を言っているんなら
大体合ってるんじゃないかな。

310:デフォルトの名無しさん (ワッチョイ 9f4b-gncP)
23/05/02 18:28:49.42 2Pbut5Rc0.net
独自の例外に変換することもあるのでは

311:デフォルトの名無しさん (ワッチョイ 3754-wHlW)
23/05/02 18:29:31.06 yUli7OqN0.net
try catch はリカバリー処理とかユーザー通知も含めて、"例外が起きたら何かしたい" 時に使う物くらいにしか考えてなかったなぁ。

void Method() {
try {
 処理
} catch (Exception ex) {
 //if (この場で復旧処理したい) { 復旧処理 }
 //if (メソッド呼び出し元に例外が起きたことを伝播したい) { 例えば、throw する }
 //if (ログを出力したい) { ログ出力する }
 //if (別のプロセスを起動したい) { 別のプロセスを起動する }
 //if (その他諸々何かしたい) { その他諸々何かの処理 }
}

312:デフォルトの名無しさん (ワッチョイ 9f7f-ExZu)
23/05/02 18:29:58.08 Iiod3Ljm0.net
相手サーバーに拒否されたとかそのままコケて欲しい時はcatchしなくて良いしな

313:デフォルトの名無しさん
23/05/02 21:03:09.39 N5mno8Ao0.net
質問いいですか?
form1からform2を呼び出して、form2からform1のbutton1をクリックしたい
public partial class Form2 : Form
 {
  private Form1 _form1;
  public Form2(Form1 form1)
   {
   InitializeComponent();
   _form1 = form1;
   }
 }
ここでform2から
_form1.button1.PerformClick(); //うまくいきます
Button selectedButton = (Button)_form1.Controls["button1"];
selectedButton.PerformClick(); //うまくいきませんnull

314:デフォルトの名無しさん
23/05/02 21:04:43.29 N5mno8Ao0.net
>>313
途中で投稿してしまった
これはなぜうまくいかないのでしょうか?

315:デフォルトの名無しさん
23/05/02 21:11:45.34 V30afgjZ0.net
動くけどなー

316:デフォルトの名無しさん
23/05/02 21:19:48.53 N5mno8Ao0.net
まじでっ

317:デフォルトの名無しさん
23/05/02 21:20:16.79 yUli7OqN0.net
別フォームからクリック出来たよ。
ソース全体が不明だから何とも言えないけど、
1. Form2 クラスの form1 ・ _form1 変数は、ちゃんと Form1 のインスタンスを参照出来てる?
2. 自動クリックされる Form1 のボタンは、ちゃんと Name = button1 になってる?

318:デフォルトの名無しさん
23/05/02 21:21:01.87 yUli7OqN0.net
間違えた。
Name = "button1"

319:デフォルトの名無しさん
23/05/02 22:19:38.01 XpNDWH0U0.net
キャストってプロパティより優先順位低かったっけ?

320:デフォルトの名無しさん
23/05/02 22:21:39.83 N5mno8Ao0.net
>>315
サンクスです、文法問題ないのだったら、ここに書き漏らしてる何かが悪いのだろうか
>>317
さんくすです、うまくうごくのですね _form1 は
_form1.button1.Text = "hogehoge";
がうまくいくのでインスタンスを参照できてるかな、NameもVSのプロパティそのままで

321:デフォルトの名無しさん
23/05/02 22:29:06.71 N5mno8Ao0.net
>>319
俺への回答でしょうか?試しに
(Button)(_form1.Controls["button1"])
みたいにやってみたけどうまくいかず

322:デフォルトの名無しさん
23/05/02 22:47:23.62 NVQj7oowr.net
「うまくいかない」の内容をもう少し詳しく書くようにしよう
何も起こらないのかそれともエラーが出るのか
エラーが出るなら具体的にどんなエラーメッセージなのか

323:デフォルトの名無しさん
23/05/02 22:51:11.59 V30afgjZ0.net
>>320
もしかしてForm1のPanelとかの中にbutton1が入ってるんじゃ
そしたら_form1.panel1.Controls["button1"]よ

324:デフォルトの名無しさん
23/05/02 23:02:01.80 N5mno8Ao0.net
>>322
失礼しました、例外がスローされます
selectedButton.PerformClick();のところで止まってselectedButtonがnullみたいです
System.NullReferenceException: 'オブジェクト参照がオブジェクト インスタンスに設定されていません。'

325:デフォルトの名無しさん
23/05/02 23:06:31.60 HZAuKpK5M.net
>>324
それ単純に名前ミスってるだけだよ…

326:デフォルトの名無しさん
23/05/02 23:09:12.69 N5mno8Ao0.net
>>323
ビンゴでした、うまく動きました
グループボックスの中にボタン入ってました、こんなのいるんですね
ありがとうございました

327:デフォルトの名無しさん
23/05/02 23:12:57.82 N5mno8Ao0.net
>>325
名前はインテリセンスで出てこないから要注意ですね
一応単語を選択すると同じ単語が色分けされるから、そこで確認しました

328:デフォルトの名無しさん (ワッチョイ 9fde-fitb)
23/05/02 23:32:01.14 N5mno8Ao0.net
たすかりました
ありが㌧

329:デフォルトの名無しさん (オイコラミネオ MM6b-hzXf)
23/05/02 23:46:40.83 HZAuKpK5M.net
テキストでコントロール指定したりPerformClick()使うのは最初だけだから
初心者だからなんでも使えばいい
そこから出られるのかどうか

330:デフォルトの名無しさん (ワッチョイ 9f79-zzYQ)
23/05/03 00:32:32.38 Kv12u2jn0.net
>Controls["button1"]
こんなもん使うなカスボケってことは理解できたんかな?

331:デフォルトの名無しさん (ワッチョイ d7ac-9Trp)
23/05/03 01:23:01.23 Ia3mFb590.net
まあ他人の実際のコードを見るようになってからじゃね
自分で書いて動かすだけで手一杯なんやろ

332:デフォルトの名無しさん (ワッチョイ 9f4b-gncP)
23/05/03 02:28:32.14 vL8FscsM0.net
しっけーなおまえ等

333:デフォルトの名無しさん (ワッチョイ 3754-wHlW)
23/05/03 05:15:12.14 X2wTGB2Y0.net
自分は、DataGridViewColumn.DataPropertyName でプロパティ名を文字列で指定してカラム参照してるわ。
本職はプログラマーじゃないから許してクレメンティン。

334:デフォルトの名無しさん (ワッチョイ 777c-KiN+)
23/05/03 05:27:13.82 iydNsBEo0.net
別に良いんだよ
馬鹿なプログラマはこうするべきだってって感じで言うけどただの無能
動けば良いんだよ
実際売れてるとか人気のアプリのコードなんて糞みたいなもん

音楽で考えると分かりやすい
人気の音楽や長年聴かれる音楽って結構シンプルやろ

ギターとかの超絶テクニックやら奏法が特殊なら良い音楽かって言えば違うやろ
実際はミリオンセラーの音楽なんて小学生が少し練習すれば弾ける様になるのが結構ある


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

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