[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 12/09 23:01 / Filesize : 249 KB / Number-of Response : 990
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ふらっと C#,C♯,C#(初心者用) Part156



1 名前:デフォルトの名無しさん [2022/09/18(日) 14:39:29.51 ID:VjUDO6tf0.net]
次スレを立てる時は↑を2行冒頭に書くこと(1行分は消えて表示されない為)

「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスや酔っぱらいレスはやめてください
>>980を踏んだ人は新スレを建てて下さい。>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。

■前スレ
ふらっと C#,C♯,C#(初心者用) Part155
https://mevius.5ch.net/test/read.cgi/tech/1655422932/
■関連スレ
C#, C♯, C#相談室 Part96
https://mevius.5ch.net/test/read.cgi/tech/1639965805/
■コードを貼る場合は↓を使いましょう。
https://ideone.com/
https://dotnetfiddle.net/
■情報源
https://docs.microsoft.com/ja-jp/dotnet/standard/class-libraries/
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/
https://docs.microsoft.com/en-us/dotnet/standard/class-libraries/
https://referencesource.microsoft.com/
https://source.dot.net/
・Insider.NET > .NET TIPS - @IT
https://www.atmarkit.co.jp/ait/subtop/features/dotnet/dotnettips_index.html
・DOBON.NET .NET Tips
https://dobon.net/vb/dotnet/index.html
-
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

821 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 07:30:02.27 ID:f45dDCUTM.net]
>>820
ねえそんなどうでもいいとこだけしか反応できないの?
「反論」って言葉が気に入らないならじゃあ「的外れな指摘」と言い換えたとして
その的外れな指摘ひとつお前一人じゃ応対できなくてこのスレに泣きついたよね
でもって手取り足取りレクチャしてもらってさ
元のスレでドヤ顔で披露してて恥ずかしくないの?

あと838以外のレスにはなにひとつ言い返せないの?
お前がどんだけ5chに入り浸ってるのかちょっと気になったんで
今年立てたスレの数とか聞いてみてもいいかい?

822 名前:.NET MAUI HighSchool [2022/11/17(木) 12:23:04.13 ID:AcAViRuk0.net]
>>821
いや別に恥ずかしくないけど?
分からなかったら人に聞かないの?
だとしたらアホだと思うしこんなスレいらない

823 名前:デフォルトの名無しさん mailto:sage [2022/11/17(木) 12:31:29.53 ID:EmPKjKBIM.net]
質問するときだけコテ外すのはやめれ
応じる人は応じるし、無視したい人は無視する

824 名前:.NET MAUI HighSchool [2022/11/17(木) 12:35:24.02 ID:AcAViRuk0.net]
>>823
わかっな

825 名前:.NET MAUI HighSchool [2022/11/17(木) 12:35:29.50 ID:AcAViRuk0.net]
わかった

826 名前:デフォルトの名無しさん [2022/11/17(木) 17:07:21.41 ID:ItSxb1EQA]
誰か2chの使い方講座してくれ

827 名前:デフォルトの名無しさん [2022/11/17(木) 17:08:05.66 ID:ItSxb1EQA]
だーれぇかぁぁぁぁ

828 名前:デフォルトの名無しさん [2022/11/17(木) 17:08:34.58 ID:ItSxb1EQA]
だれぇかぁぁ

829 名前:デフォルトの名無しさん [2022/11/17(木) 17:09:16.90 ID:ItSxb1EQA]
てか2chって無職の巣窟って聞いたけど本当なん?



830 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 06:38:30.53 ID:T+31eRIOM.net]
>>822
質問することそれ自体が恥ずかしいことだなんて俺は言ってないし非難もしてないんだが
(もちろん質問することが悪いことだなんて思ってないし、質問で得た知識は有効に生かしてほしいと思ってるが)
どこをどう捻じ曲げて受け取ってそういう認知にいたるのかさっぱり分からんわ

ていうか835,836,837みたいなのにはMAUI君は一言も言い返してこないんだが
おまえ自身も恥ずかしいことだとちゃんと認識してるからなんだよね?

831 名前:.NET MAUI HighSchool [2022/11/18(金) 08:32:33.70 ID:dFTql+Wp0.net]
>>830
いやお前が知りたい答えがわからないから
何を返してほしいの?

832 名前:.NET MAUI HighSchool [2022/11/18(金) 08:35:56.22 ID:dFTql+Wp0.net]
835逃げ出すんでしょ?←どう答えてほしいの?
836受け売りの知識かどうかが知りたいの?なんJでスレ立てたのが俺なのか聞きたいの?
837お山の大将気取ってるのはどうかと思うよ?←これって質問なの?

833 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 18:34:03.07 ID:De8oASvZM.net]
人間初心者か
このスレC#初心者用であって人間初心者用じゃねえんだよな
保育園通ってろよガキ

834 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 19:50:02.12 ID:y5ukyeaS0.net]
最近、未確認飛行というサイトで初めてのプログラムとしてc#を学び始めたんだけど
https://ufcpp.net/study/csharp/oo_construct.html
ここのサンプルというところのプログラムでオーバーライドされたtoString()のメソッドが呼ばれるのってなんでかな?
どこでもそのメソッドを呼ぶようなことをしてないように見えるけど自分で実行してみたら確かに呼ばれてる
すごい基本的な事なんだろうけどどうか教えてほしい

835 名前:デフォルトの名無しさん [2022/11/18(金) 19:54:59.04 ID:9HcKlt4I0.net]
Console.WriteLineの中で呼ばれてるんだよ

836 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 20:08:52.48 ID:y5ukyeaS0.net]
>>835
これで呼ばれてることになってるんだ!?
教えてくれてどうもありがとう
仕組みはまだわからないけれど疑問がとけてすっきりした

837 名前:デフォルトの名無しさん [2022/11/18(金) 20:13:22.53 ID:9HcKlt4I0.net]
例えばこういうこと
public void WriteLine(object obj) {
 WriteLine_Inner(obj.ToString());
}

WriteLine_Innerは文字列だけを受け付けて表示するメソッドとする
WriteLineを呼ぶとToStringが呼ばれる

838 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 20:17:28.69 ID:y5ukyeaS0.net]
>>837
おお、すごい分かりやすい!
ここまで丁寧に教えてくれて本当にありがとう
これで気兼ねなく次の項目に進めるよ

839 名前:.NET MAUI HighSchool [2022/11/18(金) 22:25:21.33 ID:dFTql+Wp0.net]
ほんとに未確認飛行物体からやってるすげー



840 名前:デフォルトの名無しさん mailto:sage [2022/11/18(金) 23:58:15.19 ID:nTmfkfcZM.net]
手を動かさない学ばないやつは前に進めない
くだらないことしか言えない
いつまでも同じ場所にいる

841 名前:デフォルトの名無しさん [2022/11/19(土) 19:29:30.85 ID:MFJeLtYyu]
すっげぇ本当に頭がおかしぃみたいだ…(?.? )

842 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 19:28:32.08 ID:kzcZtDQa0.net]
JavaとかC#でenum使うメリットがわからん

843 名前:デフォルトの名無しさん [2022/11/19(土) 19:33:40.92 ID:hH2yPCCm0.net]
オプション指定やろ

844 名前:デフォルトの名無しさん mailto:sage [2022/11/19(土) 19:35:53.24 ID:wfHvhfxa0.net]
>>842
まず検索したか?
そのまま「enum使うメリット」でググって納得できなければ使わなければいい
それ以上はここで話してもキリがない

845 名前:デフォルトの名無しさん [2022/11/19(土) 20:00:26.11 ID:MFJeLtYyu]


846 名前:デフォルトの名無しさん [2022/11/19(土) 20:06:41.05 ID:MFJeLtYyu]
>>842

聞きたいんだけど、リプライみたいなのってどーやってやるの?

847 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 13:30:32.37 ID:hkzvE6vGM.net]
>>842
状態などを使うときにmode==0 とか mode==1よりわかりやすい

mode==モード.家でまったり中
mode==モード.お仕事中

など名前がついてるからわかりやすい

848 名前:デフォルトの名無しさん [2022/11/20(日) 14:14:28.85 ID:j4QfOsfua.net]
逆になんでC#とかだと要らないと思うのか気になる

849 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 14:45:18.61 ID:AxU0uBeT0.net]
定期的に現れるレス古事記だと思うことにしてる



850 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:42:59.87 ID:6Lmlby97a.net]
いやあれだろ
条件が複雑すぎてenumにできないと暴れてたアホ

851 名前:デフォルトの名無しさん [2022/11/20(日) 15:47:47.16 ID:wwqc7KSjM.net]
enumってそれが使えるスコープっていう概念もあるのですか?

