D. *_*own 1 c# class optional-parameters
你能告诉我怎样才能解决这个错误
默认参数值必须是编译时常量"
我知道这个问题并且已经在Stack Overflow上看到了方法的解决方案,但是我没有得到如何为类解决这个问题.
public class member
{
public string name { get; }
public string email { get; set; }
public int entryYear;
static int memberNbr;
public member (string _name, int _entryyear = DateTime.Now.Year, string _email = "")
{
name = _name;
entryyear = _entryyear;
email = _email;
}
}
Run Code Online (Sandbox Code Playgroud)
不是让它成为可选参数,而是不同的构造函数重载呢?在第二个构造函数中,不要将entryYear作为参数,而是在构造函数体中初始化它?
虽然我们正在使用它,但是让我们使用适当的C#约定,例如属性名称为PascalCase,构造函数参数为camelCased.并且不使用属性名称的缩写,并且当它明显属于单个实例时不要使MemberNumber成为静态.
public class Member
{
public string Name { get; }
public string Email { get; }
public int EntryYear { get; }
public int MemberNumber {get; }
public Member(string name, int entryYear, string email = "")
{
Mame = Name;
EntryYear = entryYear;
Email = email;
}
public Member(string name, string email = "")
{
Mame = Name;
EntryYear = DateTime.Now.Year;
Email = email;
}
}
Run Code Online (Sandbox Code Playgroud)
你没有问过它,但用空字符串初始化电子邮件真的没有意义.将它默认为null可能更好.