C#记录一


@符号的作用


//编译器不会去识别字符串中的转移字符
            string str1 = "I'm a good man \n You are a bad girl1";
            string str2 = @"I'm a good man \n You are a bad girl2";//转义字符不识别
//如果需要在字符串中表示一个双引号,需要使用两个双引号
            string str3 = @"I'm a good man \n"" You are a bad girl3";
//当字符串前面加上一个@,可以把字符串定义在多行
            string str4 = @"I'm a good man,
        You are a bad gile4";
//使用@的第二个好处:地址的时候不需要双斜线
            string path = "c:\\xxx\\xx\\xxx.doc";
            string path1 = @"c:\xxx\xx\xxx.doc";

输出如下图
这里写图片描述

参数数组

通过关键字params定义参数数组,paras类型参数主要用于在对数组长度未知(可变)的情况下进行函数声明,调用时可以传入个数不同的实参,具备很好的灵活性。

class Program
    {
        static int Sum(int[] array)//传入数组来求和,
        {
            int sum = 0;
            for(int i=0;i<array.Length;i++)
            {
                sum += array[i];
            }
            return sum;
        }

        //定义一个参数个数不确定的参数—参数数组
        static int Plus(params int[] array)//定义一个参数数组,int类型的参数数组
        {
            int sum = 0;
            for (int i = 0; i < array.Length; i++)
            {
                sum += array[i];
            }
            return sum;
        }

        static void Main(string[] args)
        {
            int sum = Sum(new int[] { 12, 12, 12, 12 });//一般函数需要传入数组
            Console.WriteLine(sum);

            //调用参数数组
            int sum2 = Plus(23, 2, 23, 3, 2, 1, 2, 2);//只需要传入数组类型的值就可以,个数随意
            Console.WriteLine(sum2);
            Console.ReadKey();
        }
    }

需要注意的有:
1、只能在一维数组上使用params关键字。
2、不能重载一个只基于params关键字的方法。params关键字不构成方法的签名的一部分。
3、不允许ref或out params数组
4、params 数组必须是方法的最后一个参数(也就是只能有一个params数组参数)

委托

    //委托是一种存储函数引用的类型
    //简单的说,就是定义一个变量来指向一个函数

    //声明一个委托和函数差不多,
    //区别一:定义委托需要加上delegate关键字
    //区别二:委托定义不需要函数体
    public delegate double MyDelegate(double param1, double param2);

    class Program
    {
        static double Multiply(double param1,double param2)
        {
            return param1 * param2;
        }

        static double Divide(double param1,double param2)
        {
            return param1 / param2;
        }
        static void Main(string[] args)
        {
            MyDelegate de;//利用委托来声明变量,此时变量可以指向一个函数
            de = Multiply;//当我们给委托对象赋值的时候,返回值和参数列表必须一样,否则无法赋值。
            Console.WriteLine(de(2.0, 34.1));
            de = Divide;
            Console.WriteLine(de(2.0, 34.1));
            Console.ReadKey();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值