852 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:51:44.50 ID:MjJ+/fUP0.net]
普通に継承できねぇから
ステータス並べちまうと
クラスを継承したときに
enumも継承して
ステータス増やそうとするけど
enumの継承はできないので
ステータスは定数で並べるしかない
ってだっせー状態になる

853 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 15:53:25.80 ID:MjJ+/fUP0.net]
enum周り作ったやつの脳みそちんぽなんじゃん?

854 名前:デフォルトの名無しさん [2022/11/20(日) 15:59:28.92 ID:wwqc7KSjM.net]
クラス内でenum宣言することがあると思うのだけど
そうした場合はそのクラス内だけでしかそのenumは使えないんですっけ?

855 名前:デフォルトの名無しさん [2022/11/20(日) 16:09:13.26 ID:ruJch1bQ0.net]
>>854
privateならその通り
publicならクラス外でも使える

856 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 16:55:21.88 ID:MjJ+/fUP0.net]
っていう構造にも関わらず
継承できないから
クラスを継承すると
enumで書いてる状態は
全部書き直し

ハイ、全部ちんぽでした!

857 名前:デフォルトの名無しさん [2022/11/20(日) 16:57:27.98 ID:qg1DZ5gK0.net]
クラス内のクラスって継承で継承できるっけ?
何がともあれメリットがないことにはならないけれども。

858 名前:デフォルトの名無しさん mailto:sage [2022/11/20(日) 17:05:37.84 ID:MjJ+/fUP0.net]
他のくだらん機能は
どうでもいいから
enumを継承できるようにしろよ
まあ、なくても
const intで頑張るからいいけど
まあ、その場合enumは一生使わないね

859 名前:デフォルトの名無しさん [2022/11/20(日) 18:24:34.53 ID:x1RY5Ndj0.net]
当たり前だろ
クラス階層違うのに同じ名称を押し通す方がやばいわ



860 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 18:28:02.20 ID:nAJcGQvG0.net]
まあ名称はどうでもいいんだが

クラスAの状態を1〜3でEnumで持ってて
クラスAを継承してクラスBを作った
クラスBの状態1〜5をEnumでもつ
ここで、クラスA用のEnum継承して4〜5を追加して1〜5のEnum作りたい

ということはあるんじゃね

861 名前:デフォルトの名無しさん [2022/11/22(火) 18:38:58.38 ID:NaPYQccb0.net]
enumはクラスの中に入れるなってことなのでは

862 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 18:54:32.20 ID:rbB+zYjt0.net]
enumの継承って、キャストの安全性が保証できなくなるんじゃない?

863 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 20:08:00.71 ID:5norvibI0.net]
継承と言うか列挙子の追加やね
確かにたまにやりたいと思うことはある
enum A {A1, A2, A3};
enum B: A {B1, B2};
みたいにできればいいのにね

864 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 20:11:29.21 ID:tdt1l6wr0.net]
んまあどうでもいいです…

865 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 20:43:08.15 ID:F4U9XWNgd.net]
>>863の場合はA型をB型にキャストするのは型安全で逆は非安全だから、通常の継承とは逆になってしまう
TypeScriptみたいに type B = A & enum { B1, B2 } ができるといいんだろうね

866 名前:デフォルトの名無しさん mailto:sage [2022/11/22(火) 21:56:55.88 ID:2vHKVf9I0.net]
>>865
> type B = A & enum { B1, B2 }
なにか勘違いしてないか?
type Bは役に立たないぞ

867 名前:デフォルトの名無しさん [2022/11/22(火) 21:58:13.24 ID:s23xOfAqp.net]
enum 張りなおせばよかばい

868 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 00:07:27.78 ID:6lN/+0f80.net]
>>863
enumB(1〜5)を受け入れるところは当然enumA(1〜3)も受け入れたいわけだが
これを認めると親クラスが子クラスに変換できることになる

>>865
せめてenumからenumへの暗黙変換定義できればなぁ

結局全部再定義して、int(元の数値)介して変換とか
それならもとからintずらずら並べたほうが良いかという

869 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 00:09:25.48 ID:GHFjAPMfd.net]
>>866
ああ、確かに間違いだな
&じゃなくて|だ



870 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 01:13:39.40 ID:w1dmgQVP0.net]
な、enumがクソなせいで
クラスの継承までクソになってるだろ
早くenumの継承できるようにしろよ
これができなくてどーすんのよ

って機能な実は

871 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 01:27:51.47 ID:mCXmHJvQ0.net]
まさに鬼の首を取ったよう

872 名前:デフォルトの名無しさん [2022/11/23(水) 06:34:20.68 ID:3geqF3we0.net]
クラス内に書かなきゃいい

873 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 08:51:16.99 ID:g5bfG+kA0.net]
>>865,868
だから俺が欲しいのは継承じゃなくて列挙子の追加って言ってるだろ
enum B: A {B1, B2}; だと継承と間違えると言うなら別の構文でもいい
ベースの定義を引き継いで定義できればいい

874 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 11:31:55.12 ID:hhL0Iwa90.net]
enum継承を実装するならまずはstruct継承を実装しないといけない
そして値型の継承をバンバン行うC++ですらenum継承はサポートされてないから諦めるんだな
とは言え.net standard2以上ならソースジェネレーター使えるんだからC++のマクロ実装よりも堅牢にenum継承を叶えられるのがC#

875 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 12:09:29.79 ID:A1o24w6O0.net]
enumの継承なんて欲しいと思った事一度も無いわ

876 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 12:14:49.51 ID:w1dmgQVP0.net]
>>875
状態遷移をするものを書いたことないからだろ
書くと一発で不満が出る
仕方なくenumで定義したステータスを
const intに直す作業をすることになる

877 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 12:51:02.69 ID:Gf+fcBNM0.net]
変性的にどうなんかな?
基底enumを要求するところに派生enum渡して大丈夫?

878 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:10:21.66 ID:HMCqpO+TM.net]
>>876
それ設計大丈夫?
コード上のコンテキストで十分なものまで状態にしちゃってたりしない?

879 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:31:54.09 ID:w1dmgQVP0.net]
>>878
そんなの問題じゃねぇじゃん
適切な状態遷移のクラスを作って
継承するとenum使えないんだから



880 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:34:04.83 ID:w1dmgQVP0.net]
c#のenum周りを作ったやつは
状態遷移も作ったことがない
クソってだけ
まあ、言語開発に状態遷移なんて
いらんだろし
知らないのも無理はない
ってだけの話でしょ

881 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:34:28.41 ID:63Gynabdd.net]
元での状態A,B,C
派生1で状態A,B,C,D
派生2で状態A,B,C,E
派生3で状態A,B,C,D,E

基底に追記するだけで済みそうだけど
わざわざパスタを希望するか

882 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:41:09.59 ID:GkNkmjh5M.net]
まず継承出来る言語を挙げてくれないとどんな設計を求めてるのかわからん

883 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:44:23.94 ID:w1dmgQVP0.net]
>>882
状態遷移作ったことねぇやつは遠慮してくんない?

884 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 13:55:25.91 ID:EqePYP8Fp.net]
初心者質問スレでいつまでいきがってんだか
公式にいしゅー投げとけよ

885 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:04:53.83 ID:Gf+fcBNM0.net]
>>879
継承したクラスで遷移する状態を拡張するのはいいとして、そこにenumも派生して使おうってのが
設計として間違ってるんじゃね?

886 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:18:05.41 ID:w1dmgQVP0.net]
>>885
そしたら状態はどうやって定義するの?

もちろんenumではない
ステータス用の型が必要っていう意見ならわかる
現状enumしかないってだけ
statetype型なんてできたらそれはそれでよい
enumの拡張だと>>877の問題がヘタクソがたくさんいる職場では問題になりそう

887 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:28:50.84 ID:eUenOEMN0.net]
状態推移ってstate machine?
enumでやんの?

888 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:33:23.73 ID:Gf+fcBNM0.net]
>>886
enumを派生するんじゃなくて別のenumを使う。

889 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:42:16.47 ID:fS1C7GFxa.net]
アスペが大暴れしてるな



890 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 14:49:08.23 ID:eUenOEMN0.net]
もしかしてHierarchical Finite State Machinesをenumでやろうという話?
ちょっと見た事も聞いた事もないので興味あります

891 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 15:18:56.76 ID:hhL0Iwa90.net]
>>880
逆にどの言語ならあるんだい?
C++なんてC#で言うところのEnum.GetValuesやEnum.GetNamesすら標準サポート無しだぞ
テンプレート黒魔術使ってコンパイラに超負荷をかけて実装できなくもないが

