• Review1(C#语言基础)


    MeshFilter决定了物体时什么形状

    MeshRender决定了物体时的外观;

    运行时常量:readonly

    1.readonly string NAME_READONLY = "readonly string";

    2.//正确,可定义任意数据类型
     readonly Program PROGRAM_READONLY = new Program();
    3.结构:继承自system,object  不允许继承

    例如struct Point
    {
        public int x;
        public int y;
        public Point(int x, int y)
        {
            this.x = x;
            this.y = y;
        }
    }

    4.枚举类型:

    所有枚举类型默认继承自System.Enum类型,System.Enum继承自System.ValueType。故枚举为结构类型。

    //:long表括示基础类型是long
    //如果不写则默认为int
    enum Alignment : long
    {
        //=也可不写,默认则是以0开始,依次加1
        Left = -1,
        Center = 0,
        Right = 1
    }

    public class Test
    {
        static void Main()
        {
            //初始化一个枚举变量
            Alignment alignment = Alignment.Left;
            //输出:Left
            Console.WriteLine(alignment);
            //输出:-1
            Console.WriteLine((long)alignment);
            //获得基础类型
            Type underlyingType = Enum.GetUnderlyingType(typeof(Alignment));
            //输出:System.Int64
            //解释:[long关键字映射的类型为System.Int64]
            Console.WriteLine(underlyingType.FullName);
        }
    }

    5.数组

    public class Test
    {
        static void Main()
        {
            //元素个数为3的int类型数组
            int[] ages = new int[3];
            //3 X 3的多维数组
            int[,] i = new int[3, 3];
            //交错数组
            int[][] j = new int[2][];
            j[0] = new int[2] { 3, 4 };
            j[1] = new int[3];
            //输出:4
            Console.WriteLine(j[0][1]);
        }
    }
    6.字符串:

    写程序中很大一部分的时间都是在和字符串打交道。微软给出的.NET类库中也给出了一些字符串处理的类型。
    C#中的常用字符串处理类:
    System.String
    System.Text.StringBuilder
    利用String类可以进行字符串的创建,截取,替换,合并等等操作。也可以用“+”方便的进行字符串的合并。
    大写String与小写string是完全相同的,大写是指.NET类库中的String类型,小写是C#关键字,也是对应到String这个类型上去的。比如在C#中int和Int32也是这样对应的。
    String的特别之处:
    不变性;
    读共享,写复制;
    字符串驻留技术;
    String是引用类型,但其值确是不可变的,即是指已经赋值就不能再改变。针对字符串的一些操作(如合并、截取)都会产生出新的String对象。
    由于写复制的特性,在一些需要大量合并字符串的场合就会产生出很多临时性的String对象,然后又被丢弃,浪费掉不少内存。所以类库中有另一个System.Text.StringBuilder类型来高效的拼接字符串。
    public class Test
    {
        static void Main()
        {
            String name = "[ 小明";
            //合并字符串
            name = name + " 20岁";
            name = name + " 男生      ]";
            Console.WriteLine(name);//[ 小明 20岁 男生      ]    
            //替换空格为"-"
            name = name.Replace(' ', '-');
            Console.WriteLine(name);//[-小明-20岁-男生------]
        }
    }



    public class Test
    {
        static void Main()
        {
            System.Text.StringBuilder stringBuilder =
                            new System.Text.StringBuilder();
            for (int i = 0; i < 1000; i++)
            {
                //追加字符串
                stringBuilder.Append(i.ToString() + "|");
            }
            //输出:1|2|3|4|5.....999|
            Console.WriteLine(stringBuilder.ToString());
        }
    }

    7.委托:

    a,

    委托类型 (delegate type) 表示对具有特定参数列表和返回类型的方法的引用。通过委托,我们能够将方法作为实体赋值给变量和作为参数传递。委托类似于在其他某些语言中的函数指针的概念,但是与函数指针不同,委托是面向对象的,并且是类型安全的。

    委托声明定义一个从System.Delegate 类派生的类。委托实例封装了一个调用列表,该列表列出了一个或多个方法,每个方法称为一个可调用实体。对于实例方法,可调用实体由该方法和一个相关联的实例组成。对于静态方法,可调用实体仅由一个方法组成。用一个适当的参数集来调用一个委托实例,就是用此给定的参数集来调用该委托实例的每个可调用实体。

     b,委托特性

    将方法作为参数传递
    通常传递的是变量(字段),委托则是传递方法
    回调方法
    底层代码定义方法签名的类型(委托),定义委托成员
    上层代码创建方法,创建委托实例,让需要调用的方法传给底层
    底层通过调用委托,调用上层方法
    多路广播
    可以同时维持多个方法的引用(+=、-=)
    委托是类型安全的
    DelegateA da;DelegateB db;即使函数签名相同,也不能执行da=db;
    委托类型都是密封的(sealed)
    不能继承

    c,委托的重要成员

    Target
    object类型的属性,指向回调函数所属的对象实例(对于实例方法来言)
    引用的方法是静态方法时,Target为null
    Method
    System.Reflection.MethodInfo类型的属性,指向回调函数
    Invoke
    函数,同步执行委托
    BeginInvoke
    开始异步执行委托
    EndInvoke
    完成异步执行

  • 相关阅读:
    UILabel 设置字体间的距离 和 行与行间的距离
    IB_DESIGNABLE 和 IBInspectable 的使用
    干货博客
    GitHub克隆速度太慢解决方案
    实时(RTC)时钟,系统时钟和CPU时钟
    折腾了好久的vscode配置c/c++语言环境(Windows环境下)
    c语言中的malloc函数
    记录一下关于在工具类中更新UI使用RunOnUiThread犯的极其愚蠢的错误
    记录关于Android多线程的一个坑
    Android中限制输入框最大输入长度
  • 原文地址:https://www.cnblogs.com/ningyongbin/p/7120546.html
Copyright © 2020-2023  润新知