c#学习01

c#学习01

 

 

 

1.演示try catch捕获例子:

public static void getNumber()
  {
      while (true)
         {
           try
           {
              Console.WriteLine("请输入一个数字");
              int number = Convert.ToInt32(Console.ReadLine());
              Console.WriteLine("恭喜您输入对了,您输入的数字是:{0}", number);
              break;
           }
           catch
           {
              Console.WriteLine("输入错了,请重新输入,需要输入阿拉伯数字,就是‘0123456789’这样的数字,你明白吗?");
            }
          }
          Console.ReadKey();
  }

2 :ref参数:更新传递到别的方法中的值。方法a中声明定义的一个变量传到方法b中,在经过方法b更新值后,方法a的值也会跟着更新。
变量定义在类中那么就是这个类的属性,不管在任何地方更新这个对象,只要更新完成所有被引用的这个对象都会同步更新。
变量定义在方法中,由于方法不能像类一样被传递,所以从它被传过去的那一刻开始就属于独立的了,不会再被引用了,从此你是你我是我,各不相干,这就是方法要返回值得作用,就是接受被加工后此值得变化。
在C#中ref关键字就比较牛逼了,在不需要定义对象的情况下就能实现变量随时在不同的方法中更新。需要的时候就用,不需要的时不用,很方便。

 

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string name = "王晓明";
            int age = 28;
            //ref的作用是:被调用方法更新变量值后同步到外层变量上。
            goThailand(ref name, ref age);
            Console.WriteLine("name:{0}\nage:{1}", name, age);
            Console.ReadKey();
            /*
             * 运行结果
             name:杨baby
             age:32
             */
        }

        static void goThailand(ref string name, ref int age)
        {
            name = "杨baby";
            age = 32;
        }
    }
}

 

3.演示out方法的实例:可以接受被调用的方法返回多个不同类型的值,要求out参数必须在方法内赋值:

 

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] sums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
            int ma, mi, su, av;
            string nam;
            testOutMethod(sums, out ma, out mi, out su, out av, out nam);//变量名没要求
            Console.WriteLine("sums数组计算结果:max:{0},min:{1},sum:{2},avg:{3},name:{4}", ma, mi, su, av, nam);
            Console.ReadKey();
            //打印结果:sums数组计算结果:max:9,min:0,sum:45,avg:5,name:aaaaa
        }

        public static void testOutMethod(int[] sums, out int max, out int min, out int sum, out int avg, out string name)
        {
            max = 0;
            min = 0;
            sum = 0;
            for (int i = 0; i < sums.Length; i++)
            {
                if (sums[i] > max)
                {
                    max = sums[i];
                }
                if (sums[i] < min)
                {
                    min = sums[i];
                }
                sum += sums[i];
            }
            avg = sum / sums.Length;
            name = "aaaaa";
        }

    }
}

 

*string类型转int

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            int result;
            //将string类型转为int类型,如果转成功了返回true并且out参数返回转成功后的值,如果失败则返回false也out参数则返回0;
            bool state = int.TryParse("123", out result);
            Console.WriteLine("state:{0}\nresult{1}", state, result);
            Console.ReadKey();
        }


    }
}

*使用io流在指定路径下创建一个txt文件并且往文件中输入内容

 

using System;

namespace ConsoleApp2
{
    class Program
    {
        static void Main(string[] args)
        {
            string content = "写入文本\n中的内容";
            System.IO.File.WriteAllText(@"C:\Users\YanLong.li\Desktop\2bbbbb23.txt", content);//使用流将文件输出并写入进指定的文件夹中
            Console.WriteLine("成功");
            Console.ReadKey();

        }
    }
}

 

c#学习01

上一篇:win10用anaconda安装pytorch下载速度慢的问题解决


下一篇:【C#】从RabbitMQ的消费者事件窥.NET标准事件