C#之Ref,Out以及TryParse()的用法

ref和out用法很简单,我记下来也提醒自己要用更好的方式去写代码,不要让代码过于臃肿,让人看得头痛。代码很少,直接写

ref:ref关键字就是让参数进行传递,但是需要初始化,而out不需要初始化参数

ref用法

   private static void Main(string[] args)
        {
            User user = new User()
            {
                UserName = "张三",
                Age = 13,
                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<18)
            {
                user.DisPlayValue = "未成年人";
            }
            else if (user.Age<40)
            {
                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();
        }

 private static void Main(string[] args)
        {
            User user = new User()
            {
                UserName = "张三",
                Age = 13,
                DisPlayValue = ""
            };
            RefTest(ref user);
            Console.WriteLine("用户名:{0};年龄:{1};分类:{2}",user.UserName,user.Age,user.DisPlayValue);
            string ErrInfo = string.Empty;
            bool result = IsAdmin("admi", out ErrInfo);
            Console.WriteLine(ErrInfo);
            Console.ReadKey();
        }

运行结果:

总结:out就是定义一个参数,然后接收操作后返回的信息。

TryParse():

有时候我们需要把string类型转换成int类型,经常用int.Parse(),但是我觉得不如用int.TryParse(),因为int.Parse()会抛出异常如果有错误,如果避免就需要用判断string参数是不是有效,而int.TryParse()却不需要,他会返回true还是false,当false的时候我们还可以设定默认值。个人觉得用int.TryParse()更好下面代码写用法

看下写法:

private static void Main(string[] args)
        {
            //此时会返回false
            string Str = "122a";
            int Number = int.TryParse(Str,out Number) ? Number : -1;
            //返回true的结果
            string Strr = "12345";
            int Numberr = int.TryParse(Strr, out Numberr) ? Numberr : -1;
            Console.WriteLine("第一个:{0}", Number);
            Console.WriteLine("第二个:{0}", Numberr);
            Console.ReadKey();
        }
运行结果:

时间: 2024-11-08 05:07:54

C#之Ref,Out以及TryParse()的用法的相关文章

tryParse的用法。

tryParse的用法. int.Parse()是一种类容转换:表示将数字内容的字符串转为int类型.如果字符串为空,则抛出ArgumentNullException异常:如果字符串内容不是数字,则抛出FormatException异常:如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常: int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false.最后一个参数为输出值,如果转换失

【C#笔札】Tryparse的用法

这是参考读物的上得一个例子.自己仿照做的作业 private void button1_Click(object sender, EventArgs e) { int P_int_Number,i; if (int.TryParse(n1.Text, out P_int_Number) && int.TryParse(n2.Text, out i)) { Result.Text = (P_int_Number ^ i).ToString(); } else { MessageBox.Sho

tryparse的用法

Entry entry = new Entry(); Int32 iParam; if(Int32.TryParse(entry.ajh,out iParam)) { /*如果转换成功就输出iParam不必转换因为 当此方法返回时,如果转换成功,则包含与 s 所包含的数字等效的 32 位有符号整数值:如果转换失败,则包含零. 如果 s 参数为 null,格式不正确,或者表示的数字小于,返回值是布尔类型*/ } else { //如果转换失败就输出entry.ajh,第一个参数是个string类型

C#值参数和引用参数,方法的重载,foreach,数组,以及ref和out的用法

1.方法的传输传递 值参数:传递的是副本 引用参数:自身 保留自定义的方法中对值的改变 形参影响实参ref:对应的形参和实参都用ref修饰 输出参数:实参不用赋值,但是自定义方法内必须对此参数赋值!!! 把自定义方法产生的结果带回调用处out:对应的形参和实参都用out修饰 必须在自定义方法中赋值 注:如果需要返回一个参数 使用return 如果需要反回多个参数 使用ref 或者 out TryParse用法:自行判断转换是否成功 转换成功反回true 转换失败返回false 例: bool f

java程序

This XML file does not appear to have any style information associated with it. The document tree is shown below.博客园_首页代码改变世界uuid:5de59c50-a92f-4447-96ed-ab86451ed183;id=61182014-07-27T11:59:08Zfeed.cnblogs.comhttp://www.cnblogs.com/jianyus/p/3865670

.NET基础笔记(C#)

闲着没事就把以前学习时的笔记拿出来整理了一下,个人感觉有点用,就想拿出来跟园友共享一下.有些基础性的内容比如基本概念.语法什么的就不发了. 内容:1.构造方法(函数) 2.继承   3.访问修饰符  4.静态和非静态  5.隐藏基类方法  6.重写基类方法  7.抽象方法  8.接口  9.多态和接口  10.值类型与引用类型  11.ref和out  12.类型转换  13.异常处理  14.string字符串处理  15.string常用方法  16.StringBulider  17.Fi

methods for ndarray

http://blog.csdn.net/pipisorry/article/details/41214819 在Python中使用help帮助 >>> import numpy >>> help(numpy.argsort) argsort函数用法:(numpy-ref-1.8.1P1240) argsort(a, axis=-1, kind='quicksort', order=None) Returns the indices that would sort an

System.Array 类提供了许多有用的方法和属性,用于排序、搜索和复制数组。

数组是引用类型,数组作为方法的参数使用时,应注意in.ref.out声明的用法. 第4章  C#语句 32 4.1  使用break语句 33 break 语句用于终止最近的封闭循环或它所在的switch语句. 4.2  使用continue语句 34 continue 语句将控制权传递给它所在的封闭迭代语句的下一次迭代. 4.3  使用do语句 36 do 语句重复执行{}中的一个语句或语句块,直到指定的表达式计算为 false. 4.4  使用foreach语句 37 foreach 语句为

使用Shiro重写Session

先看下我们的基本用法: @RequestMapping("/index") public ModelAndView index(HttpSession session){     System.out.println(session.getId());     ModelAndView modelAndView = new ModelAndView("main/index");     return modelAndView; } 如果我们添加断点进行调试,可以看到