几个重要的概念:
1) 命名空间:C#程序是利用命名空间组织起来的,命名空间就像一个存储了不同类型的仓库,命名空间的名字就像仓库的名字,Using指令就好比是一把钥匙,可以通过钥匙打开指定名称的仓库,从而获取所需的物品。
Using 命名空间名
2) 类:C#类是一种数据结构,它可以封装数据成员,函数成员和其它的类。类是创建对象的模板,是C#语言的核心和基本构成模块。用C#编程,就是编写自己的类来描述实际需要解决的问题
3) Main方法:是C#程序的入口点,C#程序中必须包含一个main方法,在该方法中可以创建对象和调用其它方法,一个C#程序只能有一个Main方法,并且必须是静态的。C#是面向对象的语言,即使是程序的启动入口点,它也是一个类的成员。由于程序启动时还没有创建类的对象,因此,必须将入口点Main方法定义为静态方法,使它可以不依赖于类的实例对象而启动。Main方法相当于汽车的电瓶,在生产汽车时,将汽车的各个零配件进行组装,相当于程序的编写。当汽车组装完成后,就要检测汽车是否可用,如果想启动汽车,就必须通过电瓶来启动汽车的各个部件,如发动机,车灯等,电瓶就相当于启动汽车的入口点。可以用三个修饰符修饰Main方法:
Public :说明Main方法是共用的,在类的外面也可以调用整个方法
Static:说明方法是一个静态方法,静态方法不能用类的实例化对象调用,只能用类名来调用
Void:此修饰符说明方法无返回值
类的声明:
C#程序编写规范
值类型只需要一段单独的内存,用于存放实际的数据。
引用类型需要两段内存:第一段存储实际的数据,总是位于堆中;第二段是一个引用,指向数据在堆中的存放位置。
值类型和引用类型的数据在内存中的存储位置
数据不是其他类型的成员
对于值类型,数据存放在栈里;对于引用类型,实际数据存放在堆里而引用存放在栈里。
数据是其他类型的成员
对于值类型数据:是值类型(如结构)的成员则存放在栈里;是引用类型(类)的成员则存放在堆里。
对于引用类型的任何对象,它所有的数据成员始终都存放在堆里,无论它们是值类型还是引用类型。
C#中的数据类型各是什么类型?
在15种预定义类型中除了object,string为引用类型外,其余全为值类型。
在6种用户自定义类型中除了struct,enum为值类型外,其余全为引用类型。
变量与常量
变量在使用之前必须声明。变量声明定义了变量,并完成两件事:
给变量命名,并为它关联一种类型
让编译器给它分配一块内存
变量的初始化:
多重变量的声明:
枚举类型:
enum WeekDays:short {Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}
枚举类型的特点:
使用直观的标识符代替数字,增强了程序的可读性
每个枚举类型都关联一个数字,可能循环和参加计算
枚举变量只能是枚举项中的一个值,有利于编译器查检出非法的值,增加了程序的健壮性
结构类型:
1) 命名空间:C#程序是利用命名空间组织起来的,命名空间就像一个存储了不同类型的仓库,命名空间的名字就像仓库的名字,Using指令就好比是一把钥匙,可以通过钥匙打开指定名称的仓库,从而获取所需的物品。
Using 命名空间名
2) 类:C#类是一种数据结构,它可以封装数据成员,函数成员和其它的类。类是创建对象的模板,是C#语言的核心和基本构成模块。用C#编程,就是编写自己的类来描述实际需要解决的问题
3) Main方法:是C#程序的入口点,C#程序中必须包含一个main方法,在该方法中可以创建对象和调用其它方法,一个C#程序只能有一个Main方法,并且必须是静态的。C#是面向对象的语言,即使是程序的启动入口点,它也是一个类的成员。由于程序启动时还没有创建类的对象,因此,必须将入口点Main方法定义为静态方法,使它可以不依赖于类的实例对象而启动。Main方法相当于汽车的电瓶,在生产汽车时,将汽车的各个零配件进行组装,相当于程序的编写。当汽车组装完成后,就要检测汽车是否可用,如果想启动汽车,就必须通过电瓶来启动汽车的各个部件,如发动机,车灯等,电瓶就相当于启动汽车的入口点。可以用三个修饰符修饰Main方法:
Public :说明Main方法是共用的,在类的外面也可以调用整个方法
Static:说明方法是一个静态方法,静态方法不能用类的实例化对象调用,只能用类名来调用
Void:此修饰符说明方法无返回值
类的声明:
[类修饰符] class [类名] [基类或接口]
{
类体
}
- 注释:行注释用//,块注释用/* */
- 类名:类名的第一个字母大写
- 尽量不要修改由计算机生成的代码
- 关键的语句必须写注释
- Switch语句一定要有default语句来处理异常情况
- 尽量不要使用this关键字引用
- 用Pascal规则来命名方法和类型,即第一人字母必须大写,并且后面连接的单词第一个字母都是大写
- 用Camel规则来命名局部变量和方法的参数,即名称中第一个单词的第一个字母小写,例:iString strUserName
- 所有的成员变量前面加前缀“_”,例:
- public class DateSourse //创建一个公共类
- {
- private string _testString; //声明一个私有变量
- }
- 接口的第一个字母用I
- public interface Icovert //声明一个接口
- {
- byte ToString(); //声明一个方法
- }
- 方法的命名,一般将其命名为动宾短语
- public class FileName
- {
- public void CreatFile(string filePath) //创建一个CreatFile方法
- {
- }
- public void GetPath(string path)
- {
- }
- 所有成员变量声明在类的顶端,用一个空行把它们分开
- public class Company
- {
- private string _ceo;
- private string _companyName; //声明变量
- //创建一个公共方法
- public void Description(string ceo, string companyName)
- {
- }
- }
- 用有意义的名字命名空间namespace
C#的数据类型
堆和栈:是在程序运行中用来存储数据的两个内存区域。
栈
是一个内存数组,是一个先进后出的数据结构。
主要存储:某些类型变量的值、程序当前的执行环境、传递给方法的参数。
堆
是一块内存区域,可以分配大块的内存用于存储某类型的数据。与栈不同,堆里的内存可以任意顺序的存入和移除。
虽然程序可以在堆里保存数据,但并不能显示地删除。CLR的GC(garbage collector垃圾收集器)在判断出程序的代码将不会在访问某数据项时,自动清除无主的堆对象。
堆和栈:是在程序运行中用来存储数据的两个内存区域。
栈
是一个内存数组,是一个先进后出的数据结构。
主要存储:某些类型变量的值、程序当前的执行环境、传递给方法的参数。
堆
是一块内存区域,可以分配大块的内存用于存储某类型的数据。与栈不同,堆里的内存可以任意顺序的存入和移除。
虽然程序可以在堆里保存数据,但并不能显示地删除。CLR的GC(garbage collector垃圾收集器)在判断出程序的代码将不会在访问某数据项时,自动清除无主的堆对象。
值类型只需要一段单独的内存,用于存放实际的数据。
引用类型需要两段内存:第一段存储实际的数据,总是位于堆中;第二段是一个引用,指向数据在堆中的存放位置。
值类型和引用类型的数据在内存中的存储位置
数据不是其他类型的成员
对于值类型,数据存放在栈里;对于引用类型,实际数据存放在堆里而引用存放在栈里。
数据是其他类型的成员
对于值类型数据:是值类型(如结构)的成员则存放在栈里;是引用类型(类)的成员则存放在堆里。
对于引用类型的任何对象,它所有的数据成员始终都存放在堆里,无论它们是值类型还是引用类型。
C#中的数据类型各是什么类型?
在15种预定义类型中除了object,string为引用类型外,其余全为值类型。
在6种用户自定义类型中除了struct,enum为值类型外,其余全为引用类型。
变量与常量
变量在使用之前必须声明。变量声明定义了变量,并完成两件事:
给变量命名,并为它关联一种类型
让编译器给它分配一块内存
变量的初始化:
多重变量的声明:
枚举类型:
enum WeekDays:short {Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}
枚举类型的特点:
使用直观的标识符代替数字,增强了程序的可读性
每个枚举类型都关联一个数字,可能循环和参加计算
枚举变量只能是枚举项中的一个值,有利于编译器查检出非法的值,增加了程序的健壮性
结构类型:
点击(此处)折叠或打开
- namespace bianliang
- { //定义结构体
- struct Student
- {
- public string name;
- public sbyte age;
- public string sex;
- public string birthday;
-
- }
-
- class Program
- {
- static void Main(string[] args)
- {
- Student honey;
- honey.name=\"lhn\";
- honey.sex = \"男\";
- honey.age = 20;
- honey.birthday = \"1986.01.03\";
- }
- }
- }
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27710819/viewspace-1150557/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27710819/viewspace-1150557/