C#方法输出参数列表初始化不';t与Clear()一起工作
我发现,那个建筑C#方法输出参数列表初始化不';t与Clear()一起工作,c#,list,initialization,out,C#,List,Initialization,Out,我发现,那个建筑 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 } 方法(输出列表) { list.Clear();//不允许初始化Listlist list=null;//被VSTO接受,
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
}
方法(输出列表)
{
list.Clear();//不允许初始化Listlist
list=null;//被VSTO接受,但效果不太好
}
有什么建议吗?此方法不能使用未分配参数。这里有一个简单的规则:无论参数是否初始化都使用,或者将初始化的参数传递给方法时使用 此代码将正确运行:
void Method<T>(ref List<T> list)
{
list.Clear();
list = null;
}
void方法(参考列表)
{
list.Clear();
列表=空;
}
阅读此问题中有关差异的更多信息:如果要使用
out
语义,而不是ref
,则必须实例化列表:
Method(out List<T>list)
{
list = new List<T>();
}
方法(输出列表)
{
列表=新列表();
}
out
参数通常用于在方法中创建的对象,而不是用于修改传递到方法中的对象。也许您应该使用ref
。您需要显示此代码将在其中使用的上下文。谢谢Mattew!事实上,我正在将类中的list字段处理到方法中,如public Liststr=new list()。。。