搜索
简帛阁>技术文章>黑马程序员_学习日记10_复习C#(基础)

黑马程序员_学习日记10_复习C#(基础)

C#基本知识点

一、C#与.NET的关系

.NET的核心是CLR(公共语言运行时)。在CLR中运行的代码,我们称为“托管代码”。

我们写的代码在运行之前,会经过两个编译阶段:

1、 把源代码编译为IL(Microsoft中间语言)

2、 CLR把IL编译为平台专用的代码。

IL(Microsoft中间语言)的主要特征:

A、面向对象和使用接口:实现给定接口的类,就必须提供该接口的所有方法和属性的实现。

B、值类型和引用类型之间的巨大差别:对于值类型,变量直接保存其数据,而对于引用类型,变量仅仅保存数据的地址。值类型一般存储在堆栈中,引用类型一般存储在托管堆中。

C、强数据类型:所有的变量都明确的被标记为某个特定的数据类型,不允许对模糊数据类型执行操作。不过在.NET 3.5中也加入了模糊数据类型。

D、使用异常来处理错误

E、使用属性(attribute):用户定义的Attribute和其对应的数据类型或方法的元数据放在一起,这对于文档说明很有用,它们和反射技术一起使用,执行特定的任务。

二、程序集(Assembly):是包含编译好的、面向.NET Framework的代码的逻辑单元。

三、反射:因为程序集中存储了元数据,包括在程序集中定义的所有类型和方法,所以可以编程访问这些元数据。这种技术就称为反射。

四、命名空间:是.NET避免类名冲突的一种方式。

System是.Net的基本命名空间

为了避免冲突,一般采用自己公司的域名做为命名空间。

Console.WriteLine是其中的一个方法。

 

C#基础

一、变量

1、变量的初始化

C#编译器需要每个变量在有了初始值之后才能使用该变量。

变量是类或者结构中的字段,如果没有显式的初始化,在默认状态下,创建这些变量时,其初始值就是0。

方法中的变量,必须显式的初始化,否则在编译时会报错。

2、   变量的作用域

A、只要变量所属的类在某个作用域内,其字段(也叫做成员变量)也在该作用域中。

       B、局部变量存在于声明该变量的块语句或方法结束的大括号之前的作用域。

       C、在for、while循环中声明的变量,只存在于该循环体内。

3、常量:在声明变量时,在变量前面加上const关键字就可以把该变量指定为一个常量。

A、常量必须在声明的时候就初始化,而且其赋值后就不能再改变了。

B、常量总是静态的(static),不必在声明常量时添加static关键字。

 

二、预定义类型

1、值类型和引用类型

C#中的数据类型,可以分为值类型和引用类型,值类型存储在堆栈上,而引用类型存储在托管堆上。

如下代码示例:

int i=10;

int j=i;

i和j的值都是10,并且在内存中会有两个地方存储10。

 

再看下面的代码

Vector x=newVector();

x.Value=20;

Vector y=x;

Console.WriteLine(y.Value);

y.Value=50;

Console.WriteLine(x.Value);

Vector是一个引用类型,引用类型在使用的时候需要new来实例化一个。这段代码执行后,只有一个Vector对象,x、y都指向包含该对象的内存地址。因为x、y存储的都是对象的引用,所以当y改变的时候,x也会改变。所以该程序输出的结果是20和50。

如果变量是一个引用,可以把其值设置为null,表示不指向任何对象。

2、 CTS类型

C#的预定义类型并没有内置于语言中,而是内置于.NET Framework中,比如声明一个int类型时,实际上是.NET结构的System.Int32的一个实例。这说明,可以把所有基本数据类型看作是支持某些方法的类。

3、 预定义的值类型(部分)

A、整型

sbyte,8位有符号的整数,范围从-128到127。

byte,8位无符号的整数,范围从0到255。

short,16位有符号的整数,范围从-32768到32767

ushort,16位无符号的整数,范围从0到65535

int,32位有符号的整数,范围从-2147483648到2147483647

uint,32位无符号的整数,范围从0到4294967295

long,64位有符号的整数

ulong,64位无符号的整数

B、decimal类型:财务专用数据类型,128位高精度十进制表示法。要把数据指定为decimal类型,只需在数字后面加上M(或m)

4、 预定义引用类型

A、object类型:C#的基类,所有类都派生自它,所以可以用object引用绑定任何子类型的对象

B、string类型:string类型是属于引用类型。在修改一个字符串的时候,实际上是创建了一个新的字符串,而并非修改了原来的字符串。

 

三、跳转语句

       break和continue的区别:break直接跳出循环;continue不跳出循环,只是该次循环不执行,直接执行下次循环。

       return一般用于退出类或者方法。如果方法有返回类型,则return语句必须返回这个类型的值。

 

四、             数组:所有的数组都是引用类型。

五、   命名空间

可以使用using简化命名空间,例:usinggosoa=www.gosoa.com.cn;

 

 

知识点积累:

按行读取文件的两种方法:

1、StreamReader.ReadLine()

2、读取所有的行用stringlines=File.ReadAllLines(string path, Encoding encoding);
然后用foreach迭代取出每行

 

问题:P19枚举 P24get与set方法怎么用

C基本知识点一、C与NET的关系NET的核心是CLR(公共语言运行时。在CLR中运行的代码,我们称为“托管代码”。我们写的代码在运行之前,会经过两个编译阶段:1、把源代码编译为IL(Microso
WindowsPhone7手机开发、Net培训、期待与您交流!CSDN终于可以发帖了,把前几天的补上4月12日今晚网速很慢,下黑马视频很卡,我下了一本《C基础教程》的电子书来学习,做笔记如下:一、IL
indowsPhone7手机开发、Net培训、期待与您交流!什么是泛型?泛型是NET20引入的一个概念。泛型不仅是C语言的一部分,而且与程序集中的IL代码紧密继承。有了泛型我们就可以创建于独立于被包
android培训java培训期待与您交流!下午学习了高新技术部分的内容,感觉知识点又多又细,可能是之前没有接触过这些东西,在看视频的时候理解起来有点吃力,所以就把所学的东西大概地整理了一下,顺便复习
android培训java培训期待与您交流!连着几天长时间的学习让我感觉很疲惫,昨天晚上又很悲催地发烧了,虽然烧的不是很严重,但是头疼得特别厉害。为了赶赶进度,早上还是把交通灯系统给看完了。在前面基础
android培训、java培训、期待与您交流!泛型的基本应用泛型是java15中的一个新特性。没有使用泛型时,只要是对象,不管是什么类型的对象,都可以存储进同一个集合中。使用泛型集合,可以讲一个集合
android培训、java培训、期待与您交流!反射的基础Class类反射并不是java15中的特性,而是java12版本中就具备这个特性。先来了解反射所需的基础Class类。Java程序中的各个Ja
android培训、java培训、期待与您交流!网络编程IP地址如何获取本地主机的名称和IP呢?在javanet包中提供了InetAddress类,该类表示互联网协议(IP)地址。它不提供构造方法,需
WindowsPhone7手机开发、Net培训、期待与您交流!4月13日今天看了一天的视频,把骑士飞行棋的代码讲解看完了,自己边看边写,终于完成了374行代码的编写,算是我的第一个完整的程序。该程序是
黑马程序员学习日记黑马程序员_学习日记_交通灯管理系统android培训、java培训、期待与您交流!交通灯管理系统模拟实现十字路口的交通灯管理系统逻辑,具体需求如下:异步随机生成按照各个路线行驶的