gpt4 book ai didi

c# - 如何使用 DateTime.Now.Year 作为可选参数的默认值

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:07 25 4
gpt4 key购买 nike

你能告诉我如何解决这个错误吗

Default parameter value must be a compile-time constant"

我知道这个问题,并且已经在 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;
}
}

最佳答案

与其将其作为可选参数,不如使用不同的构造函数重载呢?在第二个构造函数中,不要将 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;
}
}

你没有问过,但用空字符串初始化电子邮件真的没有意义。最好将其默认为 null。

关于c# - 如何使用 DateTime.Now.Year 作为可选参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53573803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com