params关键字#region params关键字
/**////params关键字是可以指定在参数数目可变处采用参数的方法参数,(在参数的数目可变时使用)
///在方法声明中的params关键字之后不允许任何其他参数
///并且在方法声明中只允许一个params关键字
///下面的例子说明
///建立一个form,添加一个RichTextBox控件,一个butten控件,一个TextBox控件
//RichTextBox richTextBox1 = new RichTextBox();
private void UseParams(params string[] list)
{
for (int i = 0; i < list.Length; i++)
{
richTextBox2.AppendText(list[i] + "\r\n");
}
}
private void UseParams1(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
richTextBox2.AppendText((object)list[i].ToString()+"\r\n");
}
}
private void button1_Click(object sender, EventArgs e)
{
int b = 0;
UseParams("how","are","you");
UseParams1(b,"2","3","4","5","6");
UseParams1(textBox1.Text);
textBox1.Text = "";
}
#endregion
ref关键字#region ref关键字
/**////方法参数中的ref关键字可以传递参数值
///即在方法内部对参数的任何改变都会影响到外部变量
///也就是说,外部变量的值会跟着改变
///在定义方法和使用方法时,都要加上ref
private void testRef(ref string str)
{
str = "how are you.";
}
private void testNoRef(string str)
{
str = "how are you.";
}
private void button2_Click(object sender, EventArgs e)
{
string myStr = "good study.";
richTextBox2.AppendText("原始字符串为:"+myStr+"\r\n");
testRef(ref myStr);
richTextBox2.AppendText("使用Ref时将原始字符串变为:" + myStr + "\r\n");
testNoRef(myStr);
richTextBox2.AppendText("testNoRef方法不使用ref时,原始字符串仍为:"+myStr +"\r\n");
}
#endregion
out 关键字#region out 关键字
private string testOut(out char i)
{
i = 'a';
return "good study!";
}
private void button3_Click(object sender, EventArgs e)
{
char j;//不需初始化
string getReturn = testOut(out j);
richTextBox2.AppendText("方法执行的返回值是:"+getReturn+"\r\n");
richTextBox2.AppendText("返回out参数的值为:"+j.ToString()+"\r\n");
}
#endregion
/**////params关键字是可以指定在参数数目可变处采用参数的方法参数,(在参数的数目可变时使用)
///在方法声明中的params关键字之后不允许任何其他参数
///并且在方法声明中只允许一个params关键字
///下面的例子说明
///建立一个form,添加一个RichTextBox控件,一个butten控件,一个TextBox控件
//RichTextBox richTextBox1 = new RichTextBox();
private void UseParams(params string[] list)
{
for (int i = 0; i < list.Length; i++)
{
richTextBox2.AppendText(list[i] + "\r\n");
}
}
private void UseParams1(params object[] list)
{
for (int i = 0; i < list.Length; i++)
{
richTextBox2.AppendText((object)list[i].ToString()+"\r\n");
}
}
private void button1_Click(object sender, EventArgs e)
{
int b = 0;
UseParams("how","are","you");
UseParams1(b,"2","3","4","5","6");
UseParams1(textBox1.Text);
textBox1.Text = "";
}
#endregion
ref关键字#region ref关键字
/**////方法参数中的ref关键字可以传递参数值
///即在方法内部对参数的任何改变都会影响到外部变量
///也就是说,外部变量的值会跟着改变
///在定义方法和使用方法时,都要加上ref
private void testRef(ref string str)
{
str = "how are you.";
}
private void testNoRef(string str)
{
str = "how are you.";
}
private void button2_Click(object sender, EventArgs e)
{
string myStr = "good study.";
richTextBox2.AppendText("原始字符串为:"+myStr+"\r\n");
testRef(ref myStr);
richTextBox2.AppendText("使用Ref时将原始字符串变为:" + myStr + "\r\n");
testNoRef(myStr);
richTextBox2.AppendText("testNoRef方法不使用ref时,原始字符串仍为:"+myStr +"\r\n");
}
#endregion
out 关键字#region out 关键字
private string testOut(out char i)
{
i = 'a';
return "good study!";
}
private void button3_Click(object sender, EventArgs e)
{
char j;//不需初始化
string getReturn = testOut(out j);
richTextBox2.AppendText("方法执行的返回值是:"+getReturn+"\r\n");
richTextBox2.AppendText("返回out参数的值为:"+j.ToString()+"\r\n");
}
#endregion