ふらっと C#,C♯,C#(初心者用) Part156 at TECH
[2ch|▼Menu]
[前50を表示]
900:デフォルトの名無しさん (ワッチョイ ff07-1oEr)
22/11/23 17:57:30.88 zunuLtNb0.net
>>898
なぜそこでenumの出番だと思ったのか
明らかに違うしどこで使うかはたった今説明しただろw
お前の設計はおかしいと何度も言われてるのに頑なに耳をふさいでるからできないんだぞ

901:デフォルトの名無しさん (ワッチョイ ff07-1oEr)
22/11/23 18:00:35.30 zunuLtNb0.net
つか状態遷移で通じると思うところからやめろ
状態遷移の実装なんて何種類もあるわ
最終的に何がしたいのか言葉で説明できないやつは自分のやりたいことをプログラミング言語に直すことすらできんぞ
一般的なステートマシンでいいのか?

902:デフォルトの名無しさん (ワッチョイ e201-IwB9)
22/11/23 18:07:41.13 g5bfG+kA0.net
>>899
例えば標準はenum A {A1, A2, A3};の状態しかないけどオプションつけたらenum B: A {B1, B2};と増える
違うオプションつけたらenum C: A {C1, C2, C3, C4};と増えるとか

903:デフォルトの名無しさん (ワッチョイ e201-IwB9)
22/11/23 18:09:35.33 g5bfG+kA0.net
>>901
enumの話が状態遷移の状態を表すために使ってると分からないなら無理に話しに加わらなくていいぞ

904:デフォルトの名無しさん
22/11/23 18:32:51.60 zunuLtNb0.net
>>903
お前の言う状態遷移が何を指してるか言わないならお前の脳内かチラシの裏で処理しとけ
ステートマシンなら普通にインスタンスのパターンマッチングが使えるからそれがわからなきゃ無理してプログラミングの話に加わろうとするなよw

905:デフォルトの名無しさん
22/11/23 18:33:43.64 zunuLtNb0.net
多分switchが数値や文字列にしか使えないと思ってるド素人なんだろ?w

906:デフォルトの名無しさん
22/11/23 18:35:31.89 zunuLtNb0.net
switchが使いたいからenumなんだろ?w
おい正直に言ってみろよw

907:デフォルトの名無しさん
22/11/23 18:41:28.03 Gf+fcBNM0.net
なんか変なのが2人に増えた

908:デフォルトの名無しさん
22/11/23 18:47:35.71 eUenOEMN0.net
デザインパターンのステートマシンは登場しないような気がする

909:デフォルトの名無しさん
22/11/23 18:55:47.21 LfUozzif0.net
>>902
取りうる値すべて網羅するのがenumの存在意義
オプションがついたものが同じデータドメインなら
Aを拡張してenum A {A1, A2, A3, B1, B2, C1, … }とすべきでBやCは不要
異なるデータドメインとして扱いたいなら
enum A: {A1, A2, A3}; enum B: {A1, A2, A3, B1, B2}; enum C: {A1, A2, A3, C1, C2, C3, C4};とすべき
同じ名前のメンバーが存在しても異なる型で別のものだからそれぞれ定義するのは当たり前

910:デフォルトの名無しさん
22/11/23 19:03:20.20 v/FrQePk0.net
なんだろうフツーに連想配列じゃいかんの?

911:デフォルトの名無しさん
22/11/23 19:04:39.67 Gf+fcBNM0.net
typescriptその他の代数的データ型みたいに enum B = .A | B1 | B2 とやりたい気持ちはわかる。

912:デフォルトの名無しさん
22/11/23 19:05:08.39 w1dmgQVP0.net
>>909
それを言うならそもそも継承なんか使うなよって思う
まあ、コピペで貼ったほうが将来的に継承よりもうまくいってしまうケースはありまくったのも事実

913:デフォルトの名無しさん
22/11/23 19:07:17.68 LfUozzif0.net
>>911
TypeScriptでもenumでunion作ったりしないよ
できるけどやらない
やってる人がいるならモデリング方法が間違ってる

914:デフォルトの名無しさん
22/11/23 19:12:23.17 zunuLtNb0.net
状態遷移が何か良くわからずに最近知ったやつが唯一の状態遷移だと思ってるやつに何を言ってもむだだよ
教科書にenumを使えと書いてあったんだろうから

915:デフォルトの名無しさん
22/11/23 19:13:57.53 Gf+fcBNM0.net
ああすまん誤解させた。typescriptのenumを使う話じゃなくてtypeに読み替えてくれ。

