一、.NET简介
.NET的两个重要实体:公共语言运行库(Common Language Runtime,CLR)和.NET Framework类库(Framework Class Library,FCL)。
代码执行流程,编译器向CLR提供的编译结果是一种中间语言(Microsoft Intermediate Language,MSIL)。中间语言再由JIT(Just In Time)编译器编译,JIT将中间语言快速地转换成本地机器指令,在CLR中执行。
在.NET中,将代码分为托管代码(Managed Code)和非托管代码(Unmanaged Code)两种。
二、C#类型和语句成分
(一)、C#类型基础
C#语言支持两种基本数据类型:值类型和引用类型。1、值类型,变量存放在栈里,直接包含它们的数据,每个值类型变量都有自己的副本,因此对一个变量的操作不会影响到另一个变量。2、引用类型,存储分为两部分,对数据的引用存放在栈里,数据存放在堆里。引用类型变量的数据存储在一个实例中,不同的变量可以引用同一个对象的实例。因此在对一个引用变量操作时,改变实例值时将影响其他引用这个实例的引用变量。
(二)、foreach语句
foreach
语句列举出一个集合的所有元素,并执行关于集合中的每个元素的内嵌语句(循环体)。其基本格式为:foreach(类型 标识符 in
表达式)
语句;其中类型和标识符用来声明该语句的循环控制变量,该控制变量相当于一个只读的局部变量,它的生命周期为整个嵌套语句内。表达式对应集合,其类型必须
为集合类型,若该集合的元素类型与循环控制变量的类型不一致时,必须显式转换将集合的元素类型转换为控制变量的类型。下面结合Array公共方法说明:
public class MyArray { public static void Main() { string[] 直辖市 = {"北京","上海","天津","重庆",""};//一维数组 foreach (string str in 直辖市) Console.WriteLine(str); //Array.IndexOf在一维数组中搜索指定对象,并返回第一个匹配项索引的方法。 Console.WriteLine("重庆在直辖市中列第{0}位",1+Array.IndexOf(直辖市,"重庆"));//返回“重庆”在索引中的顺序 int[] OrderDem1 = new int[9]; //Array.GetUpperBound获取数组的指定维的索引上限。 for (int i = 0; i <= OrderDem1.GetUpperBound(0); i++)//指定维度的上限,9个元素(0-8) OrderDem1[i] = i; int[] OrderDem2 = new int[9]; //Array.Copy将一个Array的一部分元素复制到另一个Array中,并根据需要执行类型强制转换和装箱。 Array.Copy(OrderDem1, OrderDem2, 9);//OrderDem1复制到OrderDem2 Console.WriteLine("原来的数组:"); foreach (int i in OrderDem1) Console.Write(i + ","); Console.WriteLine(); Array.Copy(OrderDem1, 2, OrderDem2, 4, 2);//将OrderDem1的第二个数开始后的两个数copy到OrderDem2的第四个数开始后的两个位置。 Console.WriteLine("部分复制后的数组:"); foreach (int i in OrderDem2) Console.Write(i + ","); Console.WriteLine(); //Array.Reverse反转一维数组中全部或部分元素的顺序。 Array.Reverse(OrderDem2); Console.WriteLine("反序后的数组:"); foreach (int i in OrderDem2) Console.Write(i + ","); Console.WriteLine(); Array.Sort(OrderDem2);//默认升序排序(若要降序排序,则先升序,再反转) Console.WriteLine("排序后的数组:"); foreach (int i in OrderDem2) Console.Write(i + ","); Console.WriteLine(); Console.ReadKey(); } }
(三)、数据类型转换
隐式类型(小范围数→大范围数)转换可能出现在赋值语句、方法调用等多种场合,当转换后的精度无损时,可以进行转换,否则必须做显式转换。
显式类型转换:1、使用目的类型转换法转换到目的类型的对象
//利用Int32类型的Parse()方法将字符型转换为整型 string str1 = "123"; int int1 = Int32.Parse(str1);
2、使用源类型的转换方法转换到目的类型的对象
//利用整型的ToString()方法转换到目的类型的对象 int int1 = 123; string str1 = int1.ToString();
3、使用强制类型转换将源类型的对象转换成为目的类型的对象
int int1 = 123; short sot1 = (short)int1;
4、使用Convert类的方法进行显式转换
string str1="123"; int int1=Convert.ToInt32(str1); int int1=123; string str1=Convert.ToSring(int1); int int1=123; string sot1=Convert.ToInt16(int1);
三、C#语句
(一)、using命名空间指令
声明了命名空间后,就可以按照限定名在C#中用using关键字来使用命名空间,此时不需要namespace关键字。语法形式为:using 命名空间;using命名空间指令将一个命名空间中所包含的类型导入到直接封闭该指定的编译单元或命名空间体中。
(二)、using别名指令
定义命名空间及其成员类型的别名。语法形式为:using 标识符 = 命名空间或类型名;使用别名指示的标识符在直接包含使用别名指示的编译单元或命名空间的声明域中必须是唯一的。
学习来源:《Visual C#.NET实用教程》清华大学出版社 主编:师硕、于明。学习资料:C#与.NET基础知识.rar
发表评论: