【学习资料】

  《C#图解教程》(第2~12章):https://www.cnblogs.com/moonache/p/7687551.html
  电子书下载:https://pan.baidu.com/s/1mhOmBG0

【内容】

    • 标识符命名
    • 值类型及取值范围
    • 栈与堆(数据存储方式)
    • 特殊运算符
    • 对象类型(object)
    • 访问修饰符(public、private、protected、internal)
    • 可空类型(?、??、Nullable)
    • 数组
      • 一维数组
      • 二维数组(矩形数组)
      • 交错数组(每行个数可不同,单独new)
    • 扩展知识

      • 字符串的@
      • 值类型、引用类型、ref 的区别
      • 二进制表示
      • 位运算溢出问题

【笔记】

  • 标识符命名

    • 标识符必须以 字母下划线(_) 或 @ 开头,后面可以跟一系列的 字母、数字(0-9)、下划线(_)

    • 不能使用C#保留的关键字,如 if,但可以为 @if

  • 值类型及取值范围

    • 常量前缀指定基数

      • 十进制:没有前缀

      • 十六进制:0x 或 0X 。如:0x10 表示 十进制 16

      • 八进制:0 。如:010 表示 十进制 8

      • 二进制:0b 。如:0b10 表示 十进制 2

    • 常量后缀指定精度(U 和 L 分别表示unsigned和long)

      • u 或 U : 10U    表示 uint

      • l 或 L   : 10L    表示 long

      • LU组合: 10LU 表示 ulong

  • 栈与堆(数据存储方式)

    传送门:https://www.cnblogs.com/shahdza/p/12236770.html

  • 特殊运算符

  • 对象类型(object)

    • 所有类型的最终基类(包括值类型、struct、class)都是object。

    • 装箱:将 值类型 转为 object        

    • 拆箱:将 objec t转为 值类型

    • 箱/拆箱会产生一定的消耗,尽量少用。

  • 访问修饰符

public 所有对象
private 只有本类的内部函数
protected 本类及子类内部函数
internal 同一程序集(dll)
protected internal 同一程序集(dll),或 其他程序集的子类内部函数
  • 可空类型(Nullable、?、??)

    • int? i = 3 等同于 Nullable<int> i = new Nullable<int>(3)

    • int i;   // 默认值为0

    • int? i; // 默认值为null

    • 合并运算符(??):num3 = num1 ?? 5.34;  // num1 如果为空值则返回 5.34

  • 数组(Array)

    • 一维数组:int[] numbers = new int[10];

      • 初始化:= new int[]  {1, 2, 3, 4, 5};

      • 初始化:= {1, 2, 3, 4, 5};

    • 二维数组:string[,] names = new string[5, 4];

      • 每行个数固定相同(都是4)

      • 初始化:= { {"a", "b", "c", "d"} , {"e", "f", "g", "h"} };

    • 交错数组:byte[][] scores = new byte[5][]

      • scores[i] = new byte[i + 3]

      • 每行个数可以不同

      • 初始化:= {new int[]{1,2,3} , new int[]{1,2,3,4} };

    • 不同数组示意图

        

    • 二维数组和交错数组的内存结构

        


