C#, C♯, C#相談室 Part97
- 1 :デフォルトの名無しさん :2022/12/21(水) 10:18:38.02 ID:DxBIri9+0.net
- !extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
■Visual Studio 2017 Community(無償の統合開発環境)等はこちら
http://www.visualstudio.com/downloads/
■コードを貼る場合はこちら
http://ideone.com/
■前スレ
C#, C♯, C#相談室 Part94
https://mevius.5ch.net/test/read.cgi/tech/1553075856/
■次スレは>>970が建てる事。
建てられない場合は他を指定する事。
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
- 55 :デフォルトの名無しさん (ドコグロ MMa3-4fYz):2023/01/07(土) 11:12:47.51 ID:ErVvBSvoM.net
- >>53
何それ凄い便利じゃん
>>54
できればプロパティを1つ1つ書きたくないんだよね
- 56 :デフォルトの名無しさん :2023/01/07(土) 11:42:41.36 ID:iltXkPxC0.net
- 継承後のクラス定義って、継承前より厳しくできたっけ?
- 57 :デフォルトの名無しさん :2023/01/07(土) 13:01:01.65 ID:FC273Y3JM.net
- >>55
いやいやw
これでもう終わりでreadonlyだよ
- 58 :デフォルトの名無しさん :2023/01/07(土) 13:01:54.79 ID:FC273Y3JM.net
- これ以上短い書き方なんてできるか?
- 59 :デフォルトの名無しさん :2023/01/07(土) 13:51:35.25 ID:unZBLw7Xd.net
- 質問者は既存のミュータブルなクラスのプロパティを読み取り専用にしようとしている
>>54だと同じプロパティを全部定義し直さなきゃいけないし、元のクラスからコピーする手間も必要だ
>>49の方法であればプロパティを定義し直す必要もコピーする必要もない
- 60 :デフォルトの名無しさん (オイコラミネオ MM5d-Or7w):2023/01/07(土) 14:55:27.90 ID:FC273Y3JM.net
- 既存のプロパティに当たるものをconstにするのは全部定義しなおしてるの同じなんだけど…
どういうやり方で既存のプロパティを定義してるのかもわからないし意味不明だなと
- 61 :デフォルトの名無しさん (オイコラミネオ MM5d-Or7w):2023/01/07(土) 14:56:55.34 ID:FC273Y3JM.net
- うまく行くならプロパティのsetをinitアクセサに変えるだけなんだけど
- 62 :デフォルトの名無しさん :2023/01/07(土) 15:35:50.01 ID:FC273Y3JM.net
- 特定のコンテキストで書き換え不可
状況次第で書き換えの可否を変える
とかならめんどいけどそういう話じゃないんだろ
- 63 :デフォルトの名無しさん :2023/01/07(土) 16:17:29.42 ID:rg/VZrjHa.net
- >>60
いやまともなC++のコードならgetterはconstで定義されてるはずだから、変数の型をconstにするだけでreadonlyになるよ
- 64 :デフォルトの名無しさん :2023/01/07(土) 17:38:18.83 ID:mDCtTa800.net
- 君たち的に.NET MAUIでandroid,iphone,WindowsでC#のネタ帳的なの作ったら協力してくれる?
小ネタ集みたいなのを各々がSQLで保存してそれをカテゴリ分けで見れるようにするやつ
例えばRestAPI関係だったりの基本的な書き方を表示したりできる
ネットで調べれば一発だが1つにまとまってるのは利点かと、、、
- 65 :デフォルトの名無しさん :2023/01/07(土) 17:48:11.52 ID:odL5Q3k30.net
- wiki立ち上げればええやん
- 66 :デフォルトの名無しさん :2023/01/07(土) 18:07:01.95 ID:FC273Y3JM.net
- 多分世界中のc#プログラマの99.9%は.NET MAUIに興味ないと思う
- 67 :デフォルトの名無しさん :2023/01/07(土) 18:08:54.54 ID:St5PAkDm0.net
- winui3でよくね?
- 68 :デフォルトの名無しさん :2023/01/07(土) 18:14:01.42 ID:FC273Y3JM.net
- と言うよりいい加減いくつフレームワーク立ち上げれば済むんだよ
モバイル関連は全部html+jsにしてデバイスを仮想サーバにしてそいつにREST api投げてjsonでセンサ値とか取るようにすればいい
そしたらもう再生産しなくていい
- 69 :デフォルトの名無しさん :2023/01/07(土) 18:17:46.74 ID:unZBLw7Xd.net
- >>64
コンテンツが利用者頼みのサービスは最初自分で頑張るか金出すかしてコンテンツを揃えない限り必ず失敗する
というわけでまずは自分で頑張れ
- 70 :デフォルトの名無しさん :2023/01/07(土) 18:24:07.38 ID:mDCtTa800.net
- >>69
なるほど
- 71 :デフォルトの名無しさん :2023/01/07(土) 18:25:21.79 ID:FC273Y3JM.net
- 一度覚えた技術を何十年も使いまわせるような仕組みにしろよ
都度都度新しいAPIセット出して馬鹿なのかMSは?
- 72 :デフォルトの名無しさん :2023/01/07(土) 18:30:58.40 ID:UPEdDe6/0.net
- ワッチョイ 9301
こいつマウイ君だろ、自分のスレでやれ。NG
- 73 :デフォルトの名無しさん :2023/01/07(土) 18:44:15.99 ID:St5PAkDm0.net
- ここにまでマウイ出張ってきたか
ちゃんとワッチョイを恐れろよ
- 74 :デフォルトの名無しさん :2023/01/07(土) 20:02:44.89 ID:Xl5j6yUn0.net
- マウいじゃん
- 75 :デフォルトの名無しさん :2023/01/07(土) 21:02:06.62 ID:FC273Y3JM.net
- そんなにマウいかな?
- 76 :デフォルトの名無しさん :2023/01/07(土) 21:14:41.15 ID:mnUUIrvLa.net
- チョベリグ
- 77 :デフォルトの名無しさん :2023/01/07(土) 22:07:32.34 ID:8LnSupdD0.net
- >>64
> 例えばRestAPI関係だったりの基本的な書き方を表示したりできる
今からこの手のサービスやってもCopilotに勝てないだろ
- 78 :デフォルトの名無しさん :2023/01/07(土) 23:32:10.91 ID:mDCtTa800.net
- >>77
copilotって別にこれしたいって言えば全部記入してくれるわけじゃなくね?
俺としてはあぁRestAPIの使い方ど忘れした~
なんだったっけ???ってGoogleで調べる時間をアプリで素早く検索できるって感じのものを作りたいかな
2,3回やったことあるやつでもどうだったっけ?って忘れることままある
まぁGoogleとかでいいんだけど1つのアプリにまとまってるってのはなかなか便利なんじゃないかなと…
- 79 :デフォルトの名無しさん :2023/01/07(土) 23:32:40.09 ID:mDCtTa800.net
- 自分で追加もできるしな
- 80 :デフォルトの名無しさん :2023/01/08(日) 16:11:14.19 ID:qCDijd6S0.net
- Aクラスを継承したBクラスがあります
BクラスのリストにAクラスをAddしたいんですが、どうすればいいのでしょうか?
- 81 :デフォルトの名無しさん :2023/01/08(日) 16:20:03.96 ID:PrLa9yfk0.net
- >>80
それは無理
Bは絶対にAだけどAはBとは限らないでしょ?
つまりAクラスのリストにするしかない
まあUnsafe.As使えば無理矢理入れられるけど
- 82 :デフォルトの名無しさん :2023/01/08(日) 16:24:40.95 ID:GEbVHkXI0.net
- >>80みたいな質問する奴って意味も分からず継承使ってたりしてそうで怖いわw
- 83 :デフォルトの名無しさん :2023/01/08(日) 16:25:49.80 ID:+2bxRzY60.net
- A a=new B(); とかで、実体がB型かもしれないならBにキャストすればいい。
A a=new A(); でA型そのものだったらそもそもこの話は成立しない。
list.Add((B)a);
- 84 :デフォルトの名無しさん :2023/01/08(日) 16:40:39.00 ID:Z6otLx+Dd.net
- >>78
massCodeとかgistとかでいいんじゃない
- 85 :デフォルトの名無しさん :2023/01/08(日) 16:50:26.87 ID:+xzWagUM0.net
- >>80
継承じゃなくてBクラスにAクラスのプロパティのリストを入れる場合はたしかいけたぞ
- 86 :デフォルトの名無しさん :2023/01/10(火) 13:29:49.07 ID:yPlBxuJ3M.net
- >>71
ほんとこれ
- 87 :デフォルトの名無しさん :2023/01/10(火) 15:05:52.75 ID:ZisiPnco0.net
- スマホアプリ作ってると毎年アプデで便利な機能がdeprecatedされてくのがストレス
それに比べたらMSの方が優しい
- 88 :デフォルトの名無しさん :2023/01/10(火) 17:23:44.95 ID:qAIynO1bM.net
- >>86
それじゃ入門書売れないだろ
バカ?
- 89 :デフォルトの名無しさん :2023/01/10(火) 18:28:40.94 ID:IC+XgAqf0.net
- android何かも最近コード書いてないけど、非推奨や消えたりする機能が結構あるよね
古いコードをメンテナンスするときに良く引っかかる気がするわ
- 90 :デフォルトの名無しさん :2023/01/10(火) 19:16:36.48 ID:0yW4rCRf0.net
- C言語の重力付き4目並べです、ここのコードを簡略化したいです。
int SetXpos(int player) // コマの置き場所を入力または探して盤を更新,コマの置き場所(0-6)を返す
{
int xpos = 0; // コマの置き場所
if ((choice == 2 && player == 2) || (choice == 3 && player == 1)) // コンピュータとの対戦の場合に,コンピュータの手を計算
{
xpos = ComputeXpos(player);
printf("%sの番です\n", player == 1 ? "●" : "〇");
printf("コンピュータは%dに置きます\n", xpos);
}
else // 人間の手を選択
{
while (1)
{
printf("%sの番です\n", player == 1 ? "●" : "〇");
printf("どこに置きますか? 0-6の数字を半角で入力してください: ");
scanf_s("%d", &xpos);
if ((0 <= xpos && xpos < XMAX) && (num[xpos] < YMAX)) // 置ける場所かどうか判定
break;
printf("%dには置けません!\n", xpos);
}
}
board[xpos][num[xpos]++] = player;// コマをxpos列に置き,xpos列のコマ数を1増やす
return xpos;
}
- 91 :デフォルトの名無しさん :2023/01/10(火) 19:28:44.72 ID:uTLnAVho0.net
- 頑張ってください
- 92 :デフォルトの名無しさん :2023/01/10(火) 19:32:45.96 ID:IC+XgAqf0.net
- そもそもC#のスレだからすれ違いだがw
printf("%sの番です\n", player == 1 ? "●" : "〇");
をifの前にするとか(それぞれにあるから冗長)
プレイヤーの処理もPlayerXpos()とかに出すとかすれば良いのでは?
- 93 :デフォルトの名無しさん :2023/01/13(金) 06:38:18.48 ID:CqT5d+dn0.net
- ありがとうございます
- 94 :デフォルトの名無しさん :2023/01/15(日) 19:05:41.63 ID:CnKOeOE30.net
- Shift-JISの文字列をutr-8に簡単に変換する方法ってありますか?
やはり一度Stream(バイナリ)に変換する必要があるのでしょうか
- 95 :デフォルトの名無しさん (ワッチョイ 867b-UaDV):2023/01/15(日) 19:23:52.26 ID:gGAdUt3l0.net
- >>94
streamじゃなくてbyte[]じゃないの
Encoding.GetString(Encoding.GetBytes(string))ってことだよね
何のためにそんなことするか知らんけど
- 96 :デフォルトの名無しさん (ワッチョイ ca01-FIs7):2023/01/15(日) 19:25:34.21 ID:CnKOeOE30.net
- >>95
つまりstringの状態でencodingは可能なのですか?
- 97 :デフォルトの名無しさん (ワッチョイ ca01-FIs7):2023/01/15(日) 19:28:04.22 ID:CnKOeOE30.net
- C#でRestAPIを投げてブラウザ側から貰ってくる文字列はShift-JISらしい
それでC#はutr-8で表記されるため変換(Encoding)が必要になるのです
- 98 :デフォルトの名無しさん (ワッチョイ caad-vAbj):2023/01/15(日) 19:51:16.92 ID:wUGuc0E00.net
- stringはunicodeだぞ?
- 99 :デフォルトの名無しさん :2023/01/15(日) 22:26:45.28 ID:pBiKKGenM.net
- unicodeは符号化方式など規格とそのコード群の名前
- 100 :デフォルトの名無しさん :2023/01/15(日) 22:56:10.93 ID:AxXMsEIz0.net
- そのREST APIをどうやって呼び出してるのか知らんけど
真っ当なサーバならContent-Typeにcharset設定してて
一般的なライブラリなら文字列として読み取るときにcharset参照して適切に文字列型に変換してくれる
から特にプログラマが考えることはない
これらの前提が崩れてるなら文字列として読み取るんじゃなくてバイト配列として読み取って
System.Text.Encodingクラスを使ってバイト配列をstringに変換する必要がある
この場合変換先の符号化形式を考える必要はなくてShift_JISをstringに変換することだけ考えればいい
もしライブラリの都合でstringとして受け取ることしかできなくて
かつその時点で文字化けが出るようなら
それはもうどうしようもないので使うライブラリを変える必要がある
- 101 :デフォルトの名無しさん :2023/01/15(日) 23:38:57.01 ID:r5uLxMWea.net
- sjis/CP932 とか、何十年前の話w
sjisのサイトも、5ch だけだろw
- 102 :デフォルトの名無しさん :2023/01/16(月) 00:18:41.42 ID:sUZCnaKRM.net
- 古の生き残りのサイトもsjis
chromeが文字コード判定ミスしてても今は手動で文字コードは変えられない
- 103 :デフォルトの名無しさん :2023/01/16(月) 01:06:54.26 ID:Iz2auSAp0.net
- >>100
なるほど
助かります!
- 104 :デフォルトの名無しさん :2023/01/17(火) 01:05:55.75 ID:BTJjkb3Ra.net
- 手動で文字コードを変更できる、Chrome の拡張機能は無いの?
- 105 :デフォルトの名無しさん (スップ Sdea-dnaz):2023/01/17(火) 18:23:06.75 ID:EvOewZJzd.net
- ブックマークレットのレベルで出来そう
知らんけど
- 106 :デフォルトの名無しさん :2023/01/17(火) 19:13:35.87 ID:reGY8TLTa.net
- charsetのタグいれればええんかね
- 107 :デフォルトの名無しさん :2023/01/17(火) 19:17:51.92 ID:3iw8L5pXa.net
- x-sjisとかの指定もあったからな
- 108 :デフォルトの名無しさん :2023/01/18(水) 12:59:30.83 ID:KNmhbmwea.net
- >>104
たくさんあるが
- 109 :デフォルトの名無しさん (ワッチョイ cd35-5Koo):2023/01/18(水) 20:59:57.78 ID:5annSIeD0.net
- たくさんあるのかよ
一個でいいやろ
- 110 :デフォルトの名無しさん (ワッチョイ 211d-+AQV):2023/01/18(水) 21:51:34.28 ID:oIAAyMph0.net
- win32APiのChangeDisplaySettingsExをC#から呼び出して、
モニタのポジションを変更してるんだけど、
変更直後にScreenのBoundsから値をとっても値が変化しない・・・
アプリ再起動するとちゃんと変わってる。
ディスプレイの設定ってレジストリに保存してるから、もしかして
アプリ再起動しないとScreenクラスのBounds反映されない?
アプリ再起動せずになんとかする方法ないですかね?
- 111 :デフォルトの名無しさん (ワッチョイ 06bb-fEm4):2023/01/18(水) 22:07:32.78 ID:jVn9UUXQ0.net
- 自分でバンズ計算すりゃいいじゃない
知らんけど
- 112 :デフォルトの名無しさん (ワッチョイ 954f-wtyD):2023/01/18(水) 22:14:35.47 ID:/+rmiMsB0.net
- Screenオブジェクトフィールドに保存してたりする?
毎回Screen.AllScreensとか.PrimaryScreenとかから取得すればどう?
ところでSystemEvents.DisplaySettingsChangedイベントは発生してる?
- 113 :デフォルトの名無しさん (ドコグロ MM4e-ha7Y):2023/01/19(木) 07:38:17.94 ID:K9HYHkiWM.net
- 2つのクラスを1つのクラスに合体させて使いたいんだけど、どうやるのがスマートですか?
多重継承ができたら良かったんですが…
- 114 :デフォルトの名無しさん (ササクッテロラ Sp6d-/qpm):2023/01/19(木) 09:03:14.21 ID:Hct/UdRpp.net
- 合体?
またなんで、改悪臭しかしないわ
- 115 :デフォルトの名無しさん (ワッチョイ 4149-kID6):2023/01/19(木) 09:25:09.63 ID:LXNiK0p/0.net
- そういうのは大体気の迷いだから、落ち着いて全体から考え直せば
- 116 :デフォルトの名無しさん (ササクッテロラ Sp6d-/qpm):2023/01/19(木) 09:44:42.78 ID:Hct/UdRpp.net
- むしろ機能単位で分解するのが健全な方向なのに
違う機能を似たものだから合体とかわりと誤った方向に行く人かな?
- 117 :デフォルトの名無しさん (ワッチョイ caad-vAbj):2023/01/19(木) 09:56:12.01 ID:zVWBDbvx0.net
- ライオンクラスと山羊クラスと蛇クラスを一つにしたいんです
- 118 :デフォルトの名無しさん (ワッチョイ 0507-EebW):2023/01/19(木) 10:01:07.14 ID:yp2D21uT0.net
- >>117
つトレイト
- 119 :デフォルトの名無しさん (ブーイモ MM2e-laSj):2023/01/19(木) 10:51:30.57 ID:Iv2veF3WM.net
- >>113
コンパイル時に型チェックしたいなら既存の型をインターフェースで定義し直して呼び出し側も修正
でもこういう変更が必要な状況はほとんどないのでコンポジションで移譲するケースなんじゃないかな
>>117
トレイトでもインターフェースでも同じだよ
- 120 :デフォルトの名無しさん (ワッチョイ 0507-EebW):2023/01/19(木) 11:01:05.91 ID:yp2D21uT0.net
- >>114
BindableBaseと他のクラスを両方継承したい場面はいくつかあるな
ソースコードジェネレータは中々いい
- 121 :デフォルトの名無しさん (ワッチョイ 0507-EebW):2023/01/19(木) 11:01:57.47 ID:yp2D21uT0.net
- >>119
トレイトはフィールドを持てるから同じではないけど言いたいことはわかる
- 122 :デフォルトの名無しさん (ワッチョイ 06bb-JXbu):2023/01/19(木) 11:31:03.31 ID:kysdIh6r0.net
- 質問内容はクラスをまとめたいってことなので、ずれちゃう話にはなるけどさあ
(フレームワーク等を使う場面を除いて)初心者中級者のうちにクラスを継承をしようと思ったら設計段階でおかしいので、正解はどうするべきなのかを聞いた方がいいんじゃないのかな
- 123 :デフォルトの名無しさん (ササクッテロラ Sp6d-/qpm):2023/01/19(木) 12:04:02.54 ID:WELAMOcMp.net
- クラスインスタンスを取り込めばいいのに
なんで継承にこだわる?
- 124 :デフォルトの名無しさん (ドコグロ MM21-ha7Y):2023/01/19(木) 12:21:58.33 ID:tEHmCOQcM.net
- やりたいことは
いくつかのプロパティを持つデータを格納するだけのクラスAがある
クラスAにバインド用のプロパティをいくつか追加したクラスBを作って、それのリストをDataViewにバインドしたい
AとBのすべてのプロパティを書いたクラスCを作ればできるけど、なんとかして少ないコードで実現したいです
- 125 :デフォルトの名無しさん (アウアウウー Sa91-EebW):2023/01/19(木) 12:45:40.56 ID:H7hm+dDpa.net
- Aをバインドできるよう書き直せばいいんじゃね
- 126 :デフォルトの名無しさん (オッペケ Sr6d-2lig):2023/01/19(木) 12:52:06.93 ID:8nS1/G/Mr.net
- >クラスAにバインド用のプロパティをいくつか追加したクラスB
>AとBのすべてのプロパティを書いたクラスC
なんかおかしくない?
- 127 :デフォルトの名無しさん :2023/01/19(木) 16:09:46.95 ID:h7ydINbB0.net
- Aを継承してバインド用のプロパティを追加したBを作って
List<B>を持つCを作ってそのList<B>をバインドすればいいんじゃないの
- 128 :デフォルトの名無しさん (ドコグロ MM21-ha7Y):2023/01/19(木) 17:30:22.46 ID:tEHmCOQcM.net
- >>127
それで出来るんですが、バインド用のプロパティが沢山あったときに毎回書くのが面倒で、どうにかして効率化できないか考えてます
- 129 :デフォルトの名無しさん (オイコラミネオ MMe5-7DGa):2023/01/19(木) 18:00:00.70 ID:pNQOSNx5M.net
- ここですら見かけない超クソ黒魔法もあるけど全くお勧めしない
普通にコンポジションで書くのが正解じゃないかな
アンマネージドなものをラップするのと変わらない
手書きでも自作コードジェネレータでもどうぞ
- 130 :デフォルトの名無しさん (オイコラミネオ MMe5-7DGa):2023/01/19(木) 18:06:50.46 ID:pNQOSNx5M.net
- 黒魔術な…
- 131 :デフォルトの名無しさん :2023/01/19(木) 19:44:59.20 ID:cZ+iShes0.net
- やりたい事は理解できる
構造体を合体させるにあたりフィールドで保持すれば良いというのはその通りなんだがアクセス手段が冗長になるのは嫌っていうワガママな気分によくなる
C++のように素直に構造体継承や多重継承認めてくれって思う事は頻繁にある
- 132 :デフォルトの名無しさん :2023/01/19(木) 21:19:14.97 ID:z427r+xYp.net
- プロパティにしてバケツリレーw
- 133 :デフォルトの名無しさん :2023/01/19(木) 22:05:29.65 ID:wlAvkW/br.net
- >>128
バインド用のプロパティってクラスAのもつフィールドを参照するの?
- 134 :デフォルトの名無しさん :2023/01/20(金) 01:42:18.00 ID:Jpp0Ng/yM.net
- >>133
しない前提です。
データソースクラスにバインド用のプロパティも含めれば実現できるけど、クラス設計として微妙なんだよな
- 135 :デフォルトの名無しさん :2023/01/20(金) 12:05:04.93 ID:rWqtsOF60.net
- >>134
>>125が正解な気がするが、
そもそもバインド用のプロパティってどういうものを想定してるんだ?
よくあるINotifyPropertyChanged自動実装したいとかそんな話か?
- 136 :デフォルトの名無しさん :2023/01/20(金) 20:51:09.38 ID:jJGC4T1tr.net
- つまるところ、M(クラスA)とVM(クラスB)を煩雑にならないように扱いたいって話かね
この辺は詳しくないけどいろいろプラクティスがあるんじゃない?
- 137 :デフォルトの名無しさん :2023/01/21(土) 11:56:14.92 ID:cGrVppR7M.net
- C#だとあまり楽な方法はない
- 138 :デフォルトの名無しさん :2023/01/21(土) 12:36:53.78 ID:rZUyyxKK0.net
- そんなアホなことしたがるやつがそもそもいないからな
することが多ければすぐに楽な構文が作られるのがC#
- 139 :デフォルトの名無しさん :2023/01/21(土) 16:52:35.79 ID:H5hcEaoi0.net
- C#は基本的に
・static寄せ集めユーティリティのクラス
・必要な画面フォームのクラス
・メインプログラムのクラス
この3つ以外要らないのだよ
意識高い系が説くMやらVに振り回されてはいけないのだよ
変な抽象化は問題をややこしくするだけだと学ぼう
- 140 :デフォルトの名無しさん :2023/01/21(土) 18:17:20.63 ID:rZUyyxKK0.net
- スタティックおじさんきたな
- 141 :デフォルトの名無しさん :2023/01/21(土) 22:54:03.42 ID:XQUa+q2yM.net
- >>135
そうですね
INotifyPropertyChangedとかINotifyDataErrorInfoを実装しておきたい感じです
- 142 :デフォルトの名無しさん :2023/01/22(日) 10:06:15.27 ID:rqWd8pMR0.net
- 探せば大抵のものはあるのに、自分で作る意味とは?
アートとか、そういう方面しか残ってないような感じがするのですが(´・ω・`)
- 143 :デフォルトの名無しさん :2023/01/22(日) 11:19:49.43 ID:cs1e2wyOa.net
- 帳面で効率が悪けりゃソフト使えばいいし効率の良いソフトがみつからなけりゃ作るより他にないだろ
- 144 :デフォルトの名無しさん :2023/01/22(日) 11:27:13.17 ID:cs1e2wyOa.net
- >>141
ただのViewModelじゃねーか
フレームワーク使え
- 145 :デフォルトの名無しさん :2023/01/22(日) 12:53:40.50 ID:8KSe/b5e0.net
- 最近MVVMのほうが楽じゃね?って思ってきた
楽しいし
- 146 :デフォルトの名無しさん :2023/01/22(日) 12:54:24.84 ID:8KSe/b5e0.net
- これもすべてソースジェネレーターのおかげかもしれん
さすがC#
- 147 :デフォルトの名無しさん (スッププ Sd1f-OsG9):2023/01/22(日) 17:03:04.26 ID:jvNfJ0Pqd.net
- >>139
うちがWindowsの業務クライアントアプリ系を委託してるソフトハウスがまさにこんな感じだわ
イベントハンドラからSQL投げてる
ただしstaticユーティリティクラスではなく共通の神フォームクラスがあって、全てのフォームがそれを継承する形
まあレベル低すぎて開発もクソ遅いから、負債自体はそれほど量が多くないのは救いかな
- 148 :デフォルトの名無しさん (ワッチョイ e379-TshA):2023/01/22(日) 18:32:18.54 ID:xRK/d49A0.net
- >共通の神フォームクラスがあって、全てのフォームがそれを継承する形
こういうのよくないな
神クラスのメンテナが異動だかで居なくなだけで誰も保守できない砂上の楼閣アンチパターンに嵌るね
- 149 :デフォルトの名無しさん :2023/01/22(日) 21:31:04.53 ID:ADzURpxfM.net
- >>139
実質Cプログラムだな
- 150 :デフォルトの名無しさん (ワッチョイ bfbd-Jpma):2023/01/23(月) 02:49:47.88 ID:0XgI/UQT0.net
- >>149
前に作ったC#のプログラムがまさにそんな感じで、
その後MVVMしてみた。
そして最近作ったCのプログラムが構造体でオブジェクト指向プログラミングしてる。
- 151 :デフォルトの名無しさん (ワッチョイ 5310-Jpma):2023/01/23(月) 08:17:46.60 ID:3Vu8SA8M0.net
- >>148
その言い方だと基底クラスと派生クラスに分かれているもの全部が当てはまるように聞こえてしまうが
- 152 :デフォルトの名無しさん (ワッチョイ 8307-ycfm):2023/01/23(月) 08:19:09.55 ID:YKh4Yexo0.net
- >>151
神クラスを知らんのか
- 153 :デフォルトの名無しさん (ワッチョイ 5310-Jpma):2023/01/23(月) 08:29:28.69 ID:3Vu8SA8M0.net
- 規模じゃなくてメンテナの有無を問題にしていたからだよ
- 154 :デフォルトの名無しさん (ワッチョイ 8307-ycfm):2023/01/23(月) 08:46:40.58 ID:YKh4Yexo0.net
- 規模が小さければメンテナが交代しても負担は少ない
- 155 :デフォルトの名無しさん :2023/01/23(月) 09:08:08.58 ID:qV3QzySmp.net
- ライブラリなんて当時のセット使うに決まってるじゃん
236 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200