如何在不使用new关键字的情况下创建类的实例

本文关键字:情况下 创建 实例 关键字 new | 更新日期: 2023-09-27 18:19:37

假设我有一个类,如下所示

public Class Person
{
  public string Firstname { set; get; }
  public string Lastname { set; get; }
}

问题是,如何从下面这样的Person类中获取实例?

Person p = "AAAA BBBB";

所以现在,名字等于AAAA,姓氏等于BBBB,我不想在我的类中使用构造函数,首先,有可能这样做吗?那么怎么做呢?

如何在不使用new关键字的情况下创建类的实例

您可以实现运算符(C#):

public class Person
{
  public string Firstname { set; get; }
  public string Lastname { set; get; }
  public static implicit operator Person(String value) {
    Person result = new Person();
    if (String.IsNullOrEmpty(value))
      return result;
    //TODO: More elaborated code required: check if there's no space, two or more spaces etc. 
    String[] items = value.Split(' ');
    result.Firstname = items[0];
    result.Lastname = items[1];
    return result;
  }
}
...
Person sample = "AAAA BBBB";

没有构造函数就无法初始化类。这就是构造函数的作用。

但是,您可以初始化Person对象并在1条语句中设置其属性:

Person p = new Person { FirstName = "AAAA", LastName = "BBBB" };