C#本质论读书笔记一

1、常量 const  特征:

  常量必须在声明时初始化,指定了值后,就不能再修改了

  常量总是静态的,不必(实际上,是不允许)在常量声明中包含修饰符 static

  不能从一个变量中提取的值来初始化常量,如果需要这么做,应使用只读字段 ???

2、引用类型和值类型

  区别:值类型直接存储其值 而 引用类型存储的是对值引用的地址 ;值类型存储在堆栈中,而引用类型存储在托管堆上

3、所有整数类型的变量都能赋予十进制或者十六进制的值,后者需要 0x 前缀 long x =0x12ab;

  var num =3;//编译器会将其默认为 int 类型

  var num=4.5;//编译器会将其默认为 double 类型

4、float 数据类型用于较小的浮点数 相对于double数据较小,精度是double类型的 1/2

  decimal 类型表示精度更高的浮点数

5、ASCII 编码是 Unicode 的一个子集

待续。。。  

路过 随笔 北京 20160128 

 

1、using 的用法

  1-1 引用命名空间

  1-2 给命名空间起别名  using Introduction = Wrox.ProCSharp.Basics;

2、main 函数

  C#程序是从方法 Main() 开始执行的,这个方法必须是类或者结构的静态方法,并且其返回类型必须是int或void(注:Main方法不一定是要 Program 的静态方法)

3、预处理指令 用的不多

  #define #undef 必须将 #define 和 #undef 放在C#代码的开头

  #if #else #elif #endif   #if 当编译器遇到#if的时候,会先判断相关符号是否存在 (#define 设置的符号) 从而决定是否编译 #if 和 #endif 之间的代码

4、double num = 3.2374; console.WriteLine("{0:#.00}");  结果: 3.24

5、string类型可不可以理解为一个特殊的引用类型?

  字符串类型是不能改变的,如果改变字符串的值,就会创建一个全新的字符串,所以字符串无法采用一般引用类型的行为方式

6、ref参数 迫使值参数通过引用传递给方法(在方法里面如果有对参数修改,那在调用方法传过去的值也会被修改 注:string类型也适用)

  int num=0;

  void DealSomeData(ref int num)

  {

    num=5;

  }

  DealSomeData( ref num);//i=5;

 

  out 与 ref用法类似

7、属性

   get设置为private 当设置为private 后,就不能直接通过属性赋值了 而是要调用类的自己的方法才能赋值,作用貌似是只能按当前类自己设定的方法处理好参数值然后赋值给属性,这样就不需要在传参数的时候处理,或者直接写在 set 里面了?

 

路过 20160130 北京随笔

8、readonly 和 const 

  readonly 动态常量 在运行的那一刻才获得,编译器编译期间将其标识为只读常量,而不用常量的值替换

  const 静态常量 编译器在编译的时候会对变量进行解析,并将常量的值替换成初始化的那个值

  

  可以在构造函数中给只读字段赋值,但不能在其他地方赋值 

  只读字段可以是实例字段,而不一定要是静态字段,类的每个实例可以有不同的值

  如果要把只读字段设置为静态,就必须显示声明  static readonly string str;

 

9、结构

     可以把结构看作是缩小的类,结构基本上和类相同,但更适合于把一些数据组合起来的场合

     结构是值类型,生命周期和简单的数据类型一样

   结构不支持继承

     结构的构造函数是不允许替换的

     C#本质论读书笔记一_第1张图片

C#本质论读书笔记一_第2张图片

C#本质论读书笔记一_第3张图片

 

路过北京 20160131 16:54 随笔

  

 

你可能感兴趣的:(C#本质论读书笔记一)