[解決済み] getを上書きし、setを上書きしない
2023-05-29 05:31:01
質問
抽象クラスがあり、そのクラスは
get
を定義していますが
set
というのは、その抽象クラスに関する限り、そのクラスが必要とするのは
get
.
public abstract BaseClass
{
public abstract double MyPop
{get;}
}
しかし,いくつかの派生クラスで
set
プロパティが必要なので、この実装を検討しています。
public class DClass: BaseClass
{
public override double MyPop
{get;set;}
}
問題は、コンパイルエラーが発生し、次のように表示されたことです。
*.set: オーバーライドできません。なぜなら *.はオーバーライド可能なセットアクセッサを持っていないからです。
上記の構文が完全に正当だと思うのに。
これに関して何かアイデアはありますか?回避策、またはなぜそうなのか?
編集:私が思いつく唯一のアプローチは、両方の
get
と
set
を抽象クラスと同様に投げさせ、サブクラスは
NotImplementedException
もし
set
が呼び出され、それが必要でない場合。それは私が好まないものであり、それと一緒に
特殊なセッター・メソッド
.
どのように解決するのですか?
C# 6.0での新機能です。
コンストラクタ内でセッタを呼び出すだけであれば、読み取り専用のプロパティを使用してこの問題を解決することができます。
void Main()
{
BaseClass demo = new DClass(3.6);
}
public abstract class BaseClass
{
public abstract double MyPop{ get; }
}
public class DClass : BaseClass
{
public override double MyPop { get; }
public DClass(double myPop) { MyPop = myPop;}
}
関連
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み】「namespace x already contains a definition for x」エラーの修正方法は?VS2010にコンバートした後に発生しました。
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] C#でenumからint値を取得する
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] EqualsメソッドがオーバーライドされたときにGetHashCodeをオーバーライドすることが重要な理由は何ですか?
-
[解決済み] パブリックフィールドとオートマチックプロパティ
-
[解決済み】WCFクライアント `using` ブロックの問題に対する最良の回避策は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み] ゲッターのみのプロパティをオーバーライドして、セッターを追加することができないのはなぜですか?[クローズド]