C#, C♯, C#相談室 Part94
at TECH
[前50を表示]
950:デフォルトの名無しさん
17/10/15 14:09:37.18 Bo2AAy/J.net
TaskScheduler渡しとけばいいんでない
951:デフォルトの名無しさん
17/10/15 14:21:36.95 uH5IYLUj.net
>>922
意味不明だから言いたいこと整理して
1ステートメントは短く簡潔に
複数行に分けてもいい
「〜である。」「〜だと思う。」「〜したい。」「〜してくれ。」をハッキリして
952:デフォルトの名無しさん
17/10/15 14:41:20.38 yD0afN8z.net
静的イベント定義してタスクはそれを発生させる
受け取り側各位はイベントを受けて適当にハンドルする
でいいんじゃね
953:デフォルトの名無しさん
17/10/15 14:43:54.89 khkF9f68.net
>>924
お前以外はわかってる
954:デフォルトの名無しさん
17/10/15 14:46:56.01 XWjA+gHr.net
□メインフォーム
データリストを保持してる
一定間隔でデータリストをデータベースから取ってきて更新する
□バックグラウンドタスク
メインフォームのコンストラクタで起動する
メインフォームを閉じるまでwhileで動き続ける
メインフォームのデータリストに異常値を見つけたら注意喚起フォームを開く
□注意喚起フォーム
データが異常値だから直せ〜のメッセージが表示してある
オーナーはメインフォーム
バックグラウンドタスクのメソッド上で注意喚起フォームを普通に開こうとしたらクロススレッド〜で開けない
タスク上にインヴォークを記述するのはタスクがスタティックだから使えない
フォームを開く処理をメインフォームに書いてタスクにデリゲート処理を記述するのもタスクがスタティックだから静的なフィールド〜でできない
メインフォームはスタティックじゃないけど作りの問題でタスク側でnewするわけにはいかない
どうやってタスクからイベントを投げてメインフォームでハンドルすればいいか教えてください
>>924
これで理解できる?
955:デフォルトの名無しさん
17/10/15 14:48:02.73 uH5IYLUj.net
>>926
それはわかってるつもりになってるだけだよ
956:デフォルトの名無しさん
17/10/15 14:52:56.88 uH5IYLUj.net
>>927
後半が意味不明
タスクがスタティックってどういうこと
タスクはオブジェクトだろ
957:デフォルトの名無しさん
17/10/15 15:10:29.08 XWjA+gHr.net
static修飾子知らないってマジモンの素人やん
そら説明しても理解できませんわ
>>925
ありがとう
ちょっと調べてみる!
958:デフォルトの名無しさん
17/10/15 15:42:51.61 6FiFCoKL.net
バックグラウンドタスクをシングルトンパターンにして、
メインフォームから起動すればいいんちゃうか
959:デフォルトの名無しさん
17/10/15 15:48:03.42 hZRxEBGG.net
>>927
>バックグラウンドタスクのメソッド上で注意喚起フォームを普通に開こうとしたらクロススレッド〜で開けない
UIスレッドからタスクを実行してるならawaitでUI処理できるよね?
タスク一回終わらしてUI処理してからまたタスク起動する形にすれば簡単だと思う
それかイベントにするか
>メインフォームのコンストラクタで起動する
これって普通?コンストラクタで起動するのはちょっと気持ち悪い
960:デフォルトの名無しさん
17/10/15 15:54:54.78 uH5IYLUj.net
Formが抱えてるデータを走査してるんだから
Formインスタンスは持ってるんだろ
ならInvokeするだけじゃねえかアホかこいつ
961:デフォルトの名無しさん
17/10/15 15:59:42.50 Tx63GDtf.net
バックグラウンドタスクっているの?
962:デフォルトの名無しさん
17/10/15 16:05:38.00 uH5IYLUj.net
インヴォーク(FormインスタンスのInvokeメソッドのことでいいんだよな?)を記述できないスタティックなタスク
という記述から一般的な意味でのstaticメソッドではないスタティックなタスクと名付けられたもの固有の事情があることは明らか
なぜなら非UIスレッドで実行中のstaticメソッドからFormインスタンスのInvokeメソッドを呼び出せないということはないからだ
そもそもInvokeは非UIスレッドからUIスレッドに処理を移譲するための機構だ
まずはそこ(スタティックなタスクと呼んでいる何かについて)を説明しろ
963:デフォルトの名無しさん
17/10/15 16:11:46.40 64liGYG7.net
綺麗なコードって何なんだろうと思う
俺のかいたコードじゃないことは確か
クラス設計もきちんと学んだことがなく
いつの間にか親子関係がおかしくなってそれぞれをコンポジションしたり
よくよく見たらstaticでいいよなって思うものが生えてくる
状態なのか具象なのかが混とんとしてくる
参考にしようと小さなソフトのgithubみたら100行に満たない小さなクラスが100も200もあったりする
どうやってこれの役割覚えて管理してるのかと感心する
964:デフォルトの名無しさん
17/10/15 16:31:12.04 Tx63GDtf.net
>>936
製作者がクラス図書いてなきゃ
そこで終了な案件
ソースからクラス図を生成するツールがうまく動いてくれればラッキー
動かなかったら地道に書いて見るしかない
965:デフォルトの名無しさん
17/10/15 16:31:43.29 XWjA+gHr.net
>>932
コンストラクタで起動するのが気持ちわるいのは超同意
でもコンストラクタで立ち上げて常駐する形じゃないとダメー!!!らしいのでしゃーなしでやってる
タスクの処理をUIスレッドでawaitして返り値で処理するのを繰り返す形が正解なのは理解してるんだけど
>>934
ぶっちゃけボタンかタイマーで起動してawait繰り返せば済むしコードも読みやすいし実装も楽だし拡張性も上がるんだけど
「おじいちゃんはバックグラウンドという言葉が大好き」なのでしょうがない
966:デフォルトの名無しさん
17/10/15 16:34:15.07 SUmdrC/e.net
>>936
小さいクラスはたくさんあっても困らない
見れば何やってるかすぐにわかるから
それに小さいクラスは1つの役割に集中していることが多い(それが良い設計)
なのでクラス名を見れば何をやってるクラスなのか大体わかる
967: 何千行もある巨大なクラスは見てもよくわからない 大抵の場合、様々な役割が1つのクラスに詰め込まれているので、名前も曖昧になる こういうクラスは1つでもあるとプロジェクトが大混乱する
968:デフォルトの名無しさん
17/10/15 16:39:42.12 Tx63GDtf.net
>>939
俺はわからんかった
細切れソースは俺は読めない
資料書いてくれ
969:デフォルトの名無しさん
17/10/15 16:41:28.87 SUmdrC/e.net
>>938
そもそも繰り返すのは正解じゃない
入力系イベントで同期的に検証すればいいだけの話
今回の場合は入力ではなくデータ取得なので取得したあとにデータを検証ればいい
検証なんてほとんど時間がかからないんだから非同期にする必要はない
データに変化がないのに何度も繰り返しデータが正しいか検証したってしょうがない
970:デフォルトの名無しさん
17/10/15 16:45:10.71 SUmdrC/e.net
>>940
そうか
長いクラスを読むのはもっと大変だろうね
971:デフォルトの名無しさん
17/10/15 16:46:24.51 64liGYG7.net
俺が見たのは何とかジェネレーターというの沢山あるものだった
AジェネレーターがBジェネレーターをつくりそのクラスからCジェネレーターが出来て…と
とてもとても理解不能だった
なぜなんとかジェネレーターが必要なのかどうかがわからない
972:デフォルトの名無しさん
17/10/15 16:48:21.34 eZM6bYju.net
コンパクトなクラスが読めないのは能力云々より
設計か命名の問題だと思う
973:デフォルトの名無しさん
17/10/15 16:49:26.63 Tx63GDtf.net
>>942
そういう問題じゃなくて意味があるまとまりにしてくれないと困る
んでおそらく形成されているであろうツリー構造がソースから把握できない
974:デフォルトの名無しさん
17/10/15 16:53:40.20 Tx63GDtf.net
>>943
単ー複の複が増減するんだろうねw
クラス図だと「ー●」確かこんな関係?
975:デフォルトの名無しさん
17/10/15 16:58:24.70 64liGYG7.net
コンストラクタ+メソッド1個みたいのもたくさんあった
単機能を実装したらこういうことになるんだろうとは思うけど
クラスが現実世界のものを表してるならこんな感じにはならない
976:デフォルトの名無しさん
17/10/15 16:59:23.02 HL16aayQ.net
>>945
クラスは意味のあるまとまりだよ
クラスのグルーピングは名前空間でやってるでしょ
名前空間使ってないなら命名規約でわかるようになってるんじゃないかな
どっちも無いならちょっと不親切だね
ちなみにどのリポジトリ?Githubだったよね?
977:デフォルトの名無しさん
17/10/15 17:01:23.72 Tx63GDtf.net
>>947
作るの勝手だけど
そういう奴に限って設計書のクラスの
記述漏れてんだよなぁ
プチクラス作れば作るほど
設計書書くの大変なのに
978:デフォルトの名無しさん
17/10/15 17:03:33.64 Tx63GDtf.net
>>948
githubなんてアクセスしたら警告表示が出ちまうよ
979:デフォルトの名無しさん
17/10/15 17:03:58.81 HL16aayQ.net
>>943
それはジェネレーターではなくファクトリーでは?
DIフレームワークを使わない硬派なプロジェクトだと大量のファクトリーが作られる
980:デフォルトの名無しさん
17/10/15 17:06:39.12 Tx63GDtf.net
>>951
たくさん種類があるんじゃね?
981:デフォルトの名無しさん
17/10/15 20:01:37.79 pPHSVA6w.net
無駄にこだわりが多かったりプライド高いやつのは汚いソースになるな
982:デフォルトの名無しさん
17/10/15 20:21:58.89 7EwQRwAf.net
>>908
使わない
過去の遺物
ヒープ汚したく無い時のstruct用はあるが例外やね
983:デフォルトの名無しさん
17/10/15 20:24:26.52 7EwQRwAf.net
>>914
今ならOptionやらなんやらやね
984:デフォルトの名無しさん
17/10/15 20:41:56.58 T+wcAuKm.net
>>954
過去の遺物ってことは無いな
C#7で参照戻り値と参照ローカル変数が追加されたくらいだし
985:デフォルトの名無しさん
17/10/15 22:31:21.56 9R+c2v2L.net
C#はコードを使い捨てにする言語だからな。
殴り書きの汚いソースでも動くように最強のIDEがサポートしてくれる。
986:デフォルトの名無しさん
17/10/15 22:39:13.51 Gr3hJnkQ.net
それには同意できない
殴り書きでいいならpythonつかえと
987:デフォルトの名無しさん
17/10/15 22:44:28.44 9R+c2v2L.net
おまえに命令される筋合いはない。おまえこそCOBOLでも使ってろよ。
988:デフォルトの名無しさん
17/10/15 22:47:00.42 iejCBPTQ.net
ちょっとワロタ
989:デフォルトの名無しさん
17/10/15 22:52:11.14 gXUARaWp.net
業務系でC#使う上で最強のプロジェクト管理・ソース管理はどれですかね?
990:デフォルトの名無しさん
17/10/15 22:57:23.96 s9CmER57.net
個人プレーならzipでソルーション丸ごと固めるのが結局最強
991:デフォルトの名無しさん
17/10/15 23:01:23.07 9GFvcsU0.net
>>961
GitHub Enterprise
992:デフォルトの名無しさん
17/10/15 23:04:37.66 9R+c2v2L.net
TFSは死んだのか。
993:デフォルトの名無しさん
17/10/15 23:17:33.61 dd5lceIv.net
今やMSもGithubだからなあ
994:デフォルトの名無しさん
17/10/15 23:17:50.60 9GFvcsU0.net
>>964
VSTS
995:デフォルトの名無しさん
17/10/15 23:52:49.16 9R+c2v2L.net
C++保守用に未だVSS使ってるわ。新規で作ることないから移行する気がない。
個人ではC#のコードは使い捨てだから変更履歴なんかいらないよな。バックアップだけで十分。
996:デフォルトの名無しさん
17/10/16 00:06:28.84 jGcPR8aa.net
バックアップ目的だけでもgitのほうが楽だわ
何も考えずプッシュするだけ
997:デフォルトの名無しさん
17/10/16 00:10:00.94 TyZJj4Kq.net
VCSに対してCVSとかSVNとかのイメージを引きずってるなら、
Gitは食わず嫌いしないで一度試してみるべきだな
本当に手軽に使え、全く負担にならない
998:デフォルトの名無しさん
17/10/16 00:35:37.42 pMOr9sAk.net
>>969
gitって非公開で使うにはお金かかるんですか?
999:デフォルトの名無しさん
17/10/16 00:38:16.40 7ho3Goo/.net
gitは今はVSにもデフォルトで入ってるんじゃないか?ネットワークないローカル環境でも使える
githubはしらね
1000:デフォルトの名無しさん
17/10/16 00:47:42.36 eZI1RZBb.net
githubは非公開はお金がかかる
そういうサービス使わないで自分でgit使って自前のgitリポジトリ利用はタダ
好きなように運用したらいい
1001:デフォルトの名無しさん
17/10/16 00:49:28.23 TyZJj4Kq.net
gitはローカルで使いながら必要に応じてリモートと同期取るもんだけど、
無料でプライベートリポジトリが持てるホスティングサービスとしてはbitbucketが有名
github的な機能が不要で本当にgitリポジトリのホスティングだけでいいならAWS CodeCommitとかも無料で使える
1002:デフォルトの名無しさん
17/10/16 01:22:35.89 TG+ykm1v.net
個人でVSTS使おうと思うけど無料なん?
プライベートリポジトリ。
1003:デフォルトの名無しさん
17/10/16 01:35:49.09 pMOr9sAk.net
gitと、githubって別物だったのかw
1004:デフォルトの名無しさん
17/10/16 01:38:02.07 1MDONeW4.net
>>974
うん
1005:デフォルトの名無しさん
17/10/16 02:22:04.00 7CHwAcHs.net
乱立しすぎ。
1006:デフォルトの名無しさん
17/10/16 02:25:43.57 TG+ykm1v.net
>>976
試してます。ありがとうございます。
1007:デフォルトの名無しさん
17/10/16 08:21:49.44 dwD3mD07.net
>>977
世の中はGitで完全に統一されてるよ
どんなホスティングサービスだろうがツールだろうが扱うのはGitリポジトリ
Gitでバージョン管理されているディレクトリをどこに置くか、GUIクライアントに何を使うか、の違いに過ぎない
移行も空のリポジトリ作ってプッシュするだけだ
1008:デフォルトの名無しさん
17/10/16 08:36:34.51 7CHwAcHs.net
まんまとこの糞ボケに騙されたわ。
gitは糞複雑すぎる。
1009:デフォルトの名無しさん
17/10/16 08:49:18.18 dwD3mD07.net
>>980
だったら全世界がお前を騙してることになるぞ
今時Gitなんか開発者にとってはHTTPと同レベルの常識
Gitできない時点でまともにプログラム書けるのか疑われるレベルだぞ
1010:デフォルトの名無しさん
17/10/16 10:04:14.42 rPeh4Mh4.net
>>980
プログラマ向いてないよ
1011:デフォルトの名無しさん
17/10/16 10:04:38.76 qSwuY79x.net
うーん、やっぱりgitは日本語入れると死ぬなぁ
俺だけ?
1012:デフォルトの名無しさん
17/10/16 10:10:42.73 rPeh4Mh4.net
>>983
日本語で
1013:デフォルトの名無しさん
17/10/16 10:14:51.68 qSwuY79x.net
>>984
git、日本語のフォルダとかファイルとか
1014:ると駄目だわ
1015:デフォルトの名無しさん
17/10/16 10:16:55.41 7CHwAcHs.net
>>981-984
もはやスレチじゃ。gitスレに帰れ、アホども。
1016:デフォルトの名無しさん
17/10/16 10:32:00.46 rPeh4Mh4.net
>>986
そうだね、Gitも使えないんじゃc#スレにいてもしょうがないね
1017:デフォルトの名無しさん
17/10/16 10:57:45.62 qSwuY79x.net
みんな日本語設定なんでうまくいくの?
1018:デフォルトの名無しさん
17/10/16 10:58:32.74 FZpcfz8T.net
VSに統合されてるし
変わったことしようとしなければ難しくないと思うけどな
1019:デフォルトの名無しさん
17/10/16 11:26:00.31 Bpg1BMlQ.net
なんでGit使うの?
MSの無料のなんちゃらファウンデーションの方がよくない?
1020:デフォルトの名無しさん
17/10/16 11:36:48.49 1Xir09k9.net
>>990
バージョン管理とホスティングを混同してるだろお前
1021:デフォルトの名無しさん
17/10/16 11:37:48.11 Bpg1BMlQ.net
>>991
うん、多分わかってないわ
1022:デフォルトの名無しさん
17/10/16 11:38:48.59 ts6qmxVh.net
>>988
糞古いの使ってないか?たしか1.6ぐらいまでは日本語不具合あったと思う。詳しくはこっちできけ
Git 16©2ch.net
スレリンク(tech板)
1023:デフォルトの名無しさん
17/10/16 11:39:33.27 1Xir09k9.net
>>992
VSTS(TFS)を使う場合でも、バージョン管理は基本的にGitやで
1024:デフォルトの名無しさん
17/10/16 19:35:11.46 3WbDhRse.net
>>956
それが例外の特殊必要例やね
積極的に使うものではなくてある特定の人向けのもの
1025:デフォルトの名無しさん
17/10/16 19:50:32.43 BHf6I/rR.net
結局使う場面があるってことやね
1026:デフォルトの名無しさん
17/10/16 19:51:44.84 eZI1RZBb.net
みんなTryParseって使ってないのかな?
1027:デフォルトの名無しさん
17/10/16 20:15:08.82 snIoncYK.net
gitlabは確か無料だぞ
OSSだから自分で鯖立ても出来たはず
1028:デフォルトの名無しさん
17/10/16 20:20:36.66 oJ8YHn8m.net
>>997
それは普通に使うな
1029:デフォルトの名無しさん
17/10/16 21:39:17.75 uXI4Esj0.net
Dictionary.TryGetValue も
1030:デフォルトの名無しさん
17/10/16 22:18:18.74 7CHwAcHs.net
>>993
向こうで何があったか知らないがgitスレはIP表示にしてるからこっちで暴れてるのではないか。
git関連は巣に戻れ。
1031:片山博文MZ
17/10/16 23:46:42.68 XYyvKIYb.net
終了。
1032:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 177日 8時間 9分 49秒
1033:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
1603日前に更新/250 KB
担当:undef