簡體   English   中英

如何強制派生類在 C# 中實現屬性

[英]How to force derived class to implement a property in C#

我有如下場景

public abstract class Test 
{
   public string name; 
   public abstract bool is_selected();
}

public class Campus : Test 
{  

}

現在 Campus 必須並且應該實現 is_selected() 方法,否則它會拋出錯誤。 添加到相同的行中,我也希望“名稱”字段也如此。 我的意思是必須給 name 字段一個值。

我怎樣才能做到這一點? 非常感謝任何幫助。

提前致謝 :)

我可以找到兩個選項

  1. 使用參數化構造函數,因此派生類必須提供一個構造函數來初始化字段。
public abstract class Test 
{
   public string name;
   protected Test(string name){ this.name = name; }
}

public class Campus : Test 
{
   public Campus() : base("Init the name here") {}
}
  1. 使用抽象屬性,其他人已經提到過。
public abstract class Test 
{
   public abstract string name { get; }
}

public class Campus : Test 
{  
   public override string name => "name";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM