[英]Migrate function C++ with pointers to C#
我在C ++中有一個返回指針值的函數:
fPosFirst( int &aId, char *aNname, char *aDirectory );
我在C#中的語法是:
fPosFirst(ref int aId, String aNname, String aDirectory);
該函數返回id而不是任何人都知道的字符串參數?
假設本機函數不“返回指針”,而是將字符寫入由aNname和aDirectory指定的內存位置,則您應該能夠將具有適當容量的StringBuilder傳遞給本機函數:
void fPosFirst(ref int aId, StringBuilder aNname, StringBuilder aDirectory);
用法:
var aId = 0;
var aNname = new StringBuilder(260);
var aDirectory = new StringBuilder(260);
fPosFirst(ref aId, aNname, aDirectory);
如果要在方法內分配給它們,並使這些值在方法外可用out
則需要使字符串參數為ref
或out
。
您需要在參數名稱之前使用out
關鍵字( 例如 )。 但這實際上不是C#的好習慣
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.