C#之Ref,Out以及TryParse()的用法
ref和out用法很简单,我记下来也提醒自己要用更好的方式去写代码,不要让代码过于臃肿,让人看得头痛。直接写
ref:ref关键字就是让参数进行传递,但是需要初始化,而out不需要初始化参数
ref用法:
private static void Main(string[] args)
{
User user = new User()
{
UserName = "张三",
Age = ,
DisPlayValue = ""
};
RefTest(ref user);
Console.WriteLine("用户名:{0};年龄:{1};分类:{2}",user.UserName,user.Age,user.DisPlayValue);
Console.ReadKey();
}
public static void RefTest(ref User user)
{
if (user.Age<)
{
user.DisPlayValue = "未成年人";
}
else if (user.Age<)
{
user.DisPlayValue = "中年人";
}
else
{
user.DisPlayValue = "老年人";
}
}
public class User
{
/// <summary>
/// 用户名
/// </summary>
public string UserName { get; set; }
/// <summary>
/// 年龄
/// </summary>
public int Age { get; set; }
/// <summary>
/// 显示信息
/// </summary>
public string DisPlayValue { get; set; }
}
显示结果:
总结:ref就是自己初始化一个参数,然后这个参数根据业务需要进行改变。
out的方法:这个比较常见,比喻用户添加数据返回值是一个bool,但是有时候插入数据成功时候需要返回一些信息,比喻返回用户插入的UID,插入失败后返回信息等
private static void Main(string[] args)
{
string ErrInfo = string.Empty;
bool result = IsAdmin("admi", out ErrInfo);
Console.WriteLine(ErrInfo);
Console.ReadKey();
}
/// <summary>
/// 是否验证成功
/// </summary>
/// <param name="UserName">用户名</param>
/// <param name="ErrInfo">错误信息</param>
/// <returns></returns>
public static bool IsAdmin(string UserName, out string ErrInfo)
{
bool result = false;
if (UserName=="admin")
{
result = true;
ErrInfo = "成功";
}
else
{
ErrInfo = "登录错误,不是admin";
}
return result;
}
运行结果:

总结:out就是定义一个参数,然后接收操作后返回的信息。
TryParse():
有时候我们需要把string类型转换成int类型,经常用int.Parse(),但是我觉得不如用int.TryParse(),因为int.Parse()会抛出异常如果有错误,如果避免就需要用判断string参数是不是有效,而int.TryParse()却不需要,他会返回true还是false,当false的时候我们还可以设定默认值。个人觉得用int.TryParse()更好下面代码写用法
看下写法:
//此时会返回false
string Str = "122a";
int Number = int.TryParse(Str,out Number) ? Number : -;
//返回true的结果
string Strr = "";
int Numberr = int.TryParse(Strr, out Numberr) ? Numberr : -;
Console.WriteLine("第一个:{0}", Number);
Console.WriteLine("第二个:{0}", Numberr);
运行结果:

C#之Ref,Out以及TryParse()的用法的更多相关文章
- tryParse的用法。
tryParse的用法. int.Parse()是一种类容转换:表示将数字内容的字符串转为int类型.如果字符串为空,则抛出ArgumentNullException异常:如果字符串内容不是数字,则抛 ...
- out与ref以及可空类型用法的用法
1.ref的用法:传递结构 public class A { public int X{get;set;} } public static void changeA(ref A a) { a.X=2 ...
- 【C#笔札】Tryparse的用法
这是参考读物的上得一个例子.自己仿照做的作业 private void button1_Click(object sender, EventArgs e) { int P_int_Number,i; ...
- C#中 int.TryParse 的用法
int i = -1;bool b = int.TryParse(null, out i);执行完毕后,b等于false,i等于0,而不是等于-1,切记. int i = -1;bool b = in ...
- tryparse的用法,^0*[1-9]\d*$
Entry entry = new Entry(); Int32 iParam; if(Int32.TryParse(entry.ajh,out iParam)) { /*如果转换成功就输出iPara ...
- WPF C# int.TryParse的用法
; if (!int.TryParse(item.Tag.ToString(), out comld)) { continue; } 没转换成功就continue 开始写成 if(GetNumber( ...
- TryParse()的用法
DateTime dt = new DateTime(); DateTime.TryParse(txtName.text.trim(),out dt); string str1 = dt.ToStri ...
- TryParse用法示例
int.Parse()是一种类型转换:表示将数字内容的字符串转为int类型.如果字符串为空,则抛出ArgumentNullException异常:如果字符串内容不是数字,则抛出FormatExce ...
- TryParse用法
int.Parse()是一种类型转换:表示将数字内容的字符串转为int类型. 如果字符串为空,则抛出ArgumentNullException异常: 如果字符串内容不是数字,则抛出FormatExce ...
随机推荐
- Kali-linux Arpspoof工具
Arpspoof是一个非常好的ARP欺骗的源代码程序.它的运行不会影响整个网络的通信,该工具通过替换传输中的数据从而达到对目标的欺骗.本节将介绍Arpspoof工具的 使用. 9.8.1 URL流量操 ...
- IO流操作详解
注:FileReader继承InputStreamReader类,InputStreamReader实现Reader接口,其他同理. 对于文件内容的操作主要分为两大类 分别是: 字符流 字节流 其中, ...
- 新闻cms管理系统 (补)-----路由优化一
修改后台的入口文件,将访问后台页面的入口文件设为admin.php,并且访问该文件的模块默认为admin模块. 添加后台入口文件具体操作步骤: (1)项目目录下新建admin.php (2)实现入口文 ...
- RSA加密算法和签名算法
RSA加密算法 RSA公钥加密体制包含如下3个算法:KeyGen(密钥生成算法),Encrypt(加密算法)以及Decrypt(解密算法). .密钥生成算法以安全常数作为输入,输出一个公钥PK,和一个 ...
- ios下元素溢出设置 overflow:auto; 不能滑动解决办法
ios下元素溢出设置 overflow:auto; 不能滑动解决办法: overflow:auto; overflow-y:scroll; -webkit-overflow-scrolling:tou ...
- JavaScript互斥锁案例
朋友今天问起来关于JS中多个函数共享同一个全局变量时,顺序调用执行的函数,前者修改了全局变量值,后调用的函数访问时却为undefined. 前不久开发项目过程中,队友也遇到了同样的问题,索性就写份博客 ...
- android学习:关于RelativeLayout叠放布局的问题
RelativeLayout布局关于元素叠加的问题 1.RelativeLayout布局中的元素如果要实现元素叠加必须设置 RelativeLayout.ALIGN_PARENT_TOP 这样元素 ...
- c#采用emit将DataTable转List
前面已经说了List转DataTable,也整理了代码. 现在转回来说说DataTable转List. 先举一个例子 public class Person { public int Age{get; ...
- POJ2311 Cutting Game(博弈论)
总时间限制: 1000ms 内存限制: 65536kB 描述 Urej loves to play various types of dull games. He usually asks other ...
- 【学时总结】 ◆学时·III◆ 二分图
[学时·III] 二分图 ■基本策略■ 其实本质是图论中的网络流 二分图是两个由多个点组成的集合(上部和下部,且没有重叠),两个集合中的点不与该集合内其他的点连通,但和另一个集合内的点连通.我们称这两 ...