C# 新'Classname'和默认值('类名')有什么区别

  • 本文关键字:区别 类名 Classname 默认值 c#
  • 更新时间 :
  • 英文 :


我是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

更多信息在这里。

相关内容

  • 没有找到相关文章

最新更新