C# 错误-“;未分配参数信封的使用“;

C# 错误-“;未分配参数信封的使用“;,c#,C#,我在下面的函数中得到一个错误,即“使用未分配的参数信封” 您应该在方法中初始化信封 像 当我们使用任何out参数时,需要在退出方法之前在方法体中初始化或分配该参数。您应该在方法中初始化信封 像 当我们使用任何out参数时,需要在退出该方法之前在方法体中初始化或分配该参数。使用时,您可以假设它们未指定(未初始化),并且您需要在离开该方法的上下文之前以及在使用该对象之前分配给它 因此,在您的情况下,如果编译器允许您使用envelope,您将得到NullReferenceException。但这并不是

我在下面的函数中得到一个错误,即“使用未分配的参数信封”


您应该在方法中初始化
信封


当我们使用任何out参数时,需要在退出方法之前在方法体中初始化或分配该参数。

您应该在方法中初始化
信封

当我们使用任何out参数时,需要在退出该方法之前在方法体中初始化或分配该参数。

使用时,您可以假设它们未指定(未初始化),并且您需要在离开该方法的上下文之前以及在使用该对象之前分配给它

因此,在您的情况下,如果编译器允许您使用
envelope
,您将得到
NullReferenceException
。但这并不是说您不能将
out
参数指定为
null
以返回调用方。

您可以假设它们未指定(未初始化),并且您需要在离开方法的上下文之前以及在使用该对象之前对其进行分配


因此,在您的情况下,如果编译器允许您使用
envelope
,您将得到
NullReferenceException
。但这并不是说不能将
out
参数指定为
null
以返回调用方。

信封
参数是一个输出参数。这意味着在例程完成之前需要将其分配给

在建立此参数之前,您正在设置该参数的属性,因此会显示错误消息

如果确实需要输出参数,则需要在退出之前初始化信封参数

envelope = new Envelope();
但是,如果要更改现有封套对象的属性,并且要将该封套作为参数传入,则实际上不需要将其作为输出参数

只需将方法签名更改为:-

public override bool Parse(string input, Envelope envelope)

信封
参数是一个输出参数。这意味着在例程完成之前需要将其分配给

在建立此参数之前,您正在设置该参数的属性,因此会显示错误消息

如果确实需要输出参数,则需要在退出之前初始化信封参数

envelope = new Envelope();
但是,如果要更改现有封套对象的属性,并且要将该封套作为参数传入,则实际上不需要将其作为输出参数

只需将方法签名更改为:-

public override bool Parse(string input, Envelope envelope)

正是错误消息所说的。正是错误消息所说的。