通过引用传递的参数不能设置值

时间:2013-08-09 01:36:38

标签: c# string reference

我正在开发一个模拟浏览器登录的软件,并执行一些GETPOST请求,服务器有时需要访问检查代码的用户输入。

所以我创建了一个表单让用户输入检查代码,但是当我尝试将参数传递给检查代码表单时,它无法将值设置为用户在文本框中输入的内容。

这是代码CheckcodeForm.cs

public partial class CheckcodeForm : Form
{
    public string pic_url;
    public string ck;

    public CheckcodeForm()
    {
        InitializeComponent();
    }

    public CheckcodeForm(string _ck,string pic_url)
    {
        InitializeComponent();
        this.pic_url = pic_url;
        this.ck = _ck;
        pictureBox1.ImageLocation = pic_url;      
    }

    private void pictureBox1_Click(object sender, EventArgs e)
    {
        this.pictureBox1.ImageLocation = pic_url;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.ck = this.textBox1.Text;
        this.Hide();
    }
}

这是新的CheckcodeForm部分:

string _check_code = "0000";
new CheckcodeForm(_check_code,checkcodePicUrl).ShowDialog();                       
MessageBox.Show(_check_code);

为什么我总是收到0000的消息框?

1 个答案:

答案 0 :(得分:2)

您正在将文本框值分配给表单中的ck字段,因此请从那里获取:

string _check_code = "0000";
var checkcodeForm = new CheckcodeForm(_check_code,checkcodePicUrl).ShowDialog(); 
MessageBox.Show(checkcodeForm.ck);

顺便说一句,你是按值传递参数,而不是通过引用。查看Passing Parameters (C# Programming Guide)