我需要定义一些将由基类及其子类使用的常量。不确定定义它们的正确方法是什么。
我了解 const、readonly、static const 以及 public、protected 和 private 的区别(虽然我很少看到在 C# 中使用“protected”)。这些常量应该如何定义?它们应该是公共常量、公共只读、私有常量还是私有只读,并使用公共 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
}
}
}