C#,如何在函数的参数里填写返回值?
C# 里如何实现,下面C的功能呢?
即将封装的函数GetID里 读取到的数据,填写到该封装函数的参数里
- C/C++ code
apiReturn _stdcall GetID(SOCKET hSocket, BYTE *ID){ BYTE put[MAX_PACKET_LEN]; BYTE get[MAX_PACKET_LEN]; put[0]=0x02; // put[1]=0x14; // put[2]=0; if (!Packet(hSocket,put,get)) return _net_error; memcpy(ID, &get[1], 12); return _OK;}
[解决办法]
GetID(SOCKET hSocket, ref byte ID)
{
ID=xxx;
}
[解决办法]
out
[解决办法]
ref out 这两个关键字,MSDN查查吧
[解决办法]
publib void GetID(out string id)
{
id=string.empty;
id="testString";
}
[解决办法]
ref和out的差别,
ref 在传参之前必须赋值
out 传参之前不需要赋值,但必须在函数内部为其赋值。
int a = 0;
Func(ref a);//可以
int a;
Func(ref a); //不可以
int a;
Func (out a);
Func(out a)
{
a =0;//必须在内部为其赋值
}
一般跟C函数中指针对应的都用ref,因为在传递指针的时候肯定不能给个空指针,给空指针你根本就没法处理了。