一个函数返回多个值 C#

 

 1
 2Public void GetValues(string UserID,string PassWord,out string string UserName,out bool flag)
 3{
 4      //在使用一些判断为返回值赋值时,最好先在判断外赋上初始值,否则易报“离开当前方法之前必须对out 参数赋值”错误
 5 
 6      UserName = "";
 7      flag = true;
 8 
 9      if(UserID == 1 && Password == "123")
10      {
11          UserName = "小白";
12      }

13      else
14      {
15          flag = false;
16      }

17}

18
19private void btnLogin_Click(object sender, System.Web.UI.ImageClickEventArgs e)
20{
21      //先对返回的参数进行声明
22      string Name;
23      string UserName;
24      bool Flag;
25
26      GetValues("1""123",out Name, out Flag);
27         
28      //此时Name和Flag的值已返回
29      //Name = "小白"
30      //Flag = true
31
32      if(Flag == true)
33      {
34            UserName = Name;
35            //UserName被赋值为小白
36      }

37}

38
39

 

out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。尽管作为 out 参数传递的变量不需要在传递之前进行初始化,但需要调用方法以便在方法返回之前赋值。ref 和 out 关键字在运行时的处理方式不同,但在编译时的处理方式相同。因此,如果一个方法采用 ref 参数,而另一个方法采用 out 参数,则无法重载这两个方法。 

参考MSDN

 

posted on 2008-11-20 17:20  vivienne  阅读(5170)  评论(7编辑  收藏  举报