[過去ログ] ふらっと C#,C♯,C#(初心者用) Part150 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
898
(2): デフォルトの名無しさん (ワッチョイ 5b2d-gUNg) [sage] 2021/05/11(火) 02:12:53 ID:1Lpm83JY0(1/4) AAS
>>895
895(3): デフォルトの名無しさん (ワッチョイ bea7-wGCM) [sage] 2021/05/11(火) 02:06:49 ID:aDB05LmB0(3/15) AAS
>>894
不変よ
少なくともプログラムが実行されてからは
だって状態を表してるんだから
変更が必要になるのは継承で分岐するソースコードの修正作業時だけ

こういう形でenumが使えないなら
今後継承を行う可能性が少しでもあるならそのクラスではenumは一切使えないということ
実際使わないほうがいいと思う

赤青ランプを継承して
赤青黃ランプを作ったときに
状態赤青がenumで作られてたらゴミ箱にブチ込むしか道はない
enumの定義をclassの外に出して独立させれば
901: デフォルトの名無しさん (ワッチョイ 5b2d-gUNg) [sage] 2021/05/11(火) 02:38:14 ID:1Lpm83JY0(2/4) AAS
>>900
900(1): デフォルトの名無しさん (ワッチョイ bea7-wGCM) [sage] 2021/05/11(火) 02:16:57 ID:aDB05LmB0(6/15) AAS
>>898
赤青黄と赤青緑に継承で分岐したとき
どんなenum定義するって言ってる?
派生元も派生先も関係なく1つのenumで定義すればって意味で書いた
使う時はプロパティやメソッドでそのクラスで利用可能な値かをチェック
927
(1): デフォルトの名無しさん (ワッチョイ 5b2d-gUNg) [sage] 2021/05/11(火) 15:00:11 ID:1Lpm83JY0(3/4) AAS
>>925
925(1): デフォルトの名無しさん (ブーイモ MMd6-D3Lk) [sage] 2021/05/11(火) 14:40:19 ID:/TD/rkCHM(1) AAS
C#や諸々の言語はそもそも、継承の仕様が出来損ないなんだよね
Java 16みたいにSealed Classを定義できるなら、まだしもねぇ

どんなクラスでも継承できます、なんて言われてもね
全てのサブクラスの面倒を見るなんて、事実上不可能だろ

だからサブクラスを限定する仕組みが必要なのだが…
C#はまだまだ、遅れてるね
Javaのことは知らんけど
C#のsealed classでは駄目なの
930: デフォルトの名無しさん (ワッチョイ 5b2d-gUNg) [sage] 2021/05/11(火) 15:43:37 ID:1Lpm83JY0(4/4) AAS
>>929
929(1): デフォルトの名無しさん (ワッチョイ be2c-5KFm) [sage] 2021/05/11(火) 15:14:49 ID:Fjpe2RX80(1) AAS
>>927
そっちじゃなくて継承できる型を限定する機能だね
ShapeインターフェイスをRectangleクラスとCircleクラスのみ実装可能にする
他の奴がTriangleクラスを作ってShapeを実装するのは認めない
なるほどC#に限定する機能はないね
コンストラクタのアクセス権をinternalにしてアセンブリを分ければ実用上はそんなに困らなそうだけど
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.043s