我想要一个字符串字段由另外两个字段组成

本文关键字:字段 两个 一个 字符串 我想要 | 更新日期: 2023-09-27 18:17:32

我希望FullnameFirstNameLastname组成,但我得到以下例外:

字段初始化项不能引用非静态字段、方法或地产的员工。FirstName'/'Employee。姓'

class Employee
{
    public string FirstName { get; }
    public string LastName { get; }
    private string FullName = string.Format("{0}, {1}", FirstName, LastName);
}

我想要一个字符串字段由另外两个字段组成

类字段的赋值顺序不能由运行时保证。这就是为什么编译器会警告你一个编译时错误。

如果FullName是一个公共属性,你可以这样做:

class Employee
{
    public string FirstName { get; }
    public string LastName { get; }
    public string FullName => $"{FirstName} {LastName}";
}

对于不使用c# -6的人:

class Employee
{
    public string FirstName { get; private set; }
    public string LastName { get; private set; }
    public string FullName 
    {
        get { return string.Format("{0} {1}", FirstName, LastName); } 
    }
}

或者如果你不希望它是公共的,你需要通过类构造函数实例化字段

class Employee
{
    public Employee(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
        fullName = $"{FirstName} {LastName}";
    }
    public string FirstName { get; }
    public string LastName { get; }
    private string fullName;
}

您试图在初始化变量

之前设置该值

如果你把set改成get,你会更成功

class Employee{
    public String FirstName { get; }
        public String LastName { get; }
        public String FullName {
            get{
                return String.Format("{0}, {1}", FirstName, LastName);
            }
        }
    }
}

我认为你需要把它放在类构造函数中。这个错误是因为您试图使用不存在的值,或者更确切地说,在使用它们的时候可能不存在。