0712c#第一天C#语言基础介绍与语法入门

来源:互联网 发布:js取随机数 编辑:程序博客网 时间:2024/05/22 07:08

0712c#第一天C#语言基础介绍与语法入门
一、C#语言基础介绍
1.1什么是.NetFramework
.NetFramework就是应用程序运行时的执行环境,为应用程序提供以下几种服务
1)全面的类库
2)内存管理
3)通用类型系统:中间语言使用的预定义数据类型
4)开发结构和技术,如ASP.NET技术 5:语言互操作性:面向.NetFramework的语言编译器提供了生成中间语言代码的机制,这种机制使得不同语言之间相互操作成为了可
能。
1.2.NetFramework的组成
1)公共语言运行时(Common Language Runtime,CLR)
包括通用类型系统(CTS)和公共语言规范 (CLS)
2).Net Framework类库(Framework Class Library,FCL)
1.3 C#代码的执行过程
1)C#代码编译为中间语言代码阶段(IL)
2)中间语言代码解释为本机代码阶段,为了使IL代码能够运行, 必需把它编译为本地代码,即CPU指令。这个过程由CLR的JIT编译器 来完成。
3)执行本机代码,JIT编译生成本机代码之后,编译好的本机代码 会被放置到一个缓冲区,下次再调用相同的代码时,可以直接运行缓 冲区的现有的本机代码,从而避免重新验证IL代码以及把它编译为本 机代码的过程。使用这种方式,只有JIT发生的时候才有一定的性能 损失。
二、开发环境的搭建
在Win环境下,C#的开发比较简单,有专门的集成开发环境 Visual Studio。在Mac下,我们使用XamrinStudio进行我们的开发, 它也是一个集成的开发环境,使用起来也比较简单。
1)C#使用using语句引用.Net框架提供的或者用户自定义的命名 空间。
2)用namespace关键字声明一个命名空间,每个C#源代码文件可 以包含一个或者多个命名空间。
3)每个程序可以定义很多类,但是只有一个是主类。在程序中, 主类是指包含Main方法的类,是C#程序的入口。但是动态链接库的 dll程序不需要有Main方法。
4)用class关键字声明类,C#中不存在全局方法和变量,所有的 变量和方法都包含在类的定义之中。
三、C#基础语法入门
3.1:标识符和关键字
只要是语言,都会有标识符和关键字的概念,标识符必需满足
以下几个条件:
只能包含字母,数字或者下划线。 首字母可以是字母,下划线和@符号,但是不能是数字。 不能为C#关键字。
C#是大小写敏感的语言,定义的时候,尽量保留其意义,使其 具有一定的自描述性。
3.2基础数据类型
short:短整形(整数)2
int:整形(整数)4
long:长整形(整数)8
float:单精度浮点类型(小数,小数点后面1位有效数)4
double:双精度浮点类型(小数,小数点后面6位有效数)8
char:字符类型(单个字符)2
C#中char 2个字节 c++中char1个字节
3.2.1数据类型强制转换
三种转换方式:
(1)使用强制类型转换运算符()
int ii=50;
short ss=(short)ii;
(2)使用System.Convert类的静态成员方 法,ToString,ToInt,ToDouble等等
int ii=10;
string str=System.Convert.ToString(ii);
(3)使用.Net框架提供的Parse()方法 string ff = “200”;
float f = float.Parse (ff);
 Console.WriteLine (f);
3.2.2字符串类型
stirng是System.String的别名,表示由零个或者多个Unicode字符组 成的不可变序列。可使用[]访问每个字符。

string welcomeText = “欢迎你”;

welcomeText=”Hi”; 重新赋值之前,内存首先会重新初始化一块区域,并且将值初始化位 Hi。原来存放的内存区域不可修改。
9/1 5
string类型为引用类型,string变量本身存储在栈中,而变量所指向 的值则存储在托管堆里面。
3.2.3 枚举类型
 枚举类型属于值类型,使用方式如下:

enum Gender{
 Female,
male
 }; 

3.2.4 结构体类型
 C#中的结构体是一种值类型,通常用于表示诸如
Point,Rectangle,Color等轻量级的对象,结构体定义如下所示:

public struct APoint
{

public int x;
public int y;

public APoint(int px,int py)
{

x = px;
y = py;
 }
}

3.2.5 数组类型
数组是一种引用类型,表示相同类型的数据按照一定的顺序线 性排列。声明方法如下:
type[] 数组名=new type[arrayCount]; 数组的具体使用如下:

int[] a = new int[] { 1,2,3,4,5} ;
 int[] b = { 1, 2, 3, 4, 5 };
 Console.WriteLine (b.Length);

string[] Colors =
{ "Red","Blue","Green","Purple","Orange"} ;
 //普通遍历for (int i = 0; i < Colors.Length; i++) {
 10/1 5 Console.WriteLine (Colors[i]);//快速遍历foreach(var item in Colors){
Console.WriteLine (item);


3.3 变量和常量
变量代表一块内存空间,它存储的值是可以变化的。因为有了 变量,我们不再需要记住复杂的内存地址,而是通过变量名来完成内 存数据的存取操作。常量在内存里面的值不能修改,声明的时候必须 初始化,无法接受新的赋值,默认为静态的,不允许显式使用static 关键字进行声明。
3.4 运算符和表达式
运算符是用于操作一个或者多个操作数的程序元素。条件运算
符接受三个操作数,是C#里面唯一的三元运算符。 运算符的优先级如下表所示。运算符的结合顺序,只有三个是
从右向左结合的,分别是一元运算符,条件运算符,赋值运算符,其
它的都是从左向右。
运算符重载
C#里面也有运算符重载,主要是为了对自定义的类型使用某一 个运算符。对于一元运算符,重载需要带一个类或结构类型作为参数; 而二元运算符重载则需要带两个类或该类型的结构体。二元语法如下 public static 类型 operator 重载的运算符(类型1,类型2)
从中可以看出,所有的运算符都应该为静态方法,且需要使用 public关键字进行修饰。
C#中允许使用operator关键字来实现运算符的重载,但这并不 是意味着所有的运算符都可以被重载,表中列出了C#中可重载和不 可重载的运算符。

3.5C#的语句
3.5.2 循环语句 循环语句可令语句块中的代码持续执行,直到遇到跳转语句或
者表达式为false 的情况。C#中有四种循环语句。 while语句:首先检查表达式的值,如果值为true则执行while
语句,直达表达式为false或者执行中遇到显式指定的跳转语句时, 停止循环。
do-while语句:首先执行循环体中的语句,然后再检查布尔表 达式是否为true,
for语句:同C语言一样
foreach语句:foreach语句用于遍历数组或者对象集合中的元 素。但注意,并不是所有的都能按照foreach进行遍历,只有那些实 现了System.Collections.IEnumerable和 System.Collections.Generic.IEnumerable接口的数组或对象集 合才可以使用。

    int[] array=new int[]{1,2,3,4,5};    foreach(int item in array)    {       Console.WriteLine(element);    }

3.5.3 跳转语句 在循环语句中,如果需要在循环结束之前退出整个循环,我们
可以使用跳转语句。C#包含4种跳转语句。 break语句:直接退出整个循环。 continue语句:立即终止本次循环,但是会继续执行下一次循
环。 goto语句:跳出循环到已标记好的位置上。 return语句:退出循环和循环所在的函数
总结:本章我们讲解了C#的基础语法,包括常见的表达式,常量, 语句,运算符以及其它的一些内容。
课后习题:
1:从键盘输入10个数字,使用冒泡进行排序
2:从键盘输入10个数字,找出其中第二大的数字

0 0
原创粉丝点击