892 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 15:22:25.48 ID:hhL0Iwa90.net]
さっきも言ったけどソースジェネレーター利用したらかなりトリッキーなこともコンパイルセーフに行えるんだから騒いでる暇あったら作れば良いのに

893 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 15:24:55.83 ID:fS1C7GFxa.net]
enumの使い方も知らないやつにソースジェネレータとか無茶言うなよ

894 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 15:45:58.22 ID:Z18k9Xb90.net]
状態の管理は >>881 じゃだめなのかな。
自分も昔は継承したがってたけど、結局 893 みたい基底に追記するようになったんだよね。

enum をシリアライズすると int 扱いになるから、複数のクラスで継承して使う場合に、ほかのクラスの enum 定義を把握しておかないと危ないケースがあるような気がするんだけど。

895 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 16:01:46.11 ID:zunuLtNb0.net]
enumはCから受け継いだものだからこの設計についてC#を責めるのがまずアホ

enumの主な使いみちは値を限定することだ
要するにintの値を引数にしたいがその値の種類は3種類に限定したい、それ以外の値を渡そうとしたらコンパイルエラーにしたい、そういう時にenumを使う
その関数は引数として3種類しか渡らないことを保証されてるから無理やり他の値を渡した際には未定義動作になる

enumが継承できてポリモーフィズムが効くとすれば3種類の値しか来ない関数に普通に他の値を渡すことができてしまうだろw

なんでenumを使いたいか知らんけど使い方間違ってるからenumをやめて正しい方法を使え
以上

896 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 16:34:31.63 ID:Z18k9Xb90.net]
すげー納得出来る理由が来た。w
感謝。

897 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 16:53:35.93 ID:g5bfG+kA0.net]
まだ継承とか言ってるアホが居るのかw
今までのenumの機能だと継承なんてできても意味ない
継承したいたらenumの各値にメソッド定義出来るようにするとかぐらいの機能追加しないとな

898 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 17:19:16.06 ID:w1dmgQVP0.net]
>>895
でもまさに状態遷移の状態の定義なんてenumの出番だと思うんだけど
ここでこいつ役に立たなかったらほか何に使えるのってぐらい
ちなみにc++でこの辺悩んだことないなぁと思ったら#defineで書いてたわ

899 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 17:26:51.44 ID:LfUozzif0.net]
enum A {A1, A2, A3};があるとして
enum B: A {B1, B2}; としたい理由は何なの?
単に記述量を減らしたいだけ?

AとBは違うデータドメインだから違うenumにするわけなので
enum B: {A1, A2, A3, B1, B2};として新しく定義するか
元のenum Aを拡張するものだと思うけど



900 名前:デフォルトの名無しさん (ワッチョイ ff07-1oEr) mailto:sage [2022/11/23(水) 17:57:30.88 ID:zunuLtNb0.net]
>>898
なぜそこでenumの出番だと思ったのか
明らかに違うしどこで使うかはたった今説明しただろw
お前の設計はおかしいと何度も言われてるのに頑なに耳をふさいでるからできないんだぞ

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

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

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

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

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

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

907 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:41:28.03 ID:Gf+fcBNM0.net]
なんか変なのが2人に増えた

908 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:47:35.71 ID:eUenOEMN0.net]
デザインパターンのステートマシンは登場しないような気がする

909 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 18:55:47.21 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:03:20.20 ID:v/FrQePk0.net]
なんだろうフツーに連想配列じゃいかんの?

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

912 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:05:08.39 ID:w1dmgQVP0.net]
>>909
それを言うならそもそも継承なんか使うなよって思う

まあ、コピペで貼ったほうが将来的に継承よりもうまくいってしまうケースはありまくったのも事実

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

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

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

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

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

918 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:31:45.39 ID: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 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:47:33.73 ID:zunuLtNb0.net]
>>916
enum使うのがおかしいとこれだけ何度も言われてるんだからどれだけボンクラでもそろそろ気づこうなw
お前の読んでる30年前の入門書が古いんだよw



920 名前:デフォルトの名無しさん mailto:sage [2022/11/23(水) 19:52:20.51 ID:6lN/+0f80.net]
>>909
それenum Bで102種類登録しろって話だよな
まあそれが正しいのは分かるが

enum Bは完全にenum Aを内包していて100個は同じ
その状態でenum Aを拡張してenum Bを作りたいってのは間違ってるのか?
それともそういう状況でenumを使うのが間違ってると?

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






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<249KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef