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()的用法的更多相关文章

  1. tryParse的用法。

    tryParse的用法. int.Parse()是一种类容转换:表示将数字内容的字符串转为int类型.如果字符串为空,则抛出ArgumentNullException异常:如果字符串内容不是数字,则抛 ...

  2. out与ref以及可空类型用法的用法

    1.ref的用法:传递结构 public class A { public int X{get;set;} } public static void changeA(ref A a) { a.X=2 ...

  3. 【C#笔札】Tryparse的用法

    这是参考读物的上得一个例子.自己仿照做的作业 private void button1_Click(object sender, EventArgs e) { int P_int_Number,i; ...

  4. C#中 int.TryParse 的用法

    int i = -1;bool b = int.TryParse(null, out i);执行完毕后,b等于false,i等于0,而不是等于-1,切记. int i = -1;bool b = in ...

  5. tryparse的用法,^0*[1-9]\d*$

    Entry entry = new Entry(); Int32 iParam; if(Int32.TryParse(entry.ajh,out iParam)) { /*如果转换成功就输出iPara ...

  6. WPF C# int.TryParse的用法

    ; if (!int.TryParse(item.Tag.ToString(), out comld)) { continue; } 没转换成功就continue 开始写成 if(GetNumber( ...

  7. TryParse()的用法

    DateTime dt = new DateTime(); DateTime.TryParse(txtName.text.trim(),out dt); string str1 = dt.ToStri ...

  8. TryParse用法示例

      int.Parse()是一种类型转换:表示将数字内容的字符串转为int类型.如果字符串为空,则抛出ArgumentNullException异常:如果字符串内容不是数字,则抛出FormatExce ...

  9. TryParse用法

    int.Parse()是一种类型转换:表示将数字内容的字符串转为int类型. 如果字符串为空,则抛出ArgumentNullException异常: 如果字符串内容不是数字,则抛出FormatExce ...

随机推荐

  1. 【jQuery】Deferred(延迟)对象

    本文针对jQuery-todolist项目中使用到的Deferred(延迟)对象进行具体分析 $.Deferred() 是一个构造函数,用来返回一个链式实用对象方法来注册多个回调,并且调用回调队列,传 ...

  2. 文件断点上传,html5实现前端,java实现服务器

    断点上传能够防止意外情况导致上传一半的文件下次上传时还要从头下载,网上有很多关于断点的实现,这篇文章只是从前到后完整的记录下一个可用的实例,由于生产环境要求不高,而且就是提供给一两个人用,所以我简化了 ...

  3. Linux BLE 基于 树莓派

    1.参考资料:Linux(RaspberryPi)上使用BLE低功耗蓝牙 使用bluez协议栈方法有用 2.Linux下Bluez的编程实现 3.和菜鸟一起学linux之bluez学习记录2 4.BL ...

  4. oracle数据库——常用的数据类型

    2018-12-19    23:08:03 oracle数据库中常用的数据类型有23种,我们把数据类型分为字符型.数字型.日期型和其他数据类型. 一.字符型: 数据类型 取值范围 (字节) 说明 v ...

  5. TXT文件转换成DataSet数据集

    /// <summary> /// TXT文件转换成DataSet数据集 /// </summary> /// <param name="FilePath&qu ...

  6. StackStorm利用CORS null origin获得RCE (CVE-2019-9580)

    在2.10.3/2.9.3之前,如果请求的来源未知,我们将返回null,null可以导致某些客户端中来自未知来源的成功请求,允许针对StackStorm API进行XSS样式攻击. (Firefox上 ...

  7. Elastix 2.4 双服务器热备搭建文档

    一.     背景知识 本文档将会用到以下两个重要的组件: a)     DRBD DRBD的全称为:Distributed Replicated Block Device,意为分布式块设备复制, D ...

  8. python2与python3的input函数的区别

    Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型. Python2.x 中 input() 相等于 eval(raw_input(prompt)) ,用来获 ...

  9. mongodb学习一(使用mongoResposity)

    最近公司做一个项目用到了mongodb,下面来介绍一下MongoRepository接口. 大家可以类比Hibernate的jpa,MongoRepository是一个springdata提供的一个有 ...

  10. Elasticsearch 6.3.1、Head插件 安装及配置

    安装Elasticsearch Elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch 也可以直接使用wget下载到某目 ...