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

レス数が900を超えています。1000を超えると表示できなくなるよ。
1デフォルトの名無しさん (ワッチョイ 5f01-NOMG)
垢版 |
2022/09/18(日) 14:39:29.51ID:VjUDO6tf0
次スレを立てる時は↑を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
2022/11/14(月) 20:21:04.18ID:8Qr3XdFEd
>>822
child書くか書かないかってレベルの話かよ…
824デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 20:55:04.59ID:p8dKwuQs0
>>823
そりゃそうでしょ…
見にくいしどれがどれかわからんUIの作りづらさは一級品だよねMVU
2022/11/14(月) 21:18:14.71ID:ans/MkehM
>>803
本当にお前は迷惑で恥知らずなゴミだなMAUI君よお
MAUIの質問ならここじゃなくてMAUIスレに持ち込めよ
Xamarinスレだったのをスレ内で合意を取るようなこともせず勝手にMAUIスレへスレタイを変えて
散々私物化してるのはお前だろ?
そっちのスレで責任もって解決しろよ
なんでわざわざこっちのスレへ持ってくるんだ?
お前が好き勝手やってるせいで答えてくれるようなスレ住民がみんないなくなっちゃったとかそういうことか?
2022/11/14(月) 21:20:26.72ID:ans/MkehM
あとFlutterもDartもスレ違いだしFlutter叩きならなおスレ違いだ
お前が立ててさんざん自演なりで盛り上げようとしても盛り上がらないクソVSスレでやれ

Flutter VS .NET MAUI VS React Native
https://mevius.5ch.net/test/read.cgi/tech/1661511605/
2022/11/14(月) 21:25:38.42ID:ans/MkehM
あと、この板にクソスレ立てんな
直近で目に付いたのは
https://mevius.5ch.net/test/read.cgi/tech/1668127312/
https://mevius.5ch.net/test/read.cgi/tech/1667211312/
だけどお前これ以外にも一杯立ててるだろ
そういうのはお前の巣でやれ。VIPだか何だか知らんがそこから出てくるな
828デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/14(月) 21:43:20.92ID:p8dKwuQs0
C#全体のことはここで聞く
MAUI特有のことはMAUIスレで聞く
当然では?
2022/11/14(月) 22:11:38.95ID:ans/MkehM
すげーな
さすが恥知らずのMAUI君

先にMAUIスレで質問するようなこともせずに
このスレでMAUIの質問をしておきながら
>>828みたいなことを平然と言ってのけるこの神経
でもって826,827みたいな自分にとって都合の悪いことは何一つ見なかったことにしてスルーするんですね?
いやー「.NET MAUI HighSchool」ってコテでしたっけ
この実績で就職活動とか頑張ろうとしてるんですよね
おみそれしました
2022/11/14(月) 23:59:43.67ID:ans/MkehM
「.NET MAUI HighSchool」さん、朝から晩までこの板に張り付いて
本日の書き込みランキングのワンツーフィニッシュおめでとうございます!!
http://hissi.org/read.php/tech/20221114/

他のスレでは23時以降も活発に書き込みされてるようですが、
その元気があるようなら私にもお返事いただけませんか? 826とか827とかあと829もそうだけど
でも1点だけ反論して残りの指摘を何一つなかったことにするのはやめてほしいなとは思いますけどね
(ぶっちゃけchildren1つ書くかどうかなんてStoryBoardの地獄に比べたら屁でもないけどまあこれはスレチなんでどうでもいい)
まさか828で反論した直後にこっちのことをNGIDしたからレスが見えてない、なんてしょっぱい言い訳はしませんよね?
それとも貴方自身が恥知らずのゴミムシであることをレスしないことを以て体現しておられるのでしょうか???
831デフォルトの名無しさん (ワッチョイ 2301-0qx4)
垢版 |
2022/11/15(火) 00:21:34.85ID:fFtAGper0
>>830
答える必要ないからレスしなかっただけですが???
全レスする必要あります???
2022/11/15(火) 07:01:23.31ID:zF+MxnbgM
>その元気があるようなら私にもお返事いただけませんか? 826とか827とかあと829もそうだけど
って書いてあるよな?
日本語もろくに理解できない馬鹿なのかお前は?
ID:p8dKwuQs0 の書き込みとか
他のスレの書き込みとかを見る限り全レスがデフォみたいなんで
返信がないってことでよっぽど返信したくないことを書かれちゃったのかーと思っちゃったけどそうじゃないんだな?
じゃあ俺の書き込みに限らずすべての指摘に対して逃げずに全レスしろよ
そこまで勿体つけたからにはさぞかしご立派な反論が来るんだろうな?
どうせお前は一日中ずーっと5chするくらいしか能がないんだから好きなだけ時間かけて書き連ねてみろよ
違いはchild/children一個だけみたいな見るほうがリアクションに困る失笑しかできないような返しすんじゃねーぞ


