关于引用类型ref的运用
来源:互联网 发布:php access 编辑:程序博客网 时间:2024/05/22 03:48
一直没有弄明白ref的用法,今天用了一下msdn,发现竟然是如此的简单,用的时间要注意
若要使用ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。
一句话把我的迷津全部点开了
例子:
class RefExample { static void Method(ref int i) { // Rest the mouse pointer over i to verify that it is an int. // The following statement would cause a compiler error if i // were boxed as an object. i = i + 44; } static void Main() { int val = 1; Method(ref val);//这个val和上面的val是同一个 Console.WriteLine(val); // Output: 45 } }
在一个方法的参数定义为ref类型,在调用方法里显示的使用ref关键字。
在三层架构里面,验证数据是否完整,也会用到ref关键字。
一般会在BLL层里面验证,
如下面的代码: #region 检查数据完整性 /// <summary> /// 检查数据完整性 /// </summary> /// <param name="mdlObj"></param> /// <param name="strMsg"></param> /// <returns></returns> protected bool ChkIntegrity(MDL.News_Type mdlObj, ref string strMsg)// 方法里面用关键字ref声明 { if (mdlObj.NewsType_Name == "") { strMsg = "分类名称不能为空!"; return false; } if (mdlObj.NewsType_ID > 0) // 当编辑修改的情况下 { DataTable dt = GetAllChildren(mdlObj.NewsType_LangVer, mdlObj.NewsType_ID.ToString()); for (int i = 0; i < dt.Rows.Count; i++) { int intNewsType_ID = Convert.ToInt32(dt.Rows[i]["NewsType_ID"]); if (mdlObj.NewsType_ParID == intNewsType_ID) { strMsg = "父节点和子节点死循环!"; return false; } } } return true; } #endregion
同样在BLL的属于方法
在ui层运用的时间要声明ref
代码如下:
string strMsg = ""; string strNews_ID = ""; int intFlag = bllMst.Add(mdlObj, ref strNews_ID, ref strMsg);//如果不够完整,在此strMsg已经发生改变,下面就可以调用的到。。。。 if (intFlag > 0) { string strGoUrl = "NewsImg.aspx?Lang=" + strLangVer + "&News_ID=" + strNews_ID; Response.Redirect(strGoUrl); } else { MessageBox.Show(this, strMsg); }
- 关于引用类型ref的运用
- Ref与引用类型
- ref传递引用类型
- 引用类型:ref,out
- C#中的ref,out,值类型,引用类型的笔记
- C# 引用类型与ref
- 传递引用类型参数(ref)
- C# 引用类型与ref
- 关于 id类型的运用
- 引用传递的参数类型,加不加ref是不同的
- 引用传递的参数类型,加不加ref是不同的
- 引用传递的参数类型,加不加ref是不同的 .
- 引用类型参数使用ref与不使用ref的区别
- C#引用类型参数加ref或out与不加ref或out的区别
- 值类型 引用类型 ref out
- 值类型 引用类型 ref out
- 关于javascript的引用类型
- 关于js的引用类型
- 0-1背包问题
- sqlserver2008中出现错误:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。。。。。。
- uboot详细分析
- 嵌入式程序开发过程
- ubuntu中sudo
- 关于引用类型ref的运用
- MySQL的information_schema
- matlab editor 快捷键
- PC键盘在Mac下Command/Option键切换
- unbuntu apt-get详解
- 学习之心态
- 国外程序员推荐:每个程序员都应读的书
- tiny210 kernel porting
- 查看mysql数据库大小、表大小和最后修改时间