我有一個方法GetSelectedServices()
,它返回樹列表中的選定節點, 期望用相同的方法返回所選節點和所有節點,我試圖添加一個out
參數。是否可以同時使用「返回」和「退出」?
但是當我調用這個方法時,我應該給出out參數,所以帶selectedNodes的返回列表被掩蓋了,我不能擁有它。
我的方法
internal List<__ServiceInfo> GetSelectedServices(out List<__ServiceInfo> lstAll)
{
List<__ServiceInfo> lstSelected = new List<__ServiceInfo>();
List<__ServiceInfo> lstA = new List<__ServiceInfo>();
foreach (TreeListNode node in this.tlServices.Nodes)
{
if (node.Checked)
{
var service = this.tlServices.GetDataRecordByNode(node) as __ServiceInfo;
lstA.Add(service);
if (service != null)
{
lstSelected.Add(service);
}
if (node.Nodes.Count > 0)
{
foreach (TreeListNode subNode in node.Nodes)
{
if (subNode.Checked)
{
service = this.tlServices.GetDataRecordByNode(subNode) as __ServiceInfo;
lstA.Add(service);
if (service != null)
{
lstSelected.Add(service);
}
}
}
}
}
}
lstAll = lstA;
return lstSelected;
}
我調用該方法
public bool HasValidModel()
{
List<__ServiceInfo> lstAll = new List<__ServiceInfo>();
//here I get all nodes
var allServices = this.GetAllServices(out lstAll);
List<__ServiceInfo> lstSelected = new List<__ServiceInfo>();
//but how to get the list from ""return lstSelected"";
}
謝謝你的任何建議的方式。
所以基本上,「全部」包含選中的所有內容,然後是一堆'null'條目? –
看起來'GetSelectedServices'返回的是「all」和「selected」的相同列表 - 假設'service'永遠不是'null'。如果有任何空值,那麼結果會更奇怪。 – Enigmativity
您的程序違反了C#規範的第2.4.2節; **編寫一個在標識符中有兩個連續下劃線的程序是最糟糕的做法,除非您在框架或編譯器的實現團隊中。** –