2012-10-06 40 views
1

我使用下面的代碼獲取以下錯誤消息。我不確定這是否與Grasshopper內核有關,或者我沒有正確編寫DataAccess.GetDataList()方法。我希望你能幫忙。無法根據使用情況推斷方法的類型參數

The type arguments for method 'Grasshopper.Kernel.IGH_DataAccess.GetDataList<T>(int, System.Collections.Generic.List<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

代碼:

protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) 
{ 
pManager.AddTextParameter("SomeString", "SS", "Send Some String Somwhere", GH_ParamAccess.list); //0 
} 
protected override void SolveInstance(IGH_DataAccess DA) 
{ 

string SomeString = default(string); 
DA.GetDataList(0, ref SomeString); 

if (!DA.GetDataList(0, ref SomeString)) return; 

} 

回答

2

錯誤說該函數需要intList<T>但你供給intstring。您也不需要修改器ref

你需要做這樣的事情:

List<string> someStrings = new List<string>(); 
if(! DA.GetDataList(0, someStrings)) return; 
+0

非常感謝李,它的工作原理,所以不需要有ref修飾符? –

+1

@ ArthurMamou-Mani - 'ref'修飾符用於通過引用傳遞參數,並且需要在聲明方法和每次調用該方法時指定。只有當方法需要修改傳遞給它的變量作爲參數時才需要。 – Lee

相關問題