這裏的情況是:我想調用從一個C++模塊的方法,以及傳遞數組它:傳遞數組通過在C#參考和管理C++
x.Method(array, ...)
x是C#對象。我想我可以改變數組並填充自己的數據 - 但它似乎不是這種情況(?)
我應該如何通過引用傳遞數組並更改其在方法中的內容?
預先感謝您,
歡呼聲。
這裏的情況是:我想調用從一個C++模塊的方法,以及傳遞數組它:傳遞數組通過在C#參考和管理C++
x.Method(array, ...)
x是C#對象。我想我可以改變數組並填充自己的數據 - 但它似乎不是這種情況(?)
我應該如何通過引用傳遞數組並更改其在方法中的內容?
預先感謝您,
歡呼聲。
是的,如果你想改變的磁盤陣列不僅僅是改變它的元素(即添加或刪除元素),那麼你必須按引用傳遞它。 C#聲明將是:
public void Method(ref Mumble[] arg)
這不是很好的語法。垃圾收集器可以很容易地返回數組作爲函數的返回值:
public Mumble[] Method(Mumble[] input)
但考慮List<Mumble>
代替。
您不需要通過引用傳遞數組。數組是一個引用類型,所以如果您將數組傳遞給該方法,則實際上是將一個引用傳遞給它。該方法可以改變引用指向的數組內容,但不能改變引用本身(即不能使它指向不同的數組)。如果您是通過引用傳遞數組,那麼該方法將能夠更改對該數組的引用,但如果您只想填充現有數組,則這可能不是您要查找的內容。
我建議你看看this article更多細節