asp.net开发中什么时候用到out或者ref 看到有些项目中别人会用到这些 但是我不明白为什么要用

wl85916 2011-12-07 02:33:03
asp.net开发中什么时候用到out或者ref 看到有些项目中别人会用到这些 但是我不明白为什么要用
...全文
51 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
linwenlei 2011-12-07
  • 打赏
  • 举报
回复
你的方法如果需要传回多个值就用OUT或者REF
wl85916 2011-12-07
  • 打赏
  • 举报
回复
隐约知道了,也就是项目中实例化构造函数的时候,里面可能会有多个返回值,这里就需要使用到!
tangserver 2011-12-07
  • 打赏
  • 举报
回复
ref 原来如此
ycg_893 2011-12-07
  • 打赏
  • 举报
回复
ref:如:计算一个面积,但只有高度>100 宽度>100时才变更原来的面积大小,否则按原来的面积.

static void Main(string[] args)
{
int a = 100; //原来的值,或者是由某种条件下计算出来的值.
Account(50, 50, ref a); //执行变更
// a=100 条件达不到,所有不变会
Account(200, 200, ref a); //执行变更
// a=200 达到条件,变更面积
}

public static void Account(int w, int h, ref int a)
{
if (w > 100 && h > 100)
{
a = w * h;
}
}
ycg_893 2011-12-07
  • 打赏
  • 举报
回复
MessageBox.Show(msg) //Winfrom
ycg_893 2011-12-07
  • 打赏
  • 举报
回复
如:做个登陆的界面,判断用户密码是否正确(bool),如果不正确则返回原因.

public bool UserLogin(string UserName,string Pwd,out string Info)
{
if(UserName==null || UserName.Trim()=="")
{
Info="用户名不能为空.";
return false;
}
if(UserName=="a" && Pwd=="b")
{
Info="成功验证.";
return true;
}
else
{
Info="用户名或密码出错.";
return false;
}
}
调用:
string msg;
bool login=UserLogin("a","b",out msg);
if(login)
{
//登陆代码
}
else
{
//弹出错误: msg
Message.Show(msg) //Winfrom
}
Bullatus 2011-12-07
  • 打赏
  • 举报
回复
ref引用传递,被传递的对象需要被实例化后再传参,而out不需要事先实例化。
在函数需要多个返回值的时候或需要函数修改对应参数的时候使用

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