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

时间:2014-08-26 11:52:24

标签: c#

假设我有一个类似下面的课程

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

这是一个问题,如何从Person类中获取实例,如下所示?

Person p = "AAAA BBBB";

所以现在,Firstname等于AAAA,Lastname等于BBBB,我不想在我的班级中使用构造函数,首先,是否可以这样做?那怎么样?

2 个答案:

答案 0 :(得分:11)

您可以实现运算符(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";

答案 1 :(得分:1)

如果没有构造函数,则无法初始化类。这就是构造函数的用途。

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

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