916:デフォルトの名無しさん
22/11/23 19:28:19.96 g5bfG+kA0.net
>>904
enumの話だと言ってるのに...
お前パターンマッチング言いたいだけだろw

917:デフォルトの名無しさん
22/11/23 19:31:42.90 UGK9R6GJ0.net
現実のリサイクルにコストが3倍掛かるように
コード継承なんてフレームワーク利用者以外無意味だよ
自分で継承を考えながら書くことなんて時間の無駄でしかない
師匠とおだてられて弟子を育てて行くか、生涯わが道を探求していくかぐらい結果が違ってくる

918:デフォルトの名無しさん
22/11/23 19:31:45.39 g5bfG+kA0.net
>>909
> Aを拡張してenum A {A1, A2, A3, B1, B2, C1, … }とすべきでBやCは不要
Cしか変えないのに標準やBも再テストが必要になるよね
> 異なるデータドメインとして扱いたいなら
> enum A: {A1, A2, A3}; enum B: {A1, A2, A3, B1, B2}; enum C: {A1, A2, A3, C1, C2, C3, C4};とすべき
まあ君はそうすればいいんじゃね?

919:デフォルトの名無しさん
22/11/23 19:47:33.73 zunuLtNb0.net
>>916
enum使うのがおかしいとこれだけ何度も言われてるんだからどれだけボンクラでもそろそろ気づこうなw
お前の読んでる30年前の入門書が古いんだよw

920:デフォルトの名無しさん
22/11/23 19:52:20.51 6lN/+0f80.net
>>909
それenum Bで102種類登録しろって話だよな
まあそれが正しいのは分かるが
enum Bは完全にenum Aを内包していて100個は同じ
その状態でenum Aを拡張してenum Bを作りたいってのは間違ってるのか?
それともそういう状況でenumを使うのが間違ってると?

921:デフォルトの名無しさん
22/11/23 19:53:27.05 zunuLtNb0.net
>>920
間違ってると何度言われても聞く耳持たないなら聞くのやめたら?

922:デフォルトの名無しさん
22/11/23 19:54:47.89 Gf+fcBNM0.net
1. enum を継承できないのがおかしい。
2. enum を継承したいのがおかしい。
3. enum を使うのがおかしい。
1. と 3. がそれぞれ1人ずつだと思うのだが。

923:デフォルトの名無しさん
22/11/23 19:59:02.09 zunuLtNb0.net
>>922
enumを継承できるようにすると色々不具合が出るのは既に示した通り
だから継承したいやつがおかしいしできないのは当然
ここでenumを使うのも明らかに悪手でそれは本人も使いにくいと感じてるから薄々はわかってると思う
だけど薄々しかわからないのマジでアスペwww
使いにくい時点で気づこうぜw

924:デフォルトの名無しさん
22/11/23 20:06:27.70 Gf+fcBNM0.net
3. がお前さんひとりだと言ったつもりだったんだが。

925:デフォルトの名無しさん
22/11/23 20:08:52.61 zunuLtNb0.net
>>924
お前の言いたいことなんか知らんが、もっといい方法があるのに文法に文句を言いながらenumに固執するのはアホだと思わんか?w
おいおいこんな簡単な理屈がわかるやつが俺しかいないってどうなってんのこのスレ?w

926:デフォルトの名無しさん
22/11/23 20:16:59.47 g5bfG+kA0.net
>>924
相手すんな、最近継承とかパターンマッチング覚えたキッズなんだろ

927:デフォルトの名無しさん
22/11/23 20:18:28.43 zunuLtNb0.net
>>926
お前は早くenumの使い方覚えろよw
どう考えてもそこじゃないだろ
使いにくい時点で何か違うなーって思えよw

928:デフォルトの名無しさん
22/11/23 20:23:29.96 zunuLtNb0.net
intは小さい数値しか使えないから設計したやつは頭おかしいって発狂してるやついたらアスペかなって思うだろ?
俺から見たお前らってそんな感じになってるぞ
long教えてもらったなら覚えろよw

929:デフォルトの名無しさん
22/11/23 20:25:12.72 Gf+fcBNM0.net
>>925
お前さん一人だけ話がずれているんだと思うぞ。

930:デフォルトの名無しさん
22/11/23 20:27:17.57 KUj2Jy2fa.net
>>929
ズレてるのはお前の頭だよw
enumを状態遷移に使いたいという話で、継承できないから使えないといつまでも文句言ってるやつに教えてやってるだけだぞw
違う話したいなら気にせずしろよ
ヅラ直してから

