调用func1变量后,mydata保持为空。在调试模式下,我发现它在func3中将数据设置为字符串。为什么它在退出功能后没有通过价值?
类例如c#类变量在调用函数后仍然为空
class myclass
{
public string mydata;
public int func1()
{
//....
func2(/**/, mydata);
//....
return 1;
}
private int func2(/**/,data)
{
byte[] arr = new byte[1000];
//...
func3(arr,data);
//...
return 1;
}
private void func3(byte[] arr, string data)
{
char[] a = new char[100];
//...
data = new string(a);
}
}
因为你是按值传递,而不是参考? –
请阅读http://pobox.com/~skeet/csharp/parameters.html –