Csharp/C#教程:使用未分配的变量?分享


使用未分配的变量?

在声明paymentstatus是否为null或“if”语句中是否有值时,我得到了未分配变量“ps”的错误使用。 我在想我已经宣布了ps,但显然我做错了。 为什么编译器抱怨这个?

这是上下文中的错误:

public IList DailyBestsellersReport() { OrderStatus os; PaymentStatus? ps; ShippingStatus ss; int billingCountryId = 0; int recordsToReturn = 999; int orderBy = 1; int groupBy = 1; int? paymentStatusId = null; if (ps.HasValue) paymentStatusId = (int)ps.Value; // Specifies the time range for sold products/day var range = new { startTimeUtc = DateTime.Today.AddDays(-1), endTimeUtc = DateTime.Today.AddSeconds(-1), CreatedOnUtc = DateTime.Today.AddDays(-1), }; var query1 = from opv in _opvRepository.Table join o in _orderRepository.Table on opv.OrderId equals o.Id join pv in _productVariantRepository.Table on opv.ProductVariantId equals pv.Id join p in _productRepository.Table on pv.ProductId equals p.Id where (o.CreatedOnUtc >= range.startTimeUtc && o.CreatedOnUtc <= range.endTimeUtc) && (!paymentStatusId.HasValue || paymentStatusId == o.PaymentStatusId) select opv; } 

谢谢!

您已声明了本地变量,但尚未指定值。 因此编译器可以帮助您防止此错误。

 PaymentStatus? ps; // ... if (ps.HasValue) 

所以分配一个值:

 PaymentStatus? ps = null; // ... if (ps.HasValue) 

但是,thix修复了编译器错误但仍然没有意义,因为它永远不会有值。 也许您想要使用方法参数:

 public IList DailyBestsellersReport(PaymentStatus? ps) { 

初始化你的ps变量就像

 PaymentStatus? ps = null; //or something. 

来自Compiler Error CS0165

C#编译器不允许使用未初始化的变量。 如果编译器检测到可能尚未初始化的变量的使用,则会生成编译器错误CS0165

它是一个未分配的变量,即您没有用值初始化它。

是的,你确实声明了变量。

然而它说“未分配”而不是“未声明”,并且您没有为变量分配任何值。 只需将其设置为null即可。

你还没有初始化ps …你需要至少使用null值来初始化它…

 PaymentStatus? ps = null; 

这同样适用于所有其他变量

上述就是C#学习教程:使用未分配的变量?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1037644.html

(0)
上一篇 2022年1月25日
下一篇 2022年1月25日

精彩推荐