【扩展知识】

  • 字符串的@
    • @(称作"逐字字符串")将 转义字符(\)当作普通字符对待
    • 如:

      • @"Hello \n World" : 其中\n不会被转义,而是单做普通字符处理;
      • 路径:@"C:\xxx\xxx.doc" 等价于 "C:\\xxx\\xxx.doc"
      • 如果要在@的字符串中使用双引号("),需要用2个双引号"" (而不是 \")
  • 值类型 、引用类型 、ref

    • 值类型:当形参值改变时,实参值不变;相当于 形参是实参的拷贝,是不同的对象

    • 引用类型:当形参值改变时,实参值也会改变;相当于 形参和实参,指向同一个对象,但形参和实参不是一个变量(类似指针变量)

    • 引用传递ref:与“引用类型”区别在于,形参与实参是同一个变量(相当于取个别名)

    • class C
      {
      public int value = ;
      }
      // 实参和形参是2个变量,但指向同一个对象
      void changeC1(C c)
      {
      c.value = ;
      c = new C();
      c.value = ;
      }
      // ref : 形参是实参的引用,是同一个变量
      void changeC2(ref C c)
      {
      c.value = ;
      c = new C();
      c.value = ;
      } // 调用
      C m_c1 = new C(); //
      C m_c2 = new C(); //
      changeC1(m_c1); // 结果为 10
      changeC2(ref m_c2); // 结果为 30
  • 二进制表示

      

 

  • 位运算(& | ^ ~ << >>)

    • & 、| 、^ 、~ :符号位参与运算

      • 1 & -1 = 1

      • 1 | -1 = -1

      • 1 ^ -1 = -2

      • -1 ^ -8 = 7

      • ~1 = -2

      • ~-1 = 0

      • ~-8 = 7

    • << :符号位参与运算;高位丢弃,低位补0

      • -2147483646 << 1 = 4

      • -2147483646 << 29 = 1073741824

      • -2147483646 << 30 = -2147483648

      • -2147483646 << 31 = 0

      • -2147483646 << 32 = -2147483646

      • -2147483646 << 33 = 4

    • >>

      • 有符号:

        • C#   :补符号位(算术右移)

        • C++:各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

      • 无符号:高位补0

      • -1 >> 1 = -1

      • -1 >> 2 = -1

      • -127 >> 1 = -64

      • -127 >> 6 = -2

      • -127 >> 7 = -1

      • -127 >> 8 = -1

      • -127 >> 31 = -1

      • -127 >> 32 = -127

      • -127 >> 33 = -64

 

【Unity|C#】基础篇(1)——基础入门的更多相关文章

  1. 1.基础篇之vue入门

    为了建立高效团队,很多公司会采用全栈工程师,虽然利弊兼有,对于成本优先的创业团队,肯定是首选,特别是对.net生态圈,大部分都是小公司,就更加重要了.这里记录的是对vue的学习点滴,希望对你有所助力. ...

  2. iOS开发基础篇-Button基础

    一.简单介绍  UIButton 的功能:响应用户操作.显示文字.显示图片.调整内部图片和文字的位置. 二. UIButton 的状态  UIControlStateNormal :普通状态,为默认情 ...

  3. SpringBoot基础篇-SpringBoot快速入门

    SpringBoot基础 学习目标: 能够理解Spring的优缺点 能够理解SpringBoot的特点 能够理解SpringBoot的核心功能 能够搭建SpringBoot的环境 能够完成applic ...

  4. JavaSE基础篇—MySQL基础知识点

    MySQL MySQL是一种关系数据库管理系统,是一种开源软件.可搭配PHP和Apache可以有更好的性能,也可以工作在众多的平台上.Orcale是一个数据库创建多个用户,MySQL是一个用户创建多个 ...

  5. Python学习之路基础篇--08Python基础+ 文件的基本操作和 注册小作业

    1 文件的基本操作 #1. 打开文件的模式有(默认为文本模式): r ,只读模式[默认模式,文件必须存在,不存在则抛出异常] w,只写模式[不可读:不存在则创建:存在则清空内容] a, 只追加写模式[ ...

  6. python基础篇_002_基础数据类型

    Python基础数据类型 1.int # int 用于计算 num = 3 # int 与其他数据类型转换 int_to_str = str(num) # 数字加引号 print(int_to_str ...

  7. Python学习之路基础篇--02Python基础+小作业

    1 变量 变量就是将一些运算的中间结果暂存到内存中,以便后续代码调用.必须由数字,字母,下划线任意组合,且不能数字开头.不能是python中的关键字,如['and', 'as', 'assert', ...

  8. Extjs 基础篇—— Function基础

    这里主要是JS的基础知识,也是深入理解Ext的基础.1.参数可变长,注意跟Java还是有一点区别的.例: 1.function getUser(name,age){ 2.alert("nam ...

  9. 学习笔记三:基础篇Linux基础

    Linux基础 直接选择排序>快速排序>基数排序>归并排序 >堆排序>Shell排序>冒泡排序=冒泡排序2 =直接插入排序 一.Linux磁盘分区表示 Linux中 ...

随机推荐

  1. 2019牛客多校2 F Partition problem(dfs)

    题意: n<=28个人,分成人数相同的两组,给你2*n*2*n的矩阵,如果(i,j)在不同的组里,竞争力增加v[i][j],问你怎么分配竞争力最 4s 思路: 枚举C(28,14)的状态,更新答 ...

  2. UVA1623 Enter The Dragon (贪心)

    题意: m个坑,n天,起初每个坑都是满的,每天至多有一个坑会下雨,下雨就会满,满了再下就输出no. 在没有雨的时候可以安排龙来喝水,把坑喝空,可行的话输出龙喝水的方案 思路: 边读入边操作,set保存 ...

  3. I fullly understand why can not set "auto commit off" in sqlserver

    This is xxxxx Because MES guy mistaken , the data was wrong and made system error then. After that I ...

  4. Go语言实现:【剑指offer】丑数

    该题目来源于牛客网<剑指offer>专题. 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7.习惯上我们把1当做是第一个丑 ...

  5. 独立磁盘冗余阵列-RAID

    一.RAID概述 RAID(Redundant Array of Independent Disks)即独立冗余磁盘阵列 磁盘阵列就是.由很多块廉价磁盘 组成的一个容量巨大的卷组.然后在使用不同级别的 ...

  6. 《Head first设计模式》学习笔记

    1. 单例模式 2. 工厂模式 3. 抽象工厂 4. 策略模式 5. 观察者模式 6. 装饰者模式 7. 命令模式 8. 适配器模式 9. 外观模式 10. 模版方法模式 11. 迭代器模式 设计模式 ...

  7. golang函数 和 条件语句

    /* if : if 语句 由一个布尔表达式后紧跟一个或多个语句组成 is else : if 语句 后可以使用可选的 else 语句, else 语句中的表达式在布尔表达式为 false 时执行 s ...

  8. CentOS安装-(CentOS7)最小化安装

    镜像:CentOS-7-x86_64-DVD-1908.iso 1.将安装光盘插入服务器,开机会读取系统安装程序,选择 Install CentOS 7 2.安装过程是图形界面,可以选择熟悉的语言执行 ...

  9. 《自拍教程24》在Windows上配置环境变量

    我们说的环境变量,一般是指的是Path环境变量. 第一步:点击"我的电脑",右键,"属性" 第二步:点击"高级系统设置",弹出的窗口选&qu ...

  10. 在Ubuntu上部署一个基于webrtc的多人视频聊天服务

    最近研究webrtc视频直播技术,网上找了些教程最终都不太能顺利跑起来的,可能是文章写的比较老,使用的一些开源组件已经更新了,有些配置已经不太一样了,所以按照以前的步骤会有问题.折腾了一阵终于跑起来了 ...