基本クラスとそのサブクラスで使用されるいくつかの定数を定義する必要があります。それらを定義する正しい方法が何であるかわかりません。
const、readonly、static const、および public、protected、private の違いを理解しています (ただし、C# で "protected" が使用されることはめったにありません)。これらの定数はどのように定義する必要がありますか? public const、public readonly、private constant、private readonly のいずれかで、使用するサブクラスに public getter/setter を使用する必要がありますか、それとも保護として定義する必要がありますか?
別の質問は、BaseClass の変数 FilePath に関するものです。FilePath は、BaseClass の一部の関数でプレースホルダーとして使用されます (実際の値はサブクラスによって提供されます)。それを仮想として定義する必要がありますか?
誰かが従うべき一般的なルールを提供できますか? 以下は私が持っているものの例です:
public class BaseClass
{
public const string Country = "USA";
public const string State = "California";
public const string City = "San Francisco";
public virtual string FilePath
{
get
{
throw new NotImplementedException();
}
set
{
throw new NotImplementedException();
}
}
}
public class Class1 : BaseClass {
public Class1() {
FilPath = "C:\test";
}
public string GetAddress() {
return City + ", " + State + ", " + Country;
}
public void CreateFile() {
if (!Directory.Exist(FilePath)) {
//create folder, etc
}
}
}