?在声明paymentstatus是否为空或在“if”语句中具有值时,我错误地使用了未分配的变量“ps”。我在想我已经声明了ps,但显然我做错了。为什么编译器会抱怨这个?这是上下文错误:publicIListDailyBestsellersReport(){OrderStatusos;支付状态?附言;发货状态ss;int计费国家ID=0;intrecordsToReturn=999;int顺序=1;int分组=1;诠释?paymentStatusId=null;(ps.HasValue)paymentStatusId=(int)ps.Value;//指定销售产品/天的时间范围varrange=new{startTimeUtc=DateTime.Today.AddDays(-1),endTimeUtc=DateTime.Today.AddSeconds(-1),CreatedOnUtc=DateTime.Today.AddDays(-1),};varquery1=fromopvin_opvRepository.Tablejoinoin_orderRepository.Tableonopv.OrderId等于o.Idjoinpvin_productVariantRepository.Tableonopv。ProductVariantId等于pv.Idjoinpin_productRepository.Tableonpv.ProductId等于p.Idwhere(o.CreatedOnUtc>=range.startTimeUtc&&o.CreatedOnUtc<=range.endTimeUtc)&&(!paymentStatusId.HasValue||paymentStatusId==o.PaymentStatusId)选择opv;}谢谢你!您已声明一个局部变量但尚未分配值。所以编译器可以帮你防止这个错误。支付状态?附言;//...if(ps.HasValue)所以赋值:PaymentStatus?ps=空;//...if(ps.HasValue)但是,thix修复了编译器错误但仍然没有意义,因为它永远不会有值。也许您想使用方法参数:publicIListDailyBestsellersReport(PaymentStatus?ps){像PaymentStatus一样初始化您的ps变量?ps=空;//或者其他的东西。来自编译器错误CS0165C#编译器不允许未初始化的变量。如果编译器检测到使用了可能尚未初始化的变量,则会生成编译器错误CS0165Itisanunassignedvariable,即您没有使用值对其进行初始化。是的,您确实声明了变量。但是它说“未分配”而不是“未声明”,并且您没有为变量分配任何值。只需将其设置为空即可。您还没有初始化ps……您至少需要用空值初始化它……PaymentStatus?ps=空;其他所有变量同理以上是C#学习教程:使用未赋值变量?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
