■ このスレッドは過去ログ倉庫に格納されています
ふらっと C#,C♯,C#(初心者用) Part144
- 1 :デフォルトの名無しさん :2019/07/16(火) 15:36:23.74 ID:i1fbuZ/pM.net
- !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
- 953 :デフォルトの名無しさん :2019/10/06(日) 02:10:45.36 ID:uOvq13Pn0.net
- 以前REST APIを作ったときはVisual Studioがjson.netを利用するコードを自動生成してたけど、今はDataContractJsonSerializer化されてるのかな?
- 954 :デフォルトの名無しさん :2019/10/06(日) 07:22:38.42 ID:DbrcOQgy0.net
- >>953
System.Text.Json
- 955 :デフォルトの名無しさん :2019/10/06(日) 11:26:53.05 ID:yc9LKsYB0.net
- >>939
http://software.aufheben.info/kouza/kouza_socket.html
>936
cjson
- 956 :デフォルトの名無しさん :2019/10/06(日) 12:18:55.28 ID:jjEkd1/A0.net
- windows formsアプリについての相談なんですけれど、ロジックと見た目を分けろって聞くじゃないですか。なのでそうしようと思ったんです
例えばユーザーコントロールを作って、そこに何かしらの処理を行うボタンを配置したとします
それで自分が考えたのは、計算をするクラスをユーザーコントロールクラスの内部クラスとして作る、ユーザーコントロールクラスのフィールドとしてその計算するクラスのインスタンスを持たせる
でボタンが押されるイベントで計算をするクラスのオブジェクト.calculate()みたいにする
設計としてはこんな感じでも大丈夫ですかね?アプリを作る時に内部のコードはこう実装するみたいなことを教えてくれる本が無くてどう設計していけばいいのかわからないんです
- 957 :デフォルトの名無しさん :2019/10/06(日) 12:29:48.44 ID:ofI4YMfJM.net
- 右も左もわからないうちから俺俺アーキテクチャとか考えないで
MVCやMVVMでも勉強したらいいと思うよ
それから最強のアーキテクチャを考えるのでも遅くない
- 958 :デフォルトの名無しさん :2019/10/06(日) 12:31:03.82 ID:U/2g+4lB0.net
- >>956
>ロジックと見た目を分けろ
windows formsアプリじゃなくWPFやった方がいいんじゃない?
windows formsでそんな組み方するの逆にめんどくさい
- 959 :デフォルトの名無しさん :2019/10/06(日) 13:48:38.81 ID:wAV7A9/e0.net
- >>955
cjsonはわかりやすいのかな、ちょっとしらべてみるさんくす
- 960 :デフォルトの名無しさん :2019/10/06(日) 13:52:51.65 ID:44yIwJmG0.net
- >>956
そんなことしなくて良い
画面アプリなんて使い捨て上等
サーバーサイドと画面(クライアント)を分けろって話で
一つのアプリでそんなことやっても無意味
- 961 :デフォルトの名無しさん :2019/10/06(日) 14:51:46.94 ID:BLgAYnXt0.net
- そんな訳は(規模にもよるけど)当然無い。
- 962 :デフォルトの名無しさん :2019/10/06(日) 15:03:12.76 ID:Ih3UpniZ0.net
- 「既存メソッドの処理なんですが?ちょっと時間かかっちゃうんですよねー
プログレスバーとかつかないですかね?
処理の進行状況も表示して」
こんな簡単な要望ですら
そいつはケツまくって逃げ出すよ
花京院の魂を10000個ぐらいかけてもいい絶対だ
処理と表示は一見関係ないように見えて実は密接に関係していて
絶対に切り離せない
不可能なことを可能だと言う技術者を信用してはならない
何年もやっていてこの程度の因果関係もわからんような雑魚から
教えを請いてはならない
- 963 :デフォルトの名無しさん :2019/10/06(日) 15:33:01.89 ID:ZrFisUz2a.net
- >>956
何でユーザーコントロールの話になるのかよく分からんけど、
>ユーザーコントロールクラスの内部クラスとして作る
この部分は変だけど(内部クラスにする必然性がない)、その後の部分はそういう認識でいいと思うよ。
FormでもUserControlでも、基本的に書いていいのは上に乗ってる
コントロールを操作するコードとイベントハンドラだけ。
- 964 :デフォルトの名無しさん :2019/10/06(日) 18:11:15.25 ID:SEX7i46w0.net
- >>962
C#にはIProgress<T>というクラスもタスクも横断的に使える便利なIFがあるから
あんたが思っているようなことはない
つか、偉そうなのにこれ知らないのか?
- 965 :デフォルトの名無しさん :2019/10/06(日) 18:45:20.34 ID:pgF6GacOr.net
- 自分は頭が悪すぎてIProgress<T>のどこが便利なのかわからないので
違う仕組みでやってる
- 966 :デフォルトの名無しさん :2019/10/06(日) 19:21:15.12 ID:Ih3UpniZ0.net
- >>964
はぁ?
既存の何も考えずに作ったメソッド(内部)のプログレスバー(表示)を分離したまま実装できないだろってのが俺のレスの主旨なんだけど
理解した上で反論しようとしてんの?
Mr.ドン・キホーテ?
- 967 :デフォルトの名無しさん :2019/10/06(日) 19:26:16.12 ID:SEX7i46w0.net
- >>966
いや、簡単に実装できるよ
君が知らないだけで
- 968 :デフォルトの名無しさん :2019/10/06(日) 19:36:10.31 ID:Ih3UpniZ0.net
- >>967
あっそ、絶対無理なのにバカだなお前
テメーはさっさと技術者やめて詐欺師に看板替えろ
- 969 :デフォルトの名無しさん :2019/10/06(日) 19:38:07.20 ID:fpn8B7qc0.net
- 昔はイベントハンドラで実装してたな
いまならObservablePropertyあたりでやるんかねRxとかどうも上手く使えてる気がしない
- 970 :デフォルトの名無しさん :2019/10/06(日) 19:43:10.12 ID:fpn8B7qc0.net
- >>968
いやできるだろう
- 971 :デフォルトの名無しさん :2019/10/06(日) 19:53:20.87 ID:SEX7i46w0.net
- >>969
確かにmvvmだとReactiveProperyを上位に伝搬するのが楽だし俺もそうやっている
でもFormsの話のようだからIProgress<T>を出しました
- 972 :デフォルトの名無しさん :2019/10/06(日) 20:02:50.65 ID:dGqjDCnwr.net
- FormsだとしてもIProgressは不便だと思うよ
- 973 :デフォルトの名無しさん :2019/10/06(日) 20:07:52.17 ID:DbrcOQgy0.net
- >>972
なぜ?
- 974 :デフォルトの名無しさん :2019/10/06(日) 20:18:09.12 ID:LuDxacSca.net
- ID:Ih3UpniZ0って昨日iniファイル以外認めないって主張してた御仁か
15〜20年くらい前のスキルしかもちあわせてない人でしょ
技術的なキャッチアップも人間性の向上も怠って年齢だけ重ねてる人だからこういう物言いしかできないんだろう
こういう人のいうことは表向きだけはいはいって聞いたふりして全部無視して問題ないよ
- 975 :デフォルトの名無しさん :2019/10/06(日) 20:27:29.93 ID:dGqjDCnwr.net
- ほっとくとイベントの参照が残ってるのでひとりでに消えなくなってしまう
- 976 :デフォルトの名無しさん :2019/10/06(日) 20:39:48.56 ID:fpn8B7qc0.net
- >>975
backgroundworkerを自前で作らずにformに貼って、イベントもデザイナから作るといいよ
- 977 :デフォルトの名無しさん :2019/10/06(日) 20:40:18.92 ID:DbrcOQgy0.net
- >>975
ソース
- 978 :デフォルトの名無しさん :2019/10/06(日) 23:21:15.76 ID:zXgX+PCrr.net
- ソースもくそもみんなそう
- 979 :デフォルトの名無しさん :2019/10/06(日) 23:28:20.92 ID:zXgX+PCrr.net
- c# メモリリーク イベントハンドラ
- 980 :デフォルトの名無しさん :2019/10/07(月) 00:20:35.80 ID:ilJKwzD30.net
- だからIProgressでメモリーリークするソース出せってば
- 981 :デフォルトの名無しさん :2019/10/07(月) 07:55:39.68 ID:PXpMNqVGd.net
- IProgressはインターフェースなんだからそれ自体がリークってのはおかしいでしょ。使い方が悪いだけでは…?
- 982 :デフォルトの名無しさん :2019/10/07(月) 08:49:33.99 ID:jeQW+1qp0.net
- オッペケは自殺して転生して自分の頭のバグ直してこいやボケ
- 983 :デフォルトの名無しさん :2019/10/07(月) 18:13:25.65 ID:jsaaj6Lxr.net
- インターフェイスでメモリリークするわけがないはその通り
ただ単純なイベントハンドラベースだとうっかりメモリリークさせやすい
コンポジションなどで保持したままで寿命が違うと特にそう
c++だとメモリリークしやすいが使い方が悪い!ちゃんとつかえ!
という話で済まないので進化し続けてる
そのProgressというけど偽りでProgressと言う動作と何の関係もない
実際はどこからも使われないく自分で使うコードを書くだけなのでProgressである必要もない
どこが便利で使ってるのかさっぱりわからない
- 984 :デフォルトの名無しさん :2019/10/07(月) 18:17:14.49 ID:jsaaj6Lxr.net
- 見返すとめちゃくちゃだけどIpregressは別にProgressに高度に特化されてないので
使う意味は薄いのではないか?
nさんがどう思うか知らないけど
- 985 :デフォルトの名無しさん :2019/10/07(月) 19:14:35.69 ID:ilJKwzD30.net
- ここまで具体的なコードは無し
- 986 :デフォルトの名無しさん :2019/10/07(月) 20:06:05.04 ID:GbsEPSwo0.net
- >処理と表示は一見関係ないように見えて実は密接に関係していて
>絶対に切り離せない
ちゃんと考えて設計してもそうなるなら、絶望的にセンスがないわ
おまえに不可能なことが技術的に不可能なこととは違うよ
- 987 :デフォルトの名無しさん :2019/10/07(月) 20:18:37.37 ID:9eyAES450.net
- 次スレ
ふらっと C#,C♯,C#(初心者用) Part145
https://mevius.5ch.net/test/read.cgi/tech/1570446977/
ワッチョイ無しは
ふらっと C#,C♯,C#(初心者用) Part141
https://mevius.5ch.net/test/read.cgi/tech/1544838367/
- 988 :デフォルトの名無しさん :2019/10/07(月) 21:20:35.04 ID:jsaaj6Lxr.net
- >>985
理解できないなら無理にレスしなくてもよい
- 989 :デフォルトの名無しさん :2019/10/07(月) 21:45:53.70 ID:/mGKDAACa.net
- >>987
乙
- 990 :デフォルトの名無しさん :2019/10/07(月) 22:15:03.54 ID:QEMDFqtE0.net
- >>987
乙
- 991 :デフォルトの名無しさん :2019/10/07(月) 22:16:20.26 ID:ilJKwzD30.net
- >>988
はよ
- 992 :デフォルトの名無しさん :2019/10/07(月) 22:40:26.54 ID:H1QHa3mL0.net
- >>986
バカだろ
物理的に不可能だろ
既存処理にプログレスバー付けてみろよ
- 993 :デフォルトの名無しさん :2019/10/07(月) 22:42:41.65 ID:d+4AHn7d0.net
- IProgressというか、その実体のProgres<T>クラスは、普通に使えばメモリーリークなんか起こらないんだよな
イベントじゃなくてActionデリゲート使ってメンバ変数など使わずにローカル変数で定義して
処理を実行するたびにインスタンス作ればいいだけ
ラムダ使えない人はご愁傷さまとしか言えません
- 994 :デフォルトの名無しさん :2019/10/07(月) 22:50:14.57 ID:jsaaj6Lxr.net
- >>993
外から複数のハンドラ指定して実行したい場合どうすんの?
Actionにどうやって渡す?
- 995 :デフォルトの名無しさん :2019/10/07(月) 22:52:08.75 ID:jsaaj6Lxr.net
- それと
> 普通に使えばメモリーリークなんか起こらないんだよな
と
> イベントじゃなくてActionデリゲート使ってメンバ変数など使わずにローカル変数で定義して
> 処理を実行するたびにインスタンス作ればいいだけ
は矛盾してるよね?
- 996 :デフォルトの名無しさん :2019/10/07(月) 22:53:10.67 ID:s9APxj2Ed.net
- >>994
複数のアクションを実行するアクションを渡す
- 997 :デフォルトの名無しさん :2019/10/07(月) 22:59:52.41 ID:d+4AHn7d0.net
- >>995
サンプルぐぐっても、イベント使ったりクラスのメンバ変数にして使い回すって方が邪道じゃないかな?
- 998 :デフォルトの名無しさん :2019/10/07(月) 23:21:18.60 ID:cpqLM3c60.net
- >>986
多分切り離すとか分離するの意味を根本から間違えて捉えてるんだと思うので無駄だよ。関心の分離の基本がわかってない
- 999 :デフォルトの名無しさん :2019/10/09(水) 02:47:43.58 ID:mpcY/05P0.net
- ぅ
- 1000 :デフォルトの名無しさん :2019/10/09(水) 02:47:58.78 ID:mpcY/05P0.net
- め
次スレ
ふらっと C#,C♯,C#(初心者用) Part145
https://mevius.2ch.net/test/read.cgi/tech/1570446977/
- 1001 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
- 1002 :2ch.net投稿限界:Over 1000 Thread
- 2ch.netからのレス数が1000に到達しました。
総レス数 1002
286 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★