您的位置:首页 > Web前端

Professional C# 学习笔记(二 c#基础)

2010-04-18 12:40 363 查看
要点笔记
一、变量的初始化和作用域

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返货类的命名空间。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: