C#基础—C#高级编程(第10版)学习笔记6

C#基础

1、栈存地址和值类型,堆存对象数据。

2、var,编译器类型推断

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

4、常量总是隐式静态的,const关键字:

     1)使用易读取名称,便于阅读;

    2)便于程序(业务)逻辑变更,比如税率SalesTax=6%;

    3)避免程序犯错,如别处赋值则编译器报错。

5、C#数据存储:值类型存储在堆栈(Stack)中,而引用类型存储在托管堆(Managed Heap)中。CLR会做内存管理,调用垃圾回收期实现内存回收。
6、C#有15个预定义类型,其中两个引用类型(string 和 object),13个是值类型。

       1)C#中的int 声明的实际上是.Net 结构System.Int32的一个实例,看起来很深奥,但其意义深远:这表示在语法上,可以把所有的基本数据类型看成支持某些方法的类。例如:int i=10;string s=i.ToString();

      2)C#的decimal类型不是基本类型,计算时使用该类型会有性能损失。28位(128位的高精度十进制数表示法)decimal d=12.30M;或者decimal d=12.30m.

     3)C# bool=true 或false:如果试图用0表示false,非0表示true,就会报错。

    4)Byte(无符号)、sbyte(有符号),标准8位类型,

    5)字符类型:char 表示一个16位的Unicode字符

7、Object类: 是C#和.net的根类型:例如堆栈中的值类型对象通过object装箱到堆中.实现了一些基本方法,可以重写,如Equals()、GetHashCode(),GetType()和ToString().

8、C# string实际上是.Net 类System.String,是个引用类型。但又会体现值类型的字符串一般和直观的字符串规则特点,是通过运算符重载实现的。如:string s1="a string"; string s2=s1;s1="Another string";结果:s1="Another string"  s2="a string"

9、字符串:通过@字符消除转义字符“”,$字符串插值功能

10、使用if语句的一个重要指导原则就是:

       1)只有语句和if语句写在同一行时,才允许程序员不适用花括号。遵循之,程序员在添加第二个语句时不太可能不添加花括号。

       2)比较好的习惯:都要加花括号,无论几行逻辑语句。(如果没有else。。。)

      3)值比较== 常值置于前 if(0==j)

11、Switch语句:可以包含一条default语句。任何两条case都不能相同,否则编译器报错:break可用

const string england="uk";

const string britain="uk";

switch(country)

{

case england:

case britain://编译会报错

language="English";

break;

}

12、循环for, while ,do...while,foreach(不能改变集合中各项的值,否则不能编译,如改变应使用for循环),break、Continue 可用

但这样是可以的:

 foreach (var item in resultList)
                    {
                        Apple a = item as Apple;
                        if (a != null)
                        { a.Color = "Red"; }
                    }

13、return

14、枚举:是用户定义的整数类型,枚举实例是一组易于记忆的整数值。C#中,枚举的真正强大之处是它们在后台实例化为派生自基类System.Enum的结构。一旦代码编译好,枚举就成为基本类型,与int类似。

1)可以检索枚举的字符串表示:

public enum TimeOfDay

{

Morning = 0,

Afternoon =1,

Evening =2

}

TimeOfDay time=TimeOfDay.Evening ;TimeOfDay time2=(TimeOfDay)Enum.Parse(typeof(),TimeOfDay,"afternoon ",true);

 15、名称空间 namespace,可以嵌套,using,别名 using alias=NamespaceName;

16、使用注释:源文件的内部注释:单行// ,多行/*...*/

17、XML文档 根据特定注释自动创建XML格式的文档说明

18、C#预处理器指令

原文地址:https://www.cnblogs.com/yxli2008/p/10886043.html