931:デフォルトの名無しさん
22/11/23 20:34:56.61 eUenOEMN0.net
ステートパターンはポリモーフィズムを実現する方法だけど
ステートマシンは特にポリモーフィズムを実現してなくてもステートマシンになってしまうらしい
むしろポリモーフィズムのメリットがないのに状態遷移させるメリットが全く分からない

932:デフォルトの名無しさん
22/11/23 20:37:28.39 KUj2Jy2fa.net
ステートマシンかどうか聞いても状態遷移知らないのかの一点張りで答えないんだよなあw
いやマジでお前が状態遷移知らないのかとw
せめてその入門書のタイトルくらい書こうやw

933:デフォルトの名無しさん
22/11/23 20:39:42.92 Gf+fcBNM0.net
>enumを状態遷移に使いたいという話で、
状態を表すのに使う話なんだがこのへんがズレてるんだろうな。

934:デフォルトの名無しさん
22/11/23 20:42:35.56 wPRe5xEXd.net
>>922
4. 列挙子の追加がしたい
これが入ってくるから、さらにややこしい
こちらは臨機応変かなぁ

935:デフォルトの名無しさん
22/11/23 20:45:01.02 KUj2Jy2fa.net
>>933
だからそこに使うなって話だぞ
何度言えばわかるんだよ?
継承しなきゃ使えないとかいうイミフな条件ついてるのにどう使う気なんだそれ?w

936:デフォルトの名無しさん
22/11/23 21:04:41.04 Gf+fcBNM0.net
>>934
列挙子の追加というのがもともとやりたいことでそれは大前提だと思う。
そこに継承を使うのは無理筋だから他の手でやれということで。

937:デフォルトの名無しさん
22/11/23 21:17:19.11 KUj2Jy2fa.net
できないことを地面に転がってしたいしたいと泣きわめくのはプログラマーとは言えないな
ツールはそこに揃ってる
なら最適な方法をみつけるのがプログラマーの仕事だ
XY問題でいつまでも時間潰すのはただの無能
↓100回読んどけ
URLリンク(ja.wikipedia.org)

938:デフォルトの名無しさん
22/11/23 21:23:05.30 QiNG678ud.net
>>984
>>922の1番がこれよね
ID:w1dmgQVP0
4番はこっち
ID:g5bfG+kA0
継承ではなく追加したい、みたいな話
包含に近いか?

939:デフォルトの名無しさん
22/11/23 21:24:33.41 QiNG678ud.net
安価ミス、、、
>>936宛ね

940:デフォルトの名無しさん
22/11/23 21:48:33.88 +3bsKbsu0.net
状態遷移ってよく知らんけど
必要に迫られるごとに似たようなことはやってるな

941:デフォルトの名無しさん
22/11/23 21:52:28.30 +3bsKbsu0.net
複数のテーブル値関数を full outer join すると面白い結果が得られるぞ
C#からは脱線するが。
機会があれば業務適用しようと思ってる

942:デフォルトの名無しさん
22/11/23 22:10:16.15 Gf+fcBNM0.net
>>935
有限状態を表現するのにenumを使うのはごく普通のことでそれに文句つけてるのはお前さんだけだが?
代わりにいったい何を使えと言うんだろう?

943:デフォルトの名無しさん
22/11/23 22:36:14.78 Mu4NVEsX0.net
状態ごとの派生クラス作ったほうが楽じゃないの
enumを使い回そうってのがまずよくわかんないわ

944:デフォルトの名無しさん
22/11/23 22:51:15.68 v/FrQePk0.net
Statelessとか見たら腰抜かしそう

945:デフォルトの名無しさん
22/11/23 23:43:15.34 rAuww2HaM.net
こんな機能があれば便利なのにってのは分からんでも無いけど
他の言語も含めた実装状況見れば少数派がデカい声出してるだけでしょ

946:デフォルトの名無しさん
22/11/24 00:18:19.16 R18LG1aZ0.net
>>942
何をってもう何度も書いただろw
enumを使うことでうまくいかないのが明白になったなら固執するのがアホ
オブジェクトやクラスはハッシュコード持ってるからenumでなくともswitchで処理できるし継承もできる
状態遷移状態遷移言ってるが教科書コピペするんじゃなく何をどうしたいのかを見据えてそれを実現しなきゃいけないぞw

947:デフォルトの名無しさん
22/11/24 00:21:21.14 6EroDtbH0.net
>>923
「継承」できないしするのはおかしいのは分かったから
enumを「拡張」したいって思う
拡張したいって用途にenumを使う
どっちがおかしいって?
その理由が単にenumがそうなってないってなら、そうあるべきだって議論はありえると思うが
>>925
別に俺は固執する気はないので、そういうことはできないってならできないで良いんだが
もっといい方法って具体的には?

948:デフォルトの名無しさん
22/11/24 00:24:41.88 R18LG1aZ0.net
例えばステートマシンのノードの一つをカーソルで参照するだけでカレントステートを表現できるしカーソルを動かせばそれはもう状態遷移だろ
ノードをオブジェクトにすれば種類によって違うプロパティやメソッドも持てる
ここにenumの入る余地などない
俺が何を言ってるかわからんとすればお前の勉強不足だから伏して教えを請え

949:デフォルトの名無しさん
22/11/24 00:54:01.50 uAP2KDnH0.net
enumて要素を限定するためのもんでしょ
拡張できたらぐちゃぐちゃじゃん
拡張した場合また別の名前なり必要で別ものになるでしょ

950:デフォルトの名無しさん
22/11/24 06:12:20.08 0c/PVttN0.net
>>949
ぐちゃぐちゃになるかどうかは使い方次第

951:デフォルトの名無しさん
22/11/24 11:04:40.36 Qxz+vdGfp.net
クラス内でしか意味がないものを他クラスで判断に使う事自体が問題じゃね?

952:デフォルトの名無しさん
22/11/24 12:05:41.62 I9DGq0SZa.net
ひょっとしてと思って「unity 状態」でググッたら質問者のやりたいことがわかったわw
キャラクタを委譲じゃなく継承させる糞コードでなんちゃってステートパターンしたいんだなw
継承したキャラクタは行動できるパターンが増えるから状態もそれによって増やしたいということだろ
キャラクタを継承させるという糞仕様から直すのが正解だがそれをしたくないならenumじゃなくクラス使えよ
その状態だけ継承させればキャラクタの継承要らないんじゃねというところに気づけばみんなが何を言ってたかわかるようになるかもしれんぞ

953:.NET MAUI HighSchool
22/11/24 12:19:13.38 DPMQyp0E0.net
Unityってクラスないの?

954:デフォルトの名無しさん
22/11/24 12:54:31.34 P04N2b5w0.net
継承とか拡張とは違うけど
enum StandardColor: {Red, Green, Blue}
enum ExtendedColor: {Teal, Turquoise}
とあった時にStandardColorとExtendedColorはそれぞれ個別の用途でも使うし
両方混ぜた集合からどちらか一方だけ選択する用途でも使いたいというのは理解できる
この場合はC#では言語的にはまだサポートされてない機能だから
サードパーティのライブラリを使うか自作するか

955:デフォルトの名無しさん
22/11/24 17:55:35.91 88NBfQl90.net
Unityでもポリモーフィズムを実現していればクラスのカプセル化が効くから
Stateで状態が切り替わる振る舞いは同じでもサブクラスで提供される機能を変えられる
ポリモーフィズムの実現が主題であってenumに依存するとかしないとかどうでもいい事な気がする

956:デフォルトの名無しさん
22/11/24 18:42:01.91 EbMeVnega.net
enumはポリモーフィズムに使うものじゃねえんだって話をしてるんだよw

957:デフォルトの名無しさん
22/11/24 19:12:02.78 88NBfQl90.net
仕様未使用はどうでもいいって言ってるのを何故復唱する必要があるのか?

958:デフォルトの名無しさん
22/11/24 19:17:15.44 6EroDtbH0.net
で、結局enumの使いどころはどこなんだ?

959:デフォルトの名無しさん
22/11/24 19:20:15.08 NYxgvrZS0.net
人生で数々のenumに触れてきて今まで継承したいと思うenumに遭遇したことがない
私は思う
不完全なenumはそれ自体がバグなのだと

960:デフォルトの名無しさん
22/11/24 19:25:58.70 88NBfQl90.net
多次元配列やジャグ配列で事足りるからenumなんぞいらんでしょ

961:デフォルトの名無しさん
22/11/24 19:26:08.06 1uxs9LdZ0.net
使えるものを使うだけじゃんよ。

962:デフォルトの名無しさん
22/11/24 19:35:14.11 JYVIn9dZa.net
使うべきところでな
enumの使い方は既に教えた
そこじゃないのも何度も言った
これでわからないボンクラは何やってもだめ