でもさすがにこのスレで続けるのはC#関係ないしスレチで迷惑だから
お前が立てたお前専用のゴミスレ↓
.NET MAUI HighSchool
https://mevius.5ch.net/test/read.cgi/tech/1662947042/
でやれ

よかったな、お前のクソスレに人を呼び込めるぞ
感謝しろ
2022/11/16(水) 21:19:21.33ID:Ndk7vWNsM
あれれMAUI君どこいっちゃったの?
>>831みたいなファイティングポーズを取ってたからさぞかしご立派な返信が来るかと期待してたのに
このスレにも晒したスレにも何一つ反論できずに尻尾を巻いて逃げ出した?
それともまさか名無しになって他人のフリしてるなんて恥ずかしいことやってる?
このスレもそうだし他のスレ(例えばWPFスレ https://mevius.5ch.net/test/read.cgi/tech/1667010874/ )でも
さんざん「.NET MAUI HighSchool」ってコテを名乗って毎日朝から晩まで書き込んでたのに
急にこのコテ使った書き込みが無くなったみたいなんだけど、どうしちゃったんだろう


うん、なんというか拍子抜けだわ
さよならMAUI君、もう二度とこの板に顔出すようなことをしてくれなければそれでいいや
834.NET MAUI HighSchool (ワッチョイ 2301-0qx4)
垢版 |
2022/11/16(水) 22:20:27.60ID:F1FwASBt0
>>833
キモ
つけ忘れただけだわカス
2022/11/16(水) 22:59:08.10ID:Ndk7vWNsM
なんだ消えたんじゃなかったのか

とりあえず取って付けたような「つけ忘れただけ」なんて後出しの言い訳乙
で結局直近の833以外のレスは見なかったことにしてまた逃げ出すんでしょ?
さすがMAUI君
2022/11/16(水) 23:09:20.45ID:Ndk7vWNsM
てゆうか、実況版に
「.NET MAUIでAndroidでサイン波の出力をした天才プログラマーだけど質問ある?」
なんてタイトルのスレ立てたはいいものの
誰にも相手してもらえなくてレス数1桁で落ちてたけど、このスレ立てたのもMAUI君だよね?

その知識も決して自分のものじゃなくて
この板で1から10まで聞いて回って集めた受け売りの知識だよね??
いやー天才のやることはひと味もふた味も違いすぎて凡人にはその感性が理解できませんわー
2022/11/16(水) 23:11:21.10ID:Ndk7vWNsM
ほかにも実況板とかVIPとかでいろいろスレ立てても誰にも相手してもらえてないみたいだね
だからって、この板でまでよその板と同じ感覚でクソスレ立ててお山の大将気取ったりするのはどうかと思うよ
2022/11/16(水) 23:15:53.76ID:Ndk7vWNsM
でもってVIPで建てたスレが多少伸びて反論喰らったら自分ではなにひとつ対処できなくて
この板に泣きついて助けを求めたりもしたよね?
正直すっごく恥ずかしいと思うよ

MAUI君は「別に何一つ恥ずかしいことなんてしてない」みたいなこと言ってたけど、いまでもそう思ってる?
839.NET MAUI HighSchool (ワッチョイ 2301-0qx4)
垢版 |
2022/11/17(木) 00:16:56.85ID:uB3aH/K90
>>838
反論食らった?
ここで言われてたけど実際WebViewで実装できてんだからいいじゃんって結果になったんだが?
2022/11/17(木) 07:30:02.27ID:f45dDCUTM
>>839
ねえそんなどうでもいいとこだけしか反応できないの?
「反論」って言葉が気に入らないならじゃあ「的外れな指摘」と言い換えたとして
その的外れな指摘ひとつお前一人じゃ応対できなくてこのスレに泣きついたよね
でもって手取り足取りレクチャしてもらってさ
元のスレでドヤ顔で披露してて恥ずかしくないの?

あと838以外のレスにはなにひとつ言い返せないの?
お前がどんだけ5chに入り浸ってるのかちょっと気になったんで
今年立てたスレの数とか聞いてみてもいいかい?
841.NET MAUI HighSchool (ワッチョイ 1b01-0qx4)
垢版 |
2022/11/17(木) 12:23:04.13ID:AcAViRuk0
>>840
いや別に恥ずかしくないけど?
分からなかったら人に聞かないの?
だとしたらアホだと思うしこんなスレいらない
2022/11/17(木) 12:31:29.53ID:EmPKjKBIM
質問するときだけコテ外すのはやめれ
応じる人は応じるし、無視したい人は無視する
843.NET MAUI HighSchool (ワッチョイ 1b01-0qx4)
垢版 |
2022/11/17(木) 12:35:24.02ID:AcAViRuk0
>>842
わかっな
844.NET MAUI HighSchool (ワッチョイ 1b01-0qx4)
垢版 |
2022/11/17(木) 12:35:29.50ID:AcAViRuk0
わかった
2022/11/18(金) 06:38:30.53ID:T+31eRIOM
>>841
質問することそれ自体が恥ずかしいことだなんて俺は言ってないし非難もしてないんだが
(もちろん質問することが悪いことだなんて思ってないし、質問で得た知識は有効に生かしてほしいと思ってるが)
どこをどう捻じ曲げて受け取ってそういう認知にいたるのかさっぱり分からんわ

ていうか835,836,837みたいなのにはMAUI君は一言も言い返してこないんだが
おまえ自身も恥ずかしいことだとちゃんと認識してるからなんだよね?
846.NET MAUI HighSchool (ワッチョイ 2301-0qx4)
垢版 |
2022/11/18(金) 08:32:33.70ID:dFTql+Wp0
>>845
いやお前が知りたい答えがわからないから
何を返してほしいの?
847.NET MAUI HighSchool (ワッチョイ 2301-0qx4)
垢版 |
2022/11/18(金) 08:35:56.22ID:dFTql+Wp0
835逃げ出すんでしょ?←どう答えてほしいの?
836受け売りの知識かどうかが知りたいの?なんJでスレ立てたのが俺なのか聞きたいの?
837お山の大将気取ってるのはどうかと思うよ?←これって質問なの?
2022/11/18(金) 18:34:03.07ID:De8oASvZM
人間初心者か
このスレC#初心者用であって人間初心者用じゃねえんだよな
保育園通ってろよガキ
2022/11/18(金) 19:50:02.12ID:y5ukyeaS0
最近、未確認飛行というサイトで初めてのプログラムとしてc#を学び始めたんだけど
https://ufcpp.net/study/csharp/oo_construct.html
ここのサンプルというところのプログラムでオーバーライドされたtoString()のメソッドが呼ばれるのってなんでかな?
どこでもそのメソッドを呼ぶようなことをしてないように見えるけど自分で実行してみたら確かに呼ばれてる
すごい基本的な事なんだろうけどどうか教えてほしい
850デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/18(金) 19:54:59.04ID:9HcKlt4I0
Console.WriteLineの中で呼ばれてるんだよ
2022/11/18(金) 20:08:52.48ID:y5ukyeaS0
>>850
これで呼ばれてることになってるんだ!?
教えてくれてどうもありがとう
仕組みはまだわからないけれど疑問がとけてすっきりした
852デフォルトの名無しさん (ワッチョイ e535-3ACM)
垢版 |
2022/11/18(金) 20:13:22.53ID:9HcKlt4I0
例えばこういうこと
public void WriteLine(object obj) {
 WriteLine_Inner(obj.ToString());
}

WriteLine_Innerは文字列だけを受け付けて表示するメソッドとする
WriteLineを呼ぶとToStringが呼ばれる
2022/11/18(金) 20:17:28.69ID:y5ukyeaS0
>>852
おお、すごい分かりやすい!
ここまで丁寧に教えてくれて本当にありがとう
これで気兼ねなく次の項目に進めるよ
854.NET MAUI HighSchool (ワッチョイ 2301-IoIj)
垢版 |
2022/11/18(金) 22:25:21.33ID:dFTql+Wp0
ほんとに未確認飛行物体からやってるすげー
2022/11/18(金) 23:58:15.19ID:nTmfkfcZM
手を動かさない学ばないやつは前に進めない
くだらないことしか言えない
いつまでも同じ場所にいる
2022/11/19(土) 19:28:32.08ID:kzcZtDQa0
JavaとかC#でenum使うメリットがわからん
857デフォルトの名無しさん (ワッチョイ 7735-kwcT)
垢版 |
2022/11/19(土) 19:33:40.92ID:hH2yPCCm0
オプション指定やろ
2022/11/19(土) 19:35:53.24ID:wfHvhfxa0
>>856
まず検索したか?
そのまま「enum使うメリット」でググって納得できなければ使わなければいい
それ以上はここで話してもキリがない
2022/11/20(日) 13:30:32.37ID:hkzvE6vGM
>>856
状態などを使うときにmode==0 とか mode==1よりわかりやすい

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

など名前がついてるからわかりやすい
860デフォルトの名無しさん (アウアウウー Sa3b-lriv)
垢版 |
2022/11/20(日) 14:14:28.85ID:j4QfOsfua
逆になんでC#とかだと要らないと思うのか気になる
2022/11/20(日) 14:45:18.61ID:AxU0uBeT0
定期的に現れるレス古事記だと思うことにしてる
2022/11/20(日) 15:42:59.87ID:6Lmlby97a
いやあれだろ
条件が複雑すぎてenumにできないと暴れてたアホ
863デフォルトの名無しさん (ブーイモ MM02-4l+d)
垢版 |
2022/11/20(日) 15:47:47.16ID:wwqc7KSjM
enumってそれが使えるスコープっていう概念もあるのですか?
2022/11/20(日) 15:51:44.50ID:MjJ+/fUP0
普通に継承できねぇから
ステータス並べちまうと
クラスを継承したときに
enumも継承して
ステータス増やそうとするけど
enumの継承はできないので
ステータスは定数で並べるしかない
ってだっせー状態になる
2022/11/20(日) 15:53:25.80ID:MjJ+/fUP0
enum周り作ったやつの脳みそちんぽなんじゃん?
866デフォルトの名無しさん (ブーイモ MM02-4l+d)
垢版 |
2022/11/20(日) 15:59:28.92ID:wwqc7KSjM
クラス内でenum宣言することがあると思うのだけど
そうした場合はそのクラス内だけでしかそのenumは使えないんですっけ?
867デフォルトの名無しさん (ワッチョイ 62ad-eHBA)
垢版 |
2022/11/20(日) 16:09:13.26ID:ruJch1bQ0
>>866
privateならその通り
publicならクラス外でも使える
2022/11/20(日) 16:55:21.88ID:MjJ+/fUP0
っていう構造にも関わらず
継承できないから
クラスを継承すると
enumで書いてる状態は
全部書き直し

ハイ、全部ちんぽでした!
869デフォルトの名無しさん (ワッチョイ 7735-VKOE)
垢版 |
2022/11/20(日) 16:57:27.98ID:qg1DZ5gK0
クラス内のクラスって継承で継承できるっけ?
何がともあれメリットがないことにはならないけれども。
2022/11/20(日) 17:05:37.84ID:MjJ+/fUP0
他のくだらん機能は
どうでもいいから
enumを継承できるようにしろよ
まあ、なくても
const intで頑張るからいいけど
まあ、その場合enumは一生使わないね
871デフォルトの名無しさん (ワッチョイ 4b5f-k7YZ)
垢版 |
2022/11/20(日) 18:24:34.53ID:x1RY5Ndj0
当たり前だろ
クラス階層違うのに同じ名称を押し通す方がやばいわ
2022/11/22(火) 18:28:02.20ID:nAJcGQvG0
まあ名称はどうでもいいんだが

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

ということはあるんじゃね
873デフォルトの名無しさん (ワッチョイ cf5f-ES6F)
垢版 |
2022/11/22(火) 18:38:58.38ID:NaPYQccb0
enumはクラスの中に入れるなってことなのでは
2022/11/22(火) 18:54:32.20ID:rbB+zYjt0
enumの継承って、キャストの安全性が保証できなくなるんじゃない?
2022/11/22(火) 20:08:00.71ID:5norvibI0
継承と言うか列挙子の追加やね
確かにたまにやりたいと思うことはある
enum A {A1, A2, A3};
enum B: A {B1, B2};
みたいにできればいいのにね
2022/11/22(火) 20:11:29.21ID:tdt1l6wr0
んまあどうでもいいです…
2022/11/22(火) 20:43:08.15ID:F4U9XWNgd
>>875の場合はA型をB型にキャストするのは型安全で逆は非安全だから、通常の継承とは逆になってしまう
TypeScriptみたいに type B = A & enum { B1, B2 } ができるといいんだろうね
2022/11/22(火) 21:56:55.88ID:2vHKVf9I0
>>877
> type B = A & enum { B1, B2 }
なにか勘違いしてないか?
type Bは役に立たないぞ
879デフォルトの名無しさん (ササクッテロリ Spdf-k7YZ)
垢版 |
2022/11/22(火) 21:58:13.24ID:s23xOfAqp
enum 張りなおせばよかばい
2022/11/23(水) 00:07:27.78ID:6lN/+0f80
>>875
enumB(1〜5)を受け入れるところは当然enumA(1〜3)も受け入れたいわけだが
これを認めると親クラスが子クラスに変換できることになる

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

結局全部再定義して、int(元の数値)介して変換とか
それならもとからintずらずら並べたほうが良いかという
2022/11/23(水) 00:09:25.48ID:GHFjAPMfd
>>878
ああ、確かに間違いだな
&じゃなくて|だ
2022/11/23(水) 01:13:39.40ID:w1dmgQVP0
な、enumがクソなせいで
クラスの継承までクソになってるだろ
早くenumの継承できるようにしろよ
これができなくてどーすんのよ

って機能な実は
2022/11/23(水) 01:27:51.47ID:mCXmHJvQ0
まさに鬼の首を取ったよう
884デフォルトの名無しさん (ワッチョイ 7735-VKOE)
垢版 |
2022/11/23(水) 06:34:20.68ID:3geqF3we0
クラス内に書かなきゃいい
2022/11/23(水) 08:51:16.99ID:g5bfG+kA0
>>877,880
だから俺が欲しいのは継承じゃなくて列挙子の追加って言ってるだろ
enum B: A {B1, B2}; だと継承と間違えると言うなら別の構文でもいい
ベースの定義を引き継いで定義できればいい
2022/11/23(水) 11:31:55.12ID:hhL0Iwa90
enum継承を実装するならまずはstruct継承を実装しないといけない
そして値型の継承をバンバン行うC++ですらenum継承はサポートされてないから諦めるんだな
とは言え.net standard2以上ならソースジェネレーター使えるんだからC++のマクロ実装よりも堅牢にenum継承を叶えられるのがC#
2022/11/23(水) 12:09:29.79ID:A1o24w6O0
enumの継承なんて欲しいと思った事一度も無いわ
2022/11/23(水) 12:14:49.51ID:w1dmgQVP0
>>887
状態遷移をするものを書いたことないからだろ
書くと一発で不満が出る
仕方なくenumで定義したステータスを
const intに直す作業をすることになる
2022/11/23(水) 12:51:02.69ID:Gf+fcBNM0
変性的にどうなんかな?
基底enumを要求するところに派生enum渡して大丈夫?
2022/11/23(水) 13:10:21.66ID:HMCqpO+TM
>>888
それ設計大丈夫?
コード上のコンテキストで十分なものまで状態にしちゃってたりしない?
2022/11/23(水) 13:31:54.09ID:w1dmgQVP0
>>890
そんなの問題じゃねぇじゃん
適切な状態遷移のクラスを作って
継承するとenum使えないんだから
2022/11/23(水) 13:34:04.83ID:w1dmgQVP0
c#のenum周りを作ったやつは
状態遷移も作ったことがない
クソってだけ
まあ、言語開発に状態遷移なんて
いらんだろし
知らないのも無理はない
ってだけの話でしょ
2022/11/23(水) 13:34:28.41ID:63Gynabdd
元での状態A,B,C
派生1で状態A,B,C,D
派生2で状態A,B,C,E
派生3で状態A,B,C,D,E

基底に追記するだけで済みそうだけど
わざわざパスタを希望するか
2022/11/23(水) 13:41:09.59ID:GkNkmjh5M
まず継承出来る言語を挙げてくれないとどんな設計を求めてるのかわからん
2022/11/23(水) 13:44:23.94ID:w1dmgQVP0
>>894
状態遷移作ったことねぇやつは遠慮してくんない?
2022/11/23(水) 13:55:25.91ID:EqePYP8Fp
初心者質問スレでいつまでいきがってんだか
公式にいしゅー投げとけよ
2022/11/23(水) 14:04:53.83ID:Gf+fcBNM0
>>891
継承したクラスで遷移する状態を拡張するのはいいとして、そこにenumも派生して使おうってのが
設計として間違ってるんじゃね?
2022/11/23(水) 14:18:05.41ID:w1dmgQVP0
>>897
そしたら状態はどうやって定義するの?

もちろんenumではない
ステータス用の型が必要っていう意見ならわかる
現状enumしかないってだけ
statetype型なんてできたらそれはそれでよい
enumの拡張だと>>889の問題がヘタクソがたくさんいる職場では問題になりそう
2022/11/23(水) 14:28:50.84ID:eUenOEMN0
状態推移ってstate machine?
enumでやんの?
2022/11/23(水) 14:33:23.73ID:Gf+fcBNM0
>>898
enumを派生するんじゃなくて別のenumを使う。
2022/11/23(水) 14:42:16.47ID:fS1C7GFxa
アスペが大暴れしてるな
2022/11/23(水) 14:49:08.23ID:eUenOEMN0
もしかしてHierarchical Finite State Machinesをenumでやろうという話?
ちょっと見た事も聞いた事もないので興味あります
2022/11/23(水) 15:18:56.76ID:hhL0Iwa90
>>892
逆にどの言語ならあるんだい?
C++なんてC#で言うところのEnum.GetValuesやEnum.GetNamesすら標準サポート無しだぞ
テンプレート黒魔術使ってコンパイラに超負荷をかけて実装できなくもないが
2022/11/23(水) 15:22:25.48ID:hhL0Iwa90
さっきも言ったけどソースジェネレーター利用したらかなりトリッキーなこともコンパイルセーフに行えるんだから騒いでる暇あったら作れば良いのに
2022/11/23(水) 15:24:55.83ID:fS1C7GFxa
enumの使い方も知らないやつにソースジェネレータとか無茶言うなよ
2022/11/23(水) 15:45:58.22ID:Z18k9Xb90
状態の管理は >>893 じゃだめなのかな。
自分も昔は継承したがってたけど、結局 893 みたい基底に追記するようになったんだよね。

enum をシリアライズすると int 扱いになるから、複数のクラスで継承して使う場合に、ほかのクラスの enum 定義を把握しておかないと危ないケースがあるような気がするんだけど。
2022/11/23(水) 16:01:46.11ID:zunuLtNb0
enumはCから受け継いだものだからこの設計についてC#を責めるのがまずアホ

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

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

なんでenumを使いたいか知らんけど使い方間違ってるからenumをやめて正しい方法を使え
以上
2022/11/23(水) 16:34:31.63ID:Z18k9Xb90
すげー納得出来る理由が来た。w
感謝。
2022/11/23(水) 16:53:35.93ID:g5bfG+kA0
まだ継承とか言ってるアホが居るのかw
今までのenumの機能だと継承なんてできても意味ない
継承したいたらenumの各値にメソッド定義出来るようにするとかぐらいの機能追加しないとな
2022/11/23(水) 17:19:16.06ID:w1dmgQVP0
>>907
でもまさに状態遷移の状態の定義なんてenumの出番だと思うんだけど
ここでこいつ役に立たなかったらほか何に使えるのってぐらい
ちなみにc++でこの辺悩んだことないなぁと思ったら#defineで書いてたわ
2022/11/23(水) 17:26:51.44ID:LfUozzif0
enum A {A1, A2, A3};があるとして
enum B: A {B1, B2}; としたい理由は何なの?
単に記述量を減らしたいだけ?

AとBは違うデータドメインだから違うenumにするわけなので
enum B: {A1, A2, A3, B1, B2};として新しく定義するか
元のenum Aを拡張するものだと思うけど
2022/11/23(水) 17:57:30.88ID:zunuLtNb0
>>910
なぜそこでenumの出番だと思ったのか
明らかに違うしどこで使うかはたった今説明しただろw
お前の設計はおかしいと何度も言われてるのに頑なに耳をふさいでるからできないんだぞ
2022/11/23(水) 18:00:35.30ID:zunuLtNb0
つか状態遷移で通じると思うところからやめろ
状態遷移の実装なんて何種類もあるわ
最終的に何がしたいのか言葉で説明できないやつは自分のやりたいことをプログラミング言語に直すことすらできんぞ
一般的なステートマシンでいいのか?
2022/11/23(水) 18:07:41.13ID:g5bfG+kA0
>>911
例えば標準はenum A {A1, A2, A3};の状態しかないけどオプションつけたらenum B: A {B1, B2};と増える
違うオプションつけたらenum C: A {C1, C2, C3, C4};と増えるとか
2022/11/23(水) 18:09:35.33ID:g5bfG+kA0
>>913
enumの話が状態遷移の状態を表すために使ってると分からないなら無理に話しに加わらなくていいぞ
2022/11/23(水) 18:32:51.60ID:zunuLtNb0
>>915
お前の言う状態遷移が何を指してるか言わないならお前の脳内かチラシの裏で処理しとけ
ステートマシンなら普通にインスタンスのパターンマッチングが使えるからそれがわからなきゃ無理してプログラミングの話に加わろうとするなよw
2022/11/23(水) 18:33:43.64ID:zunuLtNb0
多分switchが数値や文字列にしか使えないと思ってるド素人なんだろ?w
2022/11/23(水) 18:35:31.89ID:zunuLtNb0
switchが使いたいからenumなんだろ?w
おい正直に言ってみろよw
2022/11/23(水) 18:41:28.03ID:Gf+fcBNM0
なんか変なのが2人に増えた
2022/11/23(水) 18:47:35.71ID:eUenOEMN0
デザインパターンのステートマシンは登場しないような気がする
2022/11/23(水) 18:55:47.21ID:LfUozzif0
>>914
取りうる値すべて網羅するのが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};とすべき
同じ名前のメンバーが存在しても異なる型で別のものだからそれぞれ定義するのは当たり前
2022/11/23(水) 19:03:20.20ID:v/FrQePk0
なんだろうフツーに連想配列じゃいかんの?
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況