如何 return 一个 属性 的默认值?

How to return a default value for a property?

我有以下 Graphql 类型 class,包括 POCO class:Order.cs

这里我想设置每个字段的默认值。例如,对于 Name 我想 return "No Name" 以防它没有价值 returned。在 Created 的情况下,我想默认 return 今天的日期。

public class OrderType : ObjectGraphType<Order>
{
    public OrderType(ICustomerService customers)
    {
        Field(o => o.Id);
        Field(o => o.Name);
        Field(o => o.Description);
        Field(o => o.Created);
    }
}

public class Order
{
    public Order(string name, string description, DateTime created, string Id)
    {
        Name = name;
        Description = description;
        Created = created;
        this.Id = Id;
    }

    public string Name { get; set; }

    public string Description { get; set; }

    public DateTime Created { get; private set; }

    public string Id { get; private set; }
}

谁能帮我解决这个问题?

如果您使用的是 C# 6+,它已添加 the ability to assign a default value to auto-properties。所以你可以简单地写这样的东西:

public string Name { get; set; } = "No Name";
public DateTime Created { get; private set; } = DateTime.Today;

这会将 Name 属性 的默认值设置为 No Name 并将 Created 属性 的默认值设置为今天的日期,如您所愿。