963:デフォルトの名無しさん
22/11/24 19:38:42.34 88NBfQl90.net
色々混ざってる糖質がいろんな人間が言ったことを勝手に混ぜて
訳の分からない事を言ってるのか?

964:デフォルトの名無しさん
22/11/24 19:45:03.01 JYVIn9dZa.net
色んな糖質がバカなことばかり言ってるのに区別する必要あるか?w

965:デフォルトの名無しさん
22/11/24 19:46:38.20 JYVIn9dZa.net
見りゃわかるが俺はバカなこと言ったやつをバカにしてるだけだからそれにカチンとくるやつは同じバカだぞ

966:デフォルトの名無しさん
22/11/24 19:48:18.80 88NBfQl90.net
最初に質問した奴はステートマシンとステートパターンの区別もポリモーフィズムも知らない奴だったわけだが
何でも同じに見えるというならそうなのだろう 知った事ではないし興味すらもない
勝手に吠えてればいい

967:デフォルトの名無しさん
22/11/24 20:22:54.20 JYVIn9dZa.net
enumだと都合が悪いと質問者すら発狂してるのにいつまでもそれに固執するようなのは同じレベルでしかないだろw
都合が悪いなら使ったらだめと気づこうや

968:デフォルトの名無しさん
22/11/24 20:28:32.70 88NBfQl90.net
stateにenumは使わなくてもStatePatternは作れるし元々enumは必須ですらない
そもそもポリモーフィズムのメリットが分からない奴が面白い勘違いしてるだけだろ

969:デフォルトの名無しさん
22/11/24 20:44:59.86 x2utmnLfp.net
サボらずに変換メソッド作る

970:デフォルトの名無しさん
22/11/24 20:47:40.88 0c/PVttN0.net
ステートパターンを覚えたてのキッズ同士の争いはよそでやってくれw

971:デフォルトの名無しさん
22/11/25 09:34:35.22 acUkwbrC0.net
おまいらどんだけenumでスレ消費してんだよ

972:.NET MAUI HighSchool
22/11/25 12:13:43.21 RaC0ZQGe0.net
モバイルSuicaにもReactiveUIとか使われてて
結構Rxってもう標準になりつつあるな
これ産み出したC#すごい!

973:.NET MAUI HighSchool
22/11/25 12:20:00.08 RaC0ZQGe0.net
>>4
新スレ建てようとしたけど改行が多すぎるとかで無理だった…

974:デフォルトの名無しさん
22/11/25 13:18:08.44 HZEumDr50.net
立てといた
ふらっと C#,C♯,C#(初心者用) Part157
スレリンク(tech板)
頭のextend~は念のため1行増やしておいた

975:デフォルトの名無しさん
22/11/25 18:03:50.34 b6uMxREG0.net
おつかれー。
と言いつつ埋め。

976:.NET MAUI HighSchool
22/11/25 20:24:56.18 SQhAXb/D0.net
>>974
サンキュー

977:デフォルトの名無しさん
22/11/25 20:27:00.27 Ex0f5l5+M.net
列挙型の元祖はPascal

978:.NET MAUI HighSchool
22/11/26 08:34:50.54 Ja07f46G0.net
C#isGod

979:デフォルトの名無しさん
22/11/27 23:14:07.98 MIxI7txJ0.net
ume

980:デフォルトの名無しさん
22/11/28 21:44:09.15 vwJLsOsN0.net
bool isGod = true;

981:デフォルトの名無しさん
22/11/28 22:44:48.65 SzIAkLME0.net
うめうめ

982:デフォルトの名無しさん
22/11/28 23:09:55.94 ozyLKgmt0.net
梅火星

983:デフォルトの名無しさん
22/12/09 19:49:47.35 KigkNyOs0.net
いい加減埋めようよ。

984:デフォルトの名無しさん
22/12/09 19:52:30.95 lbVfgM7Sp.net
埋め屋敷

985:デフォルトの名無しさん
22/12/09 20:08:40.11 xaxCUQ87a.net
埋めなくていいよ
次スレもいらん

986:デフォルトの名無しさん
22/12/09 20:10:07.88 8ML1skqU0.net
もッス

987:デフォルトの名無しさん
22/12/09 20:14:42.85 LL4MqSod0.net
誰も必要としてなくて草

988:デフォルトの名無しさん
22/12/09 20:16:37.36 LL4MqSod0.net
NullReferenceException

989:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 82日 5時間 37分 8秒


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

529日前に更新/249 KB
担当:undef