C# 方法输出参数列表初始化不适用于 Clear()
C# method out parameter list initialization doesn't works with Clear()
我发现,那个构造
Method(out List<T>list)
{
list.Clear(); // doesn't allowed to initialyze List<T>list
list = null; // is accepted by VSTO, however, is not so good
}
有什么建议吗?
您不能在此方法中使用未分配的参数。有一个简单的规则:如果将初始化参数传递给方法,则使用 out whether parameter is not initialized or use ref。
此代码 运行 正确:
void Method<T>(ref List<T> list)
{
list.Clear();
list = null;
}
阅读更多关于这个问题的差异:What's the difference between the 'ref' and 'out' keywords?
如果你想使用 out
语义,而不是 ref
,你必须实例化你的列表:
Method(out List<T>list)
{
list = new List<T>();
}
我发现,那个构造
Method(out List<T>list)
{
list.Clear(); // doesn't allowed to initialyze List<T>list
list = null; // is accepted by VSTO, however, is not so good
}
有什么建议吗?
您不能在此方法中使用未分配的参数。有一个简单的规则:如果将初始化参数传递给方法,则使用 out whether parameter is not initialized or use ref。
此代码 运行 正确:
void Method<T>(ref List<T> list)
{
list.Clear();
list = null;
}
阅读更多关于这个问题的差异:What's the difference between the 'ref' and 'out' keywords?
如果你想使用 out
语义,而不是 ref
,你必须实例化你的列表:
Method(out List<T>list)
{
list = new List<T>();
}