!extend:checked:vvvvv:1000:512
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)
「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part95
https://mevius.5ch.net/test/read.cgi/tech/1508168482/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part143
https://mevius.5ch.net/test/read.cgi/tech/1558002486/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries
http://referencesource.microsoft.com/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
ふらっと C#,C♯,C#(初心者用) Part144
レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ドコグロ MM2f-DHp5)
2019/07/16(火) 15:36:23.74ID:i1fbuZ/pM805デフォルトの名無しさん (ワッチョイ c76e-upKm)
2019/09/26(木) 23:38:48.19ID:QoSQSwcY0 なるほど参考になりました。
今思えば既にタブごとに部分クラスわけしてファイル別になってたような気がしないでもない……となると実質一クラス10万行か。笑えない
今思えば既にタブごとに部分クラスわけしてファイル別になってたような気がしないでもない……となると実質一クラス10万行か。笑えない
806デフォルトの名無しさん (ブーイモ MMab-4jkW)
2019/09/27(金) 06:43:42.33ID:N2euUEC0M >>800
1000行超える時点でオブジェクト指向できてない証拠
1000行超える時点でオブジェクト指向できてない証拠
807デフォルトの名無しさん (ワッチョイ 47da-AQ1v)
2019/09/27(金) 08:33:35.75ID:1dreLMG90 フォーム以外で使わない処理を
わざわざ外部のファイルやクラスに作る必要なんてある?
わざわざ外部のファイルやクラスに作る必要なんてある?
808デフォルトの名無しさん (アウアウウー Sa8b-MM89)
2019/09/27(金) 08:42:46.73ID:eAUqf5T9a >>807
それで可読性が高まるならやる意味はある
それで可読性が高まるならやる意味はある
809デフォルトの名無しさん (スフッ Sd7f-mDN4)
2019/09/27(金) 09:06:13.84ID:ikgA/i06d C#は1ファイルに全部書けるので必要ないです
810デフォルトの名無しさん (ワッチョイ 675f-Xp2G)
2019/09/27(金) 10:07:45.04ID:NnPkuVhE0 再利用しないならそれでいいんじゃね?
811デフォルトの名無しさん (ワッチョイ 5f79-S/NQ)
2019/09/27(金) 22:47:27.06ID:uik+OEWH0 お前を含めた全人類が未来永劫そのコードに手を加えない保証があるなら好きにすればいい
812デフォルトの名無しさん (ワッチョイ c76e-upKm)
2019/09/27(金) 23:28:58.48ID:MmWjZkvh0 ググったらタブ大量にあるような場合>>802がクラス分割のためのメジャーな手法なのね
813デフォルトの名無しさん (ワッチョイ 5ff9-vbpN)
2019/09/28(土) 08:43:54.27ID:uN9Z5b+x0 游ゴシックの英数文字をMeasureStringで取得した矩形を使ってDrawStringすると高さ不足で表示されない
矩形を使わなきゃ表示はできるから良いけどもやもやする
矩形を使わなきゃ表示はできるから良いけどもやもやする
814デフォルトの名無しさん (ワッチョイ 0701-/0jh)
2019/09/28(土) 10:37:47.08ID:elJniuwU0 フォント周りおかしいのはMS伝統では
ないだろうか?
Q
ないだろうか?
Q
815デフォルトの名無しさん (アウアウウー Sa8b-dvEi)
2019/09/28(土) 14:09:54.66ID:51nJyp6ja そんなざっくりした話じゃ、どうせお前自身のコードのバグだろって
反応しか返ってこないと思うw
反応しか返ってこないと思うw
816デフォルトの名無しさん (ワッチョイ 07c5-Mf0M)
2019/09/29(日) 01:52:26.51ID:sVRG+wNI0 インターフェイスと抽象クラスってどう使い分ければ良いのでしょう?
ググってもよくわかりません。
ググってもよくわかりません。
817デフォルトの名無しさん (ワッチョイ 47da-AQ1v)
2019/09/29(日) 02:47:00.08ID:TNnn17Gh0 インターフェースなら継承関係のない複数のクラスのように
振る舞うことができる
振る舞うことができる
818デフォルトの名無しさん (ワッチョイ 5f79-S/NQ)
2019/09/29(日) 02:49:22.44ID:HU0MDVmv0 大雑把言えば
プロパティとフィールド(値)を保持するのがクラス
クラスのメソッド(挙動)を公開するのがインターフェイス
プロパティとフィールド(値)を保持するのがクラス
クラスのメソッド(挙動)を公開するのがインターフェイス
819デフォルトの名無しさん (ワッチョイ 47da-AQ1v)
2019/09/29(日) 02:54:07.57ID:TNnn17Gh0 それが抽象クラスとなにが違うのだ?と彼は聞いているわけで
820デフォルトの名無しさん (ワッチョイ 5f79-S/NQ)
2019/09/29(日) 03:01:23.20ID:HU0MDVmv0 インターフェイスは値を持たないし
原則として挙動の実装も持たせない
原則として挙動の実装も持たせない
821デフォルトの名無しさん (アウアウウー Sa8b-dvEi)
2019/09/29(日) 03:20:49.12ID:m1n6jIU5a >>816
使い分けで悩む必要はないと思うよ。
インターフェイスで目的が達成できるならあえて抽象クラスを使う理由はないのだから。
たぶん使い分けが分からないのではなく、インターフェイスの使いどころが分からないだけじゃないのか。
よくわからなくてもとにかく実際コードを書いて使ってみることが重要。
別に難しい話じゃないので使ってるうちに自ずと分かる。たぶん
使い分けで悩む必要はないと思うよ。
インターフェイスで目的が達成できるならあえて抽象クラスを使う理由はないのだから。
たぶん使い分けが分からないのではなく、インターフェイスの使いどころが分からないだけじゃないのか。
よくわからなくてもとにかく実際コードを書いて使ってみることが重要。
別に難しい話じゃないので使ってるうちに自ずと分かる。たぶん
822デフォルトの名無しさん (ワッチョイ 47da-AQ1v)
2019/09/29(日) 03:35:49.46ID:TNnn17Gh0 多重継承的なことがしたくなったらインターフェースを使う
くらいな感じでいいのかもね
くらいな感じでいいのかもね
823デフォルトの名無しさん (ワッチョイ ff0d-hLG/)
2019/09/29(日) 07:08:46.93ID:5VaVy3IA0 私もよくわからないんですが、インターフェースって実装内容は問わないけどこの名称のメソッドは用意しなさいよってコトですかね?
インターフェースでメソッドを定義しても、継承したクラスがそのメソッド名に合ってない実装をしてしまったらと考えるとインターフェースのメリットがイマイチピンときません
インターフェースでメソッドを定義しても、継承したクラスがそのメソッド名に合ってない実装をしてしまったらと考えるとインターフェースのメリットがイマイチピンときません
824デフォルトの名無しさん (ワッチョイ 5fad-W5ZC)
2019/09/29(日) 07:26:53.36ID:ehZkSMIn0 疎結合
825デフォルトの名無しさん (ワッチョイ 5f01-Gn+r)
2019/09/29(日) 08:56:25.44ID:qdFsd7WD0826デフォルトの名無しさん (ワッチョイ 47da-AQ1v)
2019/09/29(日) 09:00:39.96ID:TNnn17Gh0 それって抽象メソッドでも同じ事じゃないの
827デフォルトの名無しさん (ワッチョイ 672c-hHW8)
2019/09/29(日) 11:47:55.74ID:YvnTsZym0 多態で使うんだよ
用意しなさいってのは発想が逆で、インターフェースに定義されているプロパティなりメソッドなりが実装されていることが保障されていると考える
実際の実装は気にせずに呼ぶ側はインターフェースのメソッドを呼べばいい
用意しなさいってのは発想が逆で、インターフェースに定義されているプロパティなりメソッドなりが実装されていることが保障されていると考える
実際の実装は気にせずに呼ぶ側はインターフェースのメソッドを呼べばいい
828デフォルトの名無しさん (ササクッテロラ Spbb-dakf)
2019/09/29(日) 11:59:54.10ID:J9ITXYeqp 抽象クラスは重複の排除で使う、インターフェイスはテストする時の視点で必要
クラスAがクラスBの機能を利用する時に
クラスAはインターフェイスに対して実装しとけば
クラスBの変更に影響を受けないし、
テストする時にクラスBの代わりを作るのがインターフェイス部分だけになる
これがもしクラスAがクラスBの抽象クラスに対して実装すると、
クラスAをテストするときに抽象クラスの不要な部分まで要求されてしまう
また複数人開発においてもインターフェイスを利用すれば各個人が独立に作業しやすくなる
クラスAがクラスBの機能を利用する時に
クラスAはインターフェイスに対して実装しとけば
クラスBの変更に影響を受けないし、
テストする時にクラスBの代わりを作るのがインターフェイス部分だけになる
これがもしクラスAがクラスBの抽象クラスに対して実装すると、
クラスAをテストするときに抽象クラスの不要な部分まで要求されてしまう
また複数人開発においてもインターフェイスを利用すれば各個人が独立に作業しやすくなる
829デフォルトの名無しさん (アウウィフ FF8b-yXpG)
2019/09/29(日) 12:01:49.30ID:3s0zt66kF 呼んだはずのメソッドが(インターフェースでは要求されてるのに)実装されてなかったら
コンパイルエラーじゃなくて実行時に例外吐くか
unknownmethod()みたいな呼び方してくれると便利
コンパイルエラーじゃなくて実行時に例外吐くか
unknownmethod()みたいな呼び方してくれると便利
830デフォルトの名無しさん (オッペケ Srbb-kLFp)
2019/09/29(日) 12:05:37.87ID:INBbqatbr 不便だろ
831デフォルトの名無しさん (ワッチョイ c7ad-c9EJ)
2019/09/29(日) 12:07:56.33ID:wmQ9rxKs0 クラスに由来しない振る舞いを定義するのがインターフェイスとも言えるね。
良く例示される「動物」クラスで考えると。
・「動物」は動くのだから「移動」メソッドに必然性がある
・だけど「移動」するのは動物だけではない
・いま「移動」と言うメソッドに着目して操作を行いたいとする
・「移動」は動物でも自動車でもロボットでも行う
・でも自動車もロボットも動物ではないのでいからそのメソッドの由来を「動物」クラスに求めるわけにはいかない
・加えて、動物や自動車やロボットに直系する(基底)クラスもない
・故に「移動」メソッドの由来を「動物」クラスにではなく「移動」インターフェイスに求めてみる
・・・的な。
良く例示される「動物」クラスで考えると。
・「動物」は動くのだから「移動」メソッドに必然性がある
・だけど「移動」するのは動物だけではない
・いま「移動」と言うメソッドに着目して操作を行いたいとする
・「移動」は動物でも自動車でもロボットでも行う
・でも自動車もロボットも動物ではないのでいからそのメソッドの由来を「動物」クラスに求めるわけにはいかない
・加えて、動物や自動車やロボットに直系する(基底)クラスもない
・故に「移動」メソッドの由来を「動物」クラスにではなく「移動」インターフェイスに求めてみる
・・・的な。
832デフォルトの名無しさん (オッペケ Srbb-kLFp)
2019/09/29(日) 12:08:06.40ID:INBbqatbr 実行時に例外吐くのはめちゃくちゃ恥ずかしい
コード書いたやつはバカですと言う証明
私はデバッグもできない馬鹿ですで表明してるようなもの
コード書いたやつはバカですと言う証明
私はデバッグもできない馬鹿ですで表明してるようなもの
833デフォルトの名無しさん (オッペケ Srbb-kLFp)
2019/09/29(日) 12:13:32.63ID:INBbqatbr コンパイル時にエラー吐くならそこでデバッグできる
実行時エラーなら全ての場合でエラーがないことを実際に確認しなければならない
どちらが便利かわかるだろ
実行時エラーなら全ての場合でエラーがないことを実際に確認しなければならない
どちらが便利かわかるだろ
834デフォルトの名無しさん (ワッチョイ 47da-AQ1v)
2019/09/29(日) 19:29:34.79ID:TNnn17Gh0835デフォルトの名無しさん (ワッチョイ 07c5-Mf0M)
2019/09/29(日) 20:03:13.25ID:sVRG+wNI0 先日、マンガ村の運営者が著作権法違反の容疑で逮捕された。
c# プログラマもマンガ村と同様の共有システムgit等を利用し、マンガやソースをインターネットを通して共有している。
github など分散型のバージョン管理システムを利用している c#プログラマはマンガ村の管理者と同じ位置にいるといえる。単なる利用者ではない。
c# プログラマはマンガ村管理者と同一人物といえるので、著作権法違反の共同正犯として刑務所にぶち込むべき。
c# プログラマもマンガ村と同様の共有システムgit等を利用し、マンガやソースをインターネットを通して共有している。
github など分散型のバージョン管理システムを利用している c#プログラマはマンガ村の管理者と同じ位置にいるといえる。単なる利用者ではない。
c# プログラマはマンガ村管理者と同一人物といえるので、著作権法違反の共同正犯として刑務所にぶち込むべき。
836デフォルトの名無しさん (ワッチョイ 5ff9-vbpN)
2019/09/29(日) 22:53:02.75ID:1CaVkali0 c#のインターフェイスにはプロパティも宣言できるよね
あれは実質的にはフィールドと同じ様な感覚で使えてしまう
あれは実質的にはフィールドと同じ様な感覚で使えてしまう
837デフォルトの名無しさん (アウアウウー Sa8b-EV7r)
2019/09/29(日) 23:37:43.33ID:uMWzDoEma だって>>831のような解釈は時代遅れだし特にC#(というかMS系)では一般的ではないからな
今時は「動物」という一般的実在だろうが「移動できる」という抽象的性質だろうが区別せず、
実装を限定したくない場合は原則常にインターフェイスを使うのが一般的だ
特にMSの場合は顕著で、ほぼ全クラスの全メソッドをインターフェイスに定義するというスタイルを取ることが多いし、またそれを推奨してもいる
今時は「動物」という一般的実在だろうが「移動できる」という抽象的性質だろうが区別せず、
実装を限定したくない場合は原則常にインターフェイスを使うのが一般的だ
特にMSの場合は顕著で、ほぼ全クラスの全メソッドをインターフェイスに定義するというスタイルを取ることが多いし、またそれを推奨してもいる
838デフォルトの名無しさん (アウアウウー Sa8b-dvEi)
2019/09/29(日) 23:56:27.42ID:8QPFQcOxa ほんとかよそれwwwww
839デフォルトの名無しさん (ワッチョイ 5f52-k+Ie)
2019/09/29(日) 23:59:46.39ID:k4CvVXqN0 >>837
初心者スレで珍妙な独自理論を一般的だなんて教えるのはやめれ
初心者スレで珍妙な独自理論を一般的だなんて教えるのはやめれ
840デフォルトの名無しさん (ワッチョイ 677d-S/NQ)
2019/09/30(月) 00:22:33.73ID:LVz3OUV70 今年始めた初心者だが
クラスが大カテゴリ
メソッドが小カテゴリ
インターフェースが小カテゴリらの存在を保証する中カテゴリ
このくらいの認識しかなかったわ
クラスが大カテゴリ
メソッドが小カテゴリ
インターフェースが小カテゴリらの存在を保証する中カテゴリ
このくらいの認識しかなかったわ
841デフォルトの名無しさん (ワッチョイ e7da-/0jh)
2019/09/30(月) 00:32:45.02ID:C9eDYcBn0 宣教師と見た
次にスクリプト言語を薦めて来るぞ
次にスクリプト言語を薦めて来るぞ
842デフォルトの名無しさん (ワッチョイ c7ad-c9EJ)
2019/09/30(月) 00:57:12.69ID:PJtB8DfJ0 831 だけど。
複数のクラスインスタンスの動的読み込みとか始めるとそんな感じになることもあるよ。
プラグインとかの識別に便利だし。
そうだとしても、たぶん 831 の1行目と矛盾してないでしょ。
ただ初心者相手の説明にこんなこと言いだしたら収拾がつかなくなるし、
全メソッドをってのは、まあ頑張ってな、と返すしかないけど。
複数のクラスインスタンスの動的読み込みとか始めるとそんな感じになることもあるよ。
プラグインとかの識別に便利だし。
そうだとしても、たぶん 831 の1行目と矛盾してないでしょ。
ただ初心者相手の説明にこんなこと言いだしたら収拾がつかなくなるし、
全メソッドをってのは、まあ頑張ってな、と返すしかないけど。
843デフォルトの名無しさん (ワッチョイ 7f2d-Jn7s)
2019/09/30(月) 01:48:44.79ID:dOfJdIlZ0 すまんが、エラーメッセージにあるカッコ内の行番号らしきものってさあ
片方は間違ってる行っぽいけど、もう片方は一体何なんだぜ?
片方は間違ってる行っぽいけど、もう片方は一体何なんだぜ?
844デフォルトの名無しさん (アウアウウー Sa8b-U2DM)
2019/09/30(月) 02:02:42.92ID:zBUNKmmLa >>843
その行の何文字目かって意味
例えばファイル先頭に「int a = "";」と書いたら(1,5,1,6)でエラーが出るけど
これは「1行目5文字目〜1行目6文字目」の箇所でエラーになっていることを表している
その行の何文字目かって意味
例えばファイル先頭に「int a = "";」と書いたら(1,5,1,6)でエラーが出るけど
これは「1行目5文字目〜1行目6文字目」の箇所でエラーになっていることを表している
845デフォルトの名無しさん (ワッチョイ 7f2d-Jn7s)
2019/09/30(月) 02:09:52.87ID:dOfJdIlZ0 >>844
ありがとう!何文字目かなんて全然わかんなかったよ
ありがとう!何文字目かなんて全然わかんなかったよ
846デフォルトの名無しさん (ワッチョイ c701-2qxP)
2019/09/30(月) 08:08:24.00ID:fD1lXHN30 質問いいですか?
847デフォルトの名無しさん (ワッチョイ e761-zx9Z)
2019/09/30(月) 08:10:26.75ID:ws0x1Tjj0 >>846
駄目です
駄目です
848デフォルトの名無しさん (スフッ Sd7f-hHW8)
2019/09/30(月) 08:17:51.94ID:nNBu0V63d >>847
その返しはこのスレではいかんだろ(笑)
その返しはこのスレではいかんだろ(笑)
849デフォルトの名無しさん (ワッチョイ 5f61-b6oD)
2019/09/30(月) 08:41:05.60ID:bmAzH1750 トイレ行ってきていいですか?
850デフォルトの名無しさん (ブーイモ MMab-/0jh)
2019/09/30(月) 08:55:42.37ID:BmNMZ9TsM もう居るだろう
851デフォルトの名無しさん (ワッチョイ c701-2qxP)
2019/09/30(月) 09:29:49.98ID:fD1lXHN30 では質問しますね
Timerコンポーネントで
Timer1.Interval = 5000;とすると、プログラム起動後5秒後に初めてTimer1_Tickが
実行されますよね、これを起動時に1度実行したいのですがどうしたらいのでしょうか
Form1_Loadに書けばいいような気がしますが引数がわからない
Timerコンポーネントで
Timer1.Interval = 5000;とすると、プログラム起動後5秒後に初めてTimer1_Tickが
実行されますよね、これを起動時に1度実行したいのですがどうしたらいのでしょうか
Form1_Loadに書けばいいような気がしますが引数がわからない
852デフォルトの名無しさん (ワッチョイ 5f24-S/NQ)
2019/09/30(月) 09:31:40.04ID:Q4pocwaT0 忘れたけどTimerってTimers.TimerもThreading.Timerも大体どんな種類の奴でも最初のディレイタイム指定できなかったっけ?
853デフォルトの名無しさん (ワッチョイ c701-2qxP)
2019/09/30(月) 09:58:04.89ID:fD1lXHN30854デフォルトの名無しさん (ワッチョイ 5f42-S/NQ)
2019/09/30(月) 10:05:34.65ID:g7w6SBZq0855デフォルトの名無しさん (オイコラミネオ MM1b-ZHzT)
2019/09/30(月) 10:13:21.52ID:e45pyL0lM >>851
最初100で、中で則5000書き換えじゃあかんかったっけ
最初100で、中で則5000書き換えじゃあかんかったっけ
856デフォルトの名無しさん (ワッチョイ c701-2qxP)
2019/09/30(月) 10:40:02.13ID:fD1lXHN30857デフォルトの名無しさん (アウアウウー Sa8b-dvEi)
2019/09/30(月) 10:47:03.32ID:ZcJV4ZEKa >>851
どんな方法使ってもいいけど後で読んだ時に何をやってるか
分かりやすいのが一番だね
public Form1()
{
InitializeComponent();
Form1.Load += (sender, e) => OnEvery5Seconds();
Timer1.Tick += (sender, e) => OnEvery5Seconds();
}
void OnEvery5Seconds()
{
.....
}
こうやった場合、FormのLoadイベントより前にOnEvery5Secondsが呼ばれる可能性が
あることは注意する必要がある。(実際にはないと思うけど)
どんな方法使ってもいいけど後で読んだ時に何をやってるか
分かりやすいのが一番だね
public Form1()
{
InitializeComponent();
Form1.Load += (sender, e) => OnEvery5Seconds();
Timer1.Tick += (sender, e) => OnEvery5Seconds();
}
void OnEvery5Seconds()
{
.....
}
こうやった場合、FormのLoadイベントより前にOnEvery5Secondsが呼ばれる可能性が
あることは注意する必要がある。(実際にはないと思うけど)
858デフォルトの名無しさん (ワッチョイ c701-2qxP)
2019/09/30(月) 11:16:30.25ID:fD1lXHN30859デフォルトの名無しさん (ワッチョイ 672c-hHW8)
2019/09/30(月) 23:02:09.82ID:S0uOX3sP0 >>852
流れから推測するとたぶんWindows.Forms.Timerクラスだね
流れから推測するとたぶんWindows.Forms.Timerクラスだね
860デフォルトの名無しさん (ワッチョイ 7f2d-Jn7s)
2019/10/02(水) 01:49:10.77ID:4PgWnh+40 非同期メソッドでちょっとだけ同期処理するのにはどうすれはいいのですか?
async Task ABCasync(){
ABCasyncの呼び出し元には、終わるまで待っていてもらいたい処理();
//ここでtaskで呼び出し元に何かを返せたりするのかしら?
ABCasyncの呼び出し元には、待っていてもらう必要のない処理();
}
async Task ABCasync(){
ABCasyncの呼び出し元には、終わるまで待っていてもらいたい処理();
//ここでtaskで呼び出し元に何かを返せたりするのかしら?
ABCasyncの呼び出し元には、待っていてもらう必要のない処理();
}
861デフォルトの名無しさん (ワッチョイ 5f79-S/NQ)
2019/10/02(水) 02:14:39.18ID:mDEdylW50 強引に実装することは可能だがメソッド分割すべき
862デフォルトの名無しさん (ワッチョイ 0701-iC4Z)
2019/10/02(水) 07:28:12.15ID:YugGu4Uj0 クラスは知識
メソッドは機能
という認識は事のほか難しいんけ?
メソッドは機能
という認識は事のほか難しいんけ?
863デフォルトの名無しさん (ワッチョイ 5f52-k+Ie)
2019/10/02(水) 08:07:26.42ID:Vm3TcWW10 >>862
そういう一般的でもない訳のわからない解釈を出されても、普通の人には理解できないかおかしな理解のまま突き進むことになるだろう
そういう一般的でもない訳のわからない解釈を出されても、普通の人には理解できないかおかしな理解のまま突き進むことになるだろう
864デフォルトの名無しさん (ワッチョイ 5f24-S/NQ)
2019/10/02(水) 08:15:53.12ID:gR9x9lAq0 クラスは学校とかのクラスって認識でいい
865デフォルトの名無しさん (オッペケ Srbb-kLFp)
2019/10/02(水) 11:07:45.90ID:9X+f8gXkr ゲームのクラスの方がわかりやすい気がする
戦士 魔法使い 僧侶 盗賊
それぞれできることが違う
戦士 魔法使い 僧侶 盗賊
それぞれできることが違う
866デフォルトの名無しさん (ササクッテロ Spbb-Xp2G)
2019/10/02(水) 11:18:19.95ID:VgxhRvTXp あはは、まあ、学校のクラスだと対抗戦が出来るくらいに似たり寄ったりだから意味が分からないよな。
867デフォルトの名無しさん (アウアウウー Sa8b-k+Ie)
2019/10/02(水) 11:59:15.15ID:8UOZigmra 逆に、同一のクラスの異なるインスタンスなんてのもできないしね。
868デフォルトの名無しさん (ブーイモ MM0b-upKm)
2019/10/02(水) 12:12:09.33ID:VOEDuxVKM869デフォルトの名無しさん (オッペケ Srbb-kLFp)
2019/10/02(水) 12:26:49.61ID:9X+f8gXkr 出来ることが変わらないなら基本変えなくていいよ
設計次第だけど
質問の内容の男戦士と女戦士で何が違うのかはっきりしない
力などの属性値(プロパティ)だけが違うなら分ける必要はないわな
半漁人でも4足系の戦士でも数値しかかわらないなら同じ
コードが共通になるなら基本的に分けなくてもいい
設計次第だけど
質問の内容の男戦士と女戦士で何が違うのかはっきりしない
力などの属性値(プロパティ)だけが違うなら分ける必要はないわな
半漁人でも4足系の戦士でも数値しかかわらないなら同じ
コードが共通になるなら基本的に分けなくてもいい
870デフォルトの名無しさん (ワッチョイ 672c-hHW8)
2019/10/02(水) 19:59:53.93ID:dZRRj/1Z0 強引に何かに例えるよりコード書いてみた方がいいよ
871デフォルトの名無しさん (ワッチョイ 5f42-S/NQ)
2019/10/02(水) 20:20:25.32ID:IV023jBj0 C#はじめて最初の日に読み飛ばすところで議論しても不毛だよな
>>870に賛成
>>870に賛成
872デフォルトの名無しさん (アウアウエー Sa52-8ogf)
2019/10/03(木) 00:57:21.26ID:z1GHd6rla 質問です
工場とかインフラの制御ソフトモドキを成果物としてWindowsアプリケーションの形式でC#で作りたいんですが、この2冊終わった後にWindowsアプリケーション開発の本買うなら何が良いですか?
また、本が時間の無駄だとしたらどこのサイトを参照すれば良いですか?
上記の件よろしくお願いしますm(_ _)m
1冊目 なるほどなっとくC#入門
2冊目 C#プログラミングのイディオム/定石&パターン
工場とかインフラの制御ソフトモドキを成果物としてWindowsアプリケーションの形式でC#で作りたいんですが、この2冊終わった後にWindowsアプリケーション開発の本買うなら何が良いですか?
また、本が時間の無駄だとしたらどこのサイトを参照すれば良いですか?
上記の件よろしくお願いしますm(_ _)m
1冊目 なるほどなっとくC#入門
2冊目 C#プログラミングのイディオム/定石&パターン
873デフォルトの名無しさん (ワッチョイ e522-reJN)
2019/10/03(木) 01:02:05.17ID:t45ZyD0e0874デフォルトの名無しさん (アウアウエー Sa52-8ogf)
2019/10/03(木) 01:16:35.63ID:z1GHd6rla >>873
ありがとうございますm(_ _)m
ありがとうございますm(_ _)m
875デフォルトの名無しさん (アウアウウー Sa21-5zAY)
2019/10/03(木) 01:19:35.07ID:pRlPv1jza >>872
FormならGUIの作り方は必用なことをググって調べながら実際に作ってみるのが一番。
本は1冊以上は読むだけたぶん時間の無駄。
何かを制御するなら、それが大企業の製品で.NET用のライブラリが用意されているのでない限り
たぶんアンマネージドの知識が必要になる。
これは多分本はないので自分でググって調べる
あと多分非同期処理は必須。
最初.NET1.x時代の生のThreadとか使う記事に軽く目を通して、
その後は今時のTPLや非同期メソッドの記事を読めばいい。
本もあるけどたぶんweb上の記事で十分
FormならGUIの作り方は必用なことをググって調べながら実際に作ってみるのが一番。
本は1冊以上は読むだけたぶん時間の無駄。
何かを制御するなら、それが大企業の製品で.NET用のライブラリが用意されているのでない限り
たぶんアンマネージドの知識が必要になる。
これは多分本はないので自分でググって調べる
あと多分非同期処理は必須。
最初.NET1.x時代の生のThreadとか使う記事に軽く目を通して、
その後は今時のTPLや非同期メソッドの記事を読めばいい。
本もあるけどたぶんweb上の記事で十分
876デフォルトの名無しさん (ワッチョイ 6dda-PG2W)
2019/10/03(木) 01:26:24.07ID:wBmuAStK0 非同期メソッドの実行自体は慣れたけど
win10のアップデート強制再起動時に
非同期処理中のタスクをきちんと終了させる方法がわからん
突然書き込み中のファイルがぶっ壊れそうで怖いわ
win10のアップデート強制再起動時に
非同期処理中のタスクをきちんと終了させる方法がわからん
突然書き込み中のファイルがぶっ壊れそうで怖いわ
877デフォルトの名無しさん (アウアウエー Sa52-8ogf)
2019/10/03(木) 01:35:18.06ID:z1GHd6rla >>875
ありがとうございますm(_ _)m
ありがとうございますm(_ _)m
878デフォルトの名無しさん (スフッ Sd0a-reJN)
2019/10/03(木) 01:39:57.58ID:dygVDi5Yd879デフォルトの名無しさん (アウアウウー Sa21-5zAY)
2019/10/03(木) 01:45:45.89ID:pRlPv1jza880デフォルトの名無しさん (ササクッテロ Spbd-F3se)
2019/10/03(木) 15:11:12.65ID:xDvwVpv4p マネージドなドライバーが無いなら使わないって選択をだな。
881デフォルトの名無しさん (ワッチョイ 5d35-4God)
2019/10/03(木) 18:33:07.86ID:65+5RZIm0 UI操作とawaitを使った非同期メソッドをまとめたasyncメソッドを別スレッドから呼び出すにはどうすればいいですか?
882デフォルトの名無しさん (スフッ Sd0a-fusW)
2019/10/03(木) 18:36:08.92ID:XDm3DYNpd >>881
??何が聞きたいの?
??何が聞きたいの?
883デフォルトの名無しさん (ワッチョイ 5d35-4God)
2019/10/03(木) 18:42:35.24ID:65+5RZIm0 >>882
すみませんでした。
例えばこういう感じのメソッドを別スレッドから呼び出す方法を教えてください。
async Task DoSome()
{
label1.Text="処理中...";
await DoLong();
label1.Text="完了";
}
すみませんでした。
例えばこういう感じのメソッドを別スレッドから呼び出す方法を教えてください。
async Task DoSome()
{
label1.Text="処理中...";
await DoLong();
label1.Text="完了";
}
884デフォルトの名無しさん (ワッチョイ 6a2c-qxT7)
2019/10/03(木) 20:27:59.44ID:AKImZpfb0 正直設計を考え直した方がいいけど
メインスレッドで動作してる間に
TaskScheduler.FromCurrentSynchronizationContext()
でTaskScheduler確保しておいて、その"別スレッド"内で
new Task(() => DoSome()).RunSynchronously(taskScheduler)
する
メインスレッドで動作してる間に
TaskScheduler.FromCurrentSynchronizationContext()
でTaskScheduler確保しておいて、その"別スレッド"内で
new Task(() => DoSome()).RunSynchronously(taskScheduler)
する
885デフォルトの名無しさん (ワッチョイ 6d87-4God)
2019/10/03(木) 20:48:28.97ID:Cd3mzBuJ0 こうじゃダメなの?
Invoke((MethodInvoker)(async () =>DoSome()));
Invoke((MethodInvoker)(async () =>DoSome()));
886デフォルトの名無しさん (オッペケ Srbd-jw9j)
2019/10/03(木) 22:23:35.99ID:Y5r0apvPr 呪文化しただけにも見える
887デフォルトの名無しさん (ワッチョイ 5de3-6+Yj)
2019/10/04(金) 00:31:32.74ID:hyuh0V300888デフォルトの名無しさん (アウアウウー Sa21-5zAY)
2019/10/04(金) 01:26:24.02ID:oVLixzTMa >>883
やっぱりそういうのは非UIスレッドからも呼び出せるようにする、ではなく、
逆に普通にUIスレッド専用のメソッドとして提供して、
もし必要ならXMLコメントとかで「UIスレッド以外からの呼び出し禁止」って
明示するのが筋なような気がするw
やっぱりそういうのは非UIスレッドからも呼び出せるようにする、ではなく、
逆に普通にUIスレッド専用のメソッドとして提供して、
もし必要ならXMLコメントとかで「UIスレッド以外からの呼び出し禁止」って
明示するのが筋なような気がするw
889デフォルトの名無しさん (ワッチョイ 5d35-4God)
2019/10/04(金) 09:42:07.42ID:7JHQ1IR60890デフォルトの名無しさん (ササクッテロ Spbd-WEHN)
2019/10/04(金) 09:50:12.44ID:K3mQ1Iatp まあその用途ならやっぱコントロールのInvokeの中で呼べばいいだけの話しだな
DoLongの中でさらに入り組んでるとデッドロックしそうだけど
DoLongの中でさらに入り組んでるとデッドロックしそうだけど
891デフォルトの名無しさん (アウアウウー Sa21-5zAY)
2019/10/04(金) 14:31:48.61ID:RxmXvWZXa こんなの考えてみたが、あんまり便利でもないなw
private bool TryOnUIThread<T>(EventHandler<T> eh, object sender, T e) where T:EventArgs
{
if (!InvokeRequired) return false;
Invoke((Action)(() => eh(sender, e)));
return true;
}
private void FileSystemWatcher_Changed(object sender, FileSystemEventArgs e)
{
if (TryOnUIThread(FileSystemWatcher_Changed, sender, e)) return;
var t = DoSome();
}
private bool TryOnUIThread<T>(EventHandler<T> eh, object sender, T e) where T:EventArgs
{
if (!InvokeRequired) return false;
Invoke((Action)(() => eh(sender, e)));
return true;
}
private void FileSystemWatcher_Changed(object sender, FileSystemEventArgs e)
{
if (TryOnUIThread(FileSystemWatcher_Changed, sender, e)) return;
var t = DoSome();
}
892デフォルトの名無しさん (ワッチョイ b67c-qxT7)
2019/10/04(金) 15:21:51.76ID:5G6hsRzp0 FileSystemWatcherはSynchronizingObject持ってんじゃん
設定しとけば勝手にBeginInvokeでイベントハンドラ呼んでくれるよ
設定しとけば勝手にBeginInvokeでイベントハンドラ呼んでくれるよ
893デフォルトの名無しさん (ワッチョイ 5d01-iyyE)
2019/10/05(土) 10:15:38.99ID:hjSAU91p0 質問なんですが
設定ってどこにどうやって保存してますか?
.configが今ならベストなんでしょうが、保存先が
C:\Documents and Settings\UserName\Local Settings\Application Data\
になり、.iniのように、アプリをコピーで2つの設定が使えるようになりません
.configはファイルの場所が遠くて変更しにくい、iniは古くてC#で扱いにくい
どうしてますか?
設定ってどこにどうやって保存してますか?
.configが今ならベストなんでしょうが、保存先が
C:\Documents and Settings\UserName\Local Settings\Application Data\
になり、.iniのように、アプリをコピーで2つの設定が使えるようになりません
.configはファイルの場所が遠くて変更しにくい、iniは古くてC#で扱いにくい
どうしてますか?
894デフォルトの名無しさん (ワッチョイ 5961-ogEr)
2019/10/05(土) 10:23:45.47ID:BObIlSOA0 >>893
インストールするアプリはユーザーデータフォルダのどっかに保存しないと駄目じゃん
どこでも置けるやつはexeと同じ階層に設定ファイルあったほうが使いやすいじゃん
ってだけしか気にしたことない
インストールするアプリはユーザーデータフォルダのどっかに保存しないと駄目じゃん
どこでも置けるやつはexeと同じ階層に設定ファイルあったほうが使いやすいじゃん
ってだけしか気にしたことない
895デフォルトの名無しさん (ワッチョイ 5d01-iyyE)
2019/10/05(土) 10:30:58.10ID:hjSAU91p0896デフォルトの名無しさん (ワッチョイ a95f-0RA9)
2019/10/05(土) 10:31:02.26ID:elsuYLim0897デフォルトの名無しさん (ワッチョイ 5961-ogEr)
2019/10/05(土) 10:34:16.80ID:BObIlSOA0898デフォルトの名無しさん (ワッチョイ a95f-0RA9)
2019/10/05(土) 10:43:34.43ID:elsuYLim0 >>897
元の質問に設定ファイルを手動で編集したいなんて書いてないが
元の質問に設定ファイルを手動で編集したいなんて書いてないが
899デフォルトの名無しさん (ワッチョイ b67c-MsYi)
2019/10/05(土) 10:47:20.84ID:xk/GxZ7j0 jsonもxmlもインデント関係ないから自由にさせろ
強制したいならyaml使え
強制したいならyaml使え
900デフォルトの名無しさん (ワッチョイ 6aad-y84I)
2019/10/05(土) 12:25:09.61ID:8Jk2Tveb0 >>897
インデントわろた
インデントわろた
901デフォルトの名無しさん (スフッ Sd0a-reJN)
2019/10/05(土) 12:42:35.73ID:sqkLDT76d >>897
インデントwwww
インデントwwww
902デフォルトの名無しさん (ワッチョイ 5961-ogEr)
2019/10/05(土) 15:47:01.45ID:BObIlSOA0 インデントっていうかカッコの対応?
でもその一点でxmlとjsonっておよびじゃ無くない?
これらを使うなら設定ツールが必要になると思う
でもその一点でxmlとjsonっておよびじゃ無くない?
これらを使うなら設定ツールが必要になると思う
903デフォルトの名無しさん (ワッチョイ 6aad-y84I)
2019/10/05(土) 16:03:44.47ID:8Jk2Tveb0 よく出てこれたな
904デフォルトの名無しさん (ワッチョイ 5961-ogEr)
2019/10/05(土) 16:30:09.26ID:BObIlSOA0レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 「日本はパンダがいなくなる状況に直面するだろう」 中国メディア、専門家の見方伝える [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★11 [樽悶★]
- 外国人の犯罪率は日本人の1.72倍 警察庁が短期滞在者除いた数字を参院内閣委で答弁★2 [七波羅探題★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ★2 [♪♪♪★]
- ひろゆき氏 高市首相の台湾有事発言 「日本が得たものあまりない。経済的なマイナスは明確に存在」 [冬月記者★]
- 人類「猟友会がクマ駆除要請の拒否したら銃取り上げたらいい。何のために銃持たせてやってるんだ?積丹の気持ちは理解できる」 [932029429]
- ワチが一番キライなスポーツ1つ当ててみ
- (*´ω`*)おはヨーグルト
- 16のヒッキー女に構って
- ネトウヨ「レアアースは日本でも採れるから輸入しなくてもOK!」 なお精製コストがバカ高く有害物質が大量に出ることは全く知らない模様 [314039747]
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
