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
完成异步执行

Review1(C#语言基础)的更多相关文章

  1. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  2. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...

  3. C#语言基础

    第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...

  4. C语言基础回顾

    第一章 C语言基础 1.  C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...

  5. 黑马程序员_ C语言基础(二)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述):   1.Hello W ...

  6. C#语言基础— 输入与输出

    C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...

  7. 【GoLang】GO语言系列--002.GO语言基础

    002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...

  8. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  9. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  10. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

随机推荐

  1. 07#Web 实战:仿 GitHub 个人主页项目拖拽排序

    实现效果图 GitHub 和 Gitee 个人主页中可以对自己的项目进行拖拽排序,于是我就想自己实现一个.本随笔只是记录一下大概的实现思路,如果感兴趣的小伙伴可以通过代码和本随笔的说明去理解实现过程. ...

  2. 【linux系统安装】Anolis OS-龙蜥操作系统实机安装流程整理

    [安装准备] 1.准备一个U盘,可储存空间不低于20G,U盘内资料移出去,待会儿要格式化做U盘启动盘 2.windows操作系统上下载"Rufus",官网:http://rufus ...

  3. js 获取和回填form表格数据

    //将form里面的内容序列化成json数据 $.fn.serializeJson = function (otherString) { var serializeObj = {}, array = ...

  4. python判断文件后缀名

    endswith()方法 利用文件名或路径名对文件后缀进行判断,例如对文件名后缀是否为.jpg的文件进行判断. path = "file.jpg" bool = path.ends ...

  5. python服务返回text与json

    json.dumps(),loads()和jsonify()的区别 使用方法不同: dumps和loads方法,来自json模块,而json模块是python中的,可以直接导入: import jso ...

  6. js 对象命名

    JS 标识符的命名规则,即变量的命名规则: 标识符只能由字母.数字.下划线和'$'组成 数字不可以作为标识符的首字符 对象属性的命名规则 通过[]操作符为对象添加属性时,属性名称可以是任何字符串(包括 ...

  7. PCIe卡设计资料保存:536-基于ZU7EV的FMC 通用PCIe卡

    基于ZU7EV的FMC 通用PCIe卡   一.板卡简介 基于3U PXIe的ZU11EG/ZU7EG/ZU7EV的通用 ,实现FMC的数据接口和主控计算,广泛应用于工业控制,检测,视觉处理.支持工业 ...

  8. 01_windows、linux互ping不通解决方式

    一.NAT设置(NAT模式可访问公网,可连接本机,不可访问局域网) 1.编辑-->虚拟网络编辑器 2.设置NAT模式 二.配置Linux静态ip地址 1.命令:setup 2.配置完毕重启网卡: ...

  9. Linux 部署apache2.4

    apache httpd-2.4.46.tar.gz部署环境 Linux6.5 依赖包: apr-1.6.3.tar.gz apr-util-1.5.2.tar.gz 先部署apr 1.tar -xf ...

  10. LINQ中AsQueryable()和AsEnumerable()区别

    在进行EF数据查询时,AsEnumerable()会直接生成将LINQ语句生成sql脚本并到数据库中执行,并将结果加载到内存中,后续操作都是操作内存中的对象: AsQueryable()则可继续进行L ...