要点笔记
一、变量的初始化和作用域
1、c#的变量在使用前必须初始化,遵循的两个规则:
1)、变量是类或者结构中的字段,如果没有显式初始化,创建这些变量时,默认值为0(0,false,空字符串,null).
2)、方法的局部变量必须在代码中显式初始化。
2、变量的作用域
1)、成员变量的作用域和类的作用域相同。
2)、局部变量存在于声明该变量的方法或者块语句之内。
作用域冲突:
        private void ScopeTest()
        {
            int j = 20;
            while (true)
            {
              int j = 30;//error  作用域冲突(P:区别于c++)
            }
        }
作用域隐藏:
    class TempClass
    {
        int j = 20;
        static int k = 100;
        public void ScopeTest()
        {
          int j = 30; //ok,隐藏了类的成员变量
            int k = 110; //ok,隐藏了类的成员变量
        }
    }
二、C#预定义数据类型
1、分类: 
值类型:存储值,存储在堆栈中。
引用类型:存储在托管堆上。
    CTS(Common Type System)类型:c#认可的基本数据类型并没有内置于c#语言中,而是内置于.netframework中。
c#中声明了一个int类型的数据时,实际上声明的是 System.Int32的一个实例(但性能并没有损失)。这在语法上表示,
可以把所有的基本数据类型看作是支持某些方法的类,如把int转换为string:int i; string s= i.toString(); 
2、 预定义的引用类型
   1)、object类 
   2)、string类
  虽然分配在托管堆上,但执行赋值等操作时,仍然类似于值类型。 
string的转义符:\
string a="C:\\windows\\Debug";
另一种替代方式,在字符串前面加上字符@,如 string a=@"C:\windows\Debug";
甚至允许在字符串中包含换行符,如:
string s=@"hello,welcome here
My dearing!";
s的值就是:hello,welcome here
My dearing!
三、C#流控制(略)
四、C#枚举
枚举的定义:
public enum TimeofDay
    {
        Morning =0,
        Afternoon=1,
        Evening =2
    } 
枚举类的使用:
public void EnumTest()
{   
//获取枚举类的字符串表示
            TimeofDay time = TimeofDay.Evening;
string s = time.ToString();//返回Evening
//获取枚举类的值 TimeofDay time2 = TimeofDay.Evening; int i = (int)time2;
//根据字符串表示获取枚举类的值
            TimeofDay time3 = (TimeofDay)Enum.Parse(typeof(TimeofDay), "afternoon", true);
int j = (int)time3;
        } 
五、C#命名空间
   命名空间是一种逻辑组合,而不是物理组合,与程序集无关。
    命名空间可以使用别名,可以通过GetType().Namespace返货类的命名空间。
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号