• 前端之前,先学学C# [误


    因为课题的原因,现在还要先用一下Unity,Github上的源码个个如此炫酷以至于没有c#基础的我根本看不懂……

    买了一本c#入门对着敲代码,现在多少懂一点了。比如下面这一段对泛型类型的编写。

    using System;
    using System.Collections.Generic;
    
    namespace CustomGenericType
    {
        struct Point<T>
        {
            T x;
            T y;
            public Point(T x, T y)
            {
                this.x=x;
                this.y=y;
            }
            public T X
            {
                get {return x;}
                set {this.x=value;}
            }
            public T Y
            {
                get {return y;}
                set {this.y=value;}
            }
    //这个里面value还是第一次见,大概就是说把setter的参数拿来用
            public void Print()
            {
                Console.WriteLine("({0},{1})",x,y);
            }
        }
    }

    好吧我根本不懂啥叫泛型类型,但是感觉这个东西就是做一个模板,里面两个变量,这两个变量先不声明什么类型,反正啥类型都行,所以就叫泛型是吧?

    里面有几点是之前没看到过的

    • Point<T>以及下面的 T x; T y;因为是泛型所以也没什么可说的了,就把T当做接受类型的一个坑吧
    • Point(T x, T y)这个应该就是Point在外面用到的constructor吧,比如如果写Point(int a, int b)?其实不是这么写的,例程里面写的是
    Point<double> b=new Point<double> (12.3, 244.4);
    //对了,这里直接写小数,后面没跟f,所以是double类型
    • getter and setter,呃,也是啊,getter and setter肯定不止objective c才有啊…… 不过比较有意思的是X和Y是大写。然后如果要在外面用到get或者set的话呢:
    a.x=2;
    //这样子是不行的,会报错说inaccessible due to protection level.
    a.X=2;
    //这样子就ok了,因为这里的X是之前声明好的一个Setter and getter

    总之呢这一段代码敲完有几个收获

    • c#也是有getter and setter的(废话),而且简单粗暴的读取和改写一个class里面的变量是非常不绅士的,通过Getter and setter来吧。
      •   改变大小写也是一个给getter and setter起名字的好办法呢
    • 泛型这个东西,还真是很有意思呢,这样一套模板建起来就可以根据实际需要反复去用了。嗯,这也就是所谓的提升代码复用性?
    • 泛型类型的新建也是要像List,Dictionary那样 Point然后<>再然后才是(),不要直接把类型放进括号里面了,话说放进去是为啥……
  • 相关阅读:
    zabbix监控nginx的性能
    常用iptables命令
    shell脚本小示例
    打印菜单脚本
    ping主机脚本
    Linux网络配置脚本
    多磁盘自动分区自动挂载脚本
    深入js系列-类型(null)
    深入js系列-类型(开篇)
    first-child、last-child误解
  • 原文地址:https://www.cnblogs.com/SiumingLearning/p/SiumingLearningC_Sharp1.html
Copyright © 2020-2023  润新知