C#学习笔记之有趣的关键字

因为在大学期间没有真正意义的学习C#语言,我决定在这一段时间好好的了解并学习C#语言,今天看到了一些我以前没有见过的东西,拿出来分享一下

params

这个关键字很有趣,代码如下:

static int SumVals(params int[] vals)

    {

        int sum = 0;

        foreach(int a in vals)

        {

            sum += a;

        }

        return sum;

    }

    static void Main(string[] args)

    {

        int[] a = {1,3,5,7};

        int sum = SumVals(a);

        Console.WriteLine("Summed Values = {0}", sum);

        Console.ReadKey();

    }

这个关键字可以存很多的参数。

ref和out

这两个关键字和C++的取地址符号的作用很像,比如

c++: void doubleNum(int &e);

c# : static void doubleNum(ref int e1) or static void doubleNum(out int e2)

但是,ref关键字中的e1必须经过初始化,在函数中,任何修改e1的行为都会改变e1,相当于传递“引用”参数这种感觉,和上面c++的作用差不多,不过非常量的参数是不合法的,假设e1是 const int e1 = 1;这样就是非法的。

out的参数可以是未被初始化的,如果参数被初始化且赋值,一般情况下那个值会丢失,并且在函数中是通过赋值的形式改变其参数的,比如e2 =1;这样,假设一个函数是这样的 static void doubleNum(out int x,out int y),那么是不允许x=y这种行为的。

补C#真麻烦,好困 睡觉了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,399评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,930评论 18 399
  • 10#数据类型 合并数组和非合并数组 合并数组:存储方式是连续的,中间没有闲置空间。例如,32bit的寄存器,可以...
    constant007阅读 33,438评论 0 18
  • 多态 任何域的访问操作都将有编译器解析,如果某个方法是静态的,它的行为就不具有多态性 java默认对象的销毁顺序与...
    yueyue_projects阅读 4,545评论 0 1
  • 文/若雪 你是一朵幽兰 芳香一丝一丝从你的身体泄出 不论你躲在多深的幽谷 却还是被贪婪的魔鬼 闻到了你的气息 他开...
    玉人初上阅读 2,944评论 3 13