我是C#的新手,对它不是很熟悉。我对new PostpaidProfile();
和default(AutoliftResult);
的区别感到困惑 我的意思是它们的称呼方式有什么区别。下面是我不知道它们叫什么的类或对象
public class PostpaidProfile
{
public bool WasRetrieved { get; set; }
public string AccountCategory { get; set; }
public string AccountNum { get; set; }
public string Acd { get; set; }
public string ActivationDate { get; set; }
public int? AgingDays { get; set; }
public decimal? CreditRating { get; set; }
public string CutOff { get; set; }
public string Cycle { get; set; }
public bool? IsBlacklisted { get; set; }
public bool? IsNopsa { get; set; }
public decimal? Msf { get; set; }
public string RatePlan { get; set; }
public string ServiceStatus { get; set; }
public int? VipCode { get; set; }
public string Zip { get; set; }
public string Remarks { get; set; }
}
public class AutoliftResult
{
public bool IsSuccess { get; set; }
public decimal StatusCode { get; set; }
public string Message { get; set; }
public string SRNumber { get; set; }
}
以及它们是如何称呼的
PostpaidProfile output = new PostpaidProfile();
AutoliftResult output = default(AutoliftResult);
我的问题是它们有什么区别?(我不是在谈论它们的内容(如果我声明AutoliftResult output = new AutoliftResult();
new PostpaidProfile()
创建类的新实例
default(AutoliftResult)
为指定类型创建默认值。 对于引用类型,它是 null
。 对于值类型,它通常是0
转换为类型的任何内容 - 即如果类型为 int
,默认值为 0
;如果类型为 bool
,默认值为 false
等。
默认关键字将为引用类型返回 null,为数值类型返回零。
请注意,对于数值类型,它将返回零,而不是所有值类型。例如,对于struct
类型,即使它们是值类型,它也将返回结构的名称而不是零。在这里看到小提琴。
在您的情况下PostpaidProfile output = new PostpaidProfile()
将返回一个实例,default
将返回 null。
如果这样做,将导致异常,因为output
为 null:
AutoliftResult output = default(AutoliftResult);
output.IsSuccess; // will not work
更多信息在这里。