《c#本质论》读书笔记一

    技术2022-05-19  29

    第一二章

    1.4中System.Console.Read() 返回的数据类型是与字符值对应的一个整数,如果没有更多字符可用,返回-1。若要获得字符,要将整数转型为一个字符 e.g.  int readValue; char character; readValue = System.Console.Read(); character = (char)readValue; System.Console.Write(character);

    2.1.1中提到c#设计者和CLI设计者为添加具体类型曾争执不休。最后决定只支持每个长度一种类型。c#设计者认为除byte(无符号byte更有用)外其他有符号类型易被接受。p.s.对比C/c++中short是short int的缩写。在c#中short本身是一种实际的数据类型 其BCL名称为System.Int16.

    2.1.3中说道decimal具有128位精度。适用于大而精的(类似于金融)计算。虽然精度高但范围小,所以从浮点转到decimal可能会溢出。

    2.1.4

    2.2.3逐字字符串字面量(verbatim string literal) 不仅将反斜杠当做普通字符处理,而且会逐字解释所有空白字符。唯一支持的转义字符为" class Triangle

     

     

    会照原样输出

    string的静态方法 Trim()会从外向内找到第一个非空白后停止 去掉字符时会将字符拆成char 从外向内删至第一个非待删字符

    字符串是不可变的 所以使字符串 text.ToUpper()要赋值给另一字符串.如果有大量字符串需要修改可使用System.Text.StringBuilder类型

    2.4.1中提到c#中值变量放在栈(stack)中,引用类型指向的内存区域称为堆(heap).由于访问引用类型涉及一次额外跳转,速度会慢些。但不像值类型要求相同数据的内存副本,所以内存利用率会好些 32位处理器只需复制一个32比特的地址,64位只需一64位的地址

    2.5可空修饰符 由于null不能附给值类型 so C#2.0推出新特性

    2.6.1check块

    输出时会报溢出的错 若用 unchecked 则会输出-2147483648

    2.6.3由于没有定义从字符串到数值类型的隐或显式类型因此需要像Parse()这样的方法。每个值数据类型都包含一个Parse()

    还有一种特殊类型,可将一种类型换成另外一种

    System.Convert只支持预定义数量的类型,且不可扩展。 所有类型都支持ToString() 另TryParse()如转换失败不会引发异常 2.7.2 交错数组要求内部每个数组都创建一个数组实例 C++非托管 并非总检查你的数组边界  

     

     

     


    最新回复(0)