微前端架构如何改变企业的开发模式与效率提升
666
2022-11-12
C#实验上机
第二章--C#语法基础:
一,注释语句
/*注释语句包含在"反斜杠* "和" *反斜杠"中,
或者两个反斜杠和换行符之中,
或者三个反斜杠和换行符之中(可以被VS自动识别为文件注释以提取)
要注意注释中的\,该续行符会把下一行连上来一起注释掉出错。*/
static void Main(string[] args) {//语句块包含在{}中 int MyInterger;//语句以;结束 string MyString;///忽略空白字符(空格/回车/TAB) MyInterger = 17; }
//要注意防止注释嵌套出错,可用#if,#endif预处理语句。
二,数据类型
1,基本型/内置型 用户自定义型
A,内置类型:CS使用- FrameWork ?
库中的数据类型
sbyte = System.SByte,...
//结构类型using System;struct Student{ public int no; public string name; public string phone; public Student(int stu_no, string stu_name, string stu_phone)//构造函数,作为结构体的构造函数,要么给变量全部赋值,要么保持默认 { no = stu_no; name = stu_name; phone = stu_phone; }}class douge{ public static void Main() { Student stu=new Student(945546,"zhangsan","12035884"); Console.WriteLine(stu.no); Console.WriteLine(stu.name); Console.WriteLine(stu.phone); //Console.Read(); }}
//数组的引用using System;class test{ static void Main() { int i,j; int[] arr = new int[5]; for (i = 0; i < arr.Length; i++) { arr[i] = i<<4; } for (j = 0; j < arr.Length; j++) { Console.WriteLine("arr[{0}]={1}", j, arr[j]); } Console.Read(); }}
//交错数组的举例 using System;class ArrayTest{ static void Main() { int [][] arr=new int [2][]; arr[0]=new int [5] {1,3,5,7,9}; arr[1]=new int [5]{2,4,6,8,10}; for(int i=0;i
//ArrayList类的使用using System;using System.Collections;class HE{ static void Main() { ArrayList books = new ArrayList(); books.Add("C#程序设计!"); books.Add("面向对象编程思想"); Console.WriteLine("count:{0}", books.Count); Console.WriteLine("capacity:{0}", books.Capacity); Console.WriteLine(); Console.WriteLine("使用迭代器访问集合中的对象"); foreach (object book in books) { Console.WriteLine(book); } Console.WriteLine(); Console.WriteLine("使用For循环访问集合中的元素"); { for (int i = 0; i < books.Count; i++) { Console.WriteLine(books[i]); } } Console.Read(); }}
B,用户定义类型包括:
类类型(class)
结构类型(struct)
接口类型(interface)
2,值类型(Value Types)和引用类型(Reference Types)
A,值类型:内存顺序分配在栈中。他们包括:所有基本或内置类型(不包括string类型)、结构类型、枚举类型(enum type)
B,引用类型:内存非线性分配在堆中,当它们不再被使用时CS通过垃圾收集器自动释放内存(C++用delete)。它们使用new运算符来创建。
引用类型包括:类类型、接口类型、象数组这样的集合类型类型、字串类型、枚举类型
结构型适于快速访问和拥有少量成员的数据类型。如果涉及量较多,你应该创建一个类来实现他。
3,数据类型转换
隐式转换:从低精度的转换到高精度的,所以不可能转换到char;另外可以把0隐式转换成枚举型,其他整数不行。
显式转换
三,变量:
1,普通变量:
(1),命名规则:字母或_或@ + 字母或_或数字 (/用于转义,@用于逐个转义指定,@常用于保留关键字前以保持与其他语言兼容)
变量赋值:变量 = 要赋的值
(3)C#中没有全局的的变量或全局函数,全局方式的操作是通过静态函数和静态变量来实现的。
int i;string text;//在循环外未初始化for (i = 0;i<10;I++){text = "Line" + Convert.ToString(i);//在循环中未初始化,在退出循环的时候会丢失值,再引用就出错。Console.WriteLine("{0},text);}Console.WriteLine("Last txet output in loop:{0},text);//出错。改正方法是在循环外初始化:string text="";
(4)命名约定:简单的用camelCase,复杂的用PascalCase ?
(5)变量的七种类型:
class A{public static int x;//静态变量,存在期从类装载直到该程序结束。int y;//非静态变量,或实例变量,从类实例创建到实例空间释放。/*v[0]是数组元素,a是值参数,b是引用参数,c是输出参数 */void F(int[] v,int a,ref int b,out int c){int i = 1;//局部变量,不会被初始化c = a + b++;//}}
2,枚举
enum 枚举名:枚举值类型(默认是int,默认赋值0,1,2...) { 枚举值1=..., 枚举值2=..., 枚举值3,//不赋值的话,默认为最后一个明确具体值的值+1 ... } 枚举名 变量名=枚举名.枚举值namespace
3,结构
struct 结构名: { 访问方式1 变量类型1 变量名1;//访问方式public/private 访问方式2 变量类型2 变量名2; ... } 结构名 结构变量名; 结构变量名.枚举值=...;
4,一维数组
遍历方法
A,For循环到.Lengthfor(i=0,i 5,二维数组(多维) 变量类型[,] 数组名 = new 变量类型[一维元素个数,二维元素个数]{{元素00,元素01,元素02...},{元素10,元素11,元素12...}...} 6,直角数组(交错数组,数组中的数组) 七,条件语句 A,If语句:通用判断 If (条件1) 代码1; Else 代码2; If (条件1) {} Else {} B,Switch语句:用于同条件多结果判断 Switch (条件) { Case 结果1: 代码1; break; Case 结果2: 代码2; break; Case 结果3: 代码3; goto Case 结果2;//此时Case..相当于一个Label Case 结果4: 代码4; Return; Case 结果5: Case 结果6: Case 结果7: 代码567;//只要满足上面三个Case之一就执行。 break; ... Default: 代码; break; } C,三元运算语句:(条件)?True结果:False结果 常用于简单赋值语句:string myString = (myInteger<10)?"Less than 10":"Great than or equal to"; 或者用于简单格式化文本语句:Console.WriteLine
?("I am {0} year{1} old.",myinteger,myinteger==1?"":"s"); 八,循环语句: A,Do...While: 当条件为True时循环。 Do {...} While(条件);//分号不可少 B,While...: 当条件为True 时循环。 While(条件) {...} C,For...: 使用计数器循环。 九,函数 A,函数定义:static 返回值类型/void 函数名(参数类型1 参数1,参数类型2 参数2,...){...return 返回值;//return必须在函数结束前被处理,不能跳过//return ;//当用于void时用不带返回值的return来中止函数。} B,参数数组: static int sumVals(params int[] vals){int sum = 0;foreach(int val in vals){sum+=val;}return sum;}static void Main(string[] args){int sum = sumVals(1,5,2,9,8);Console.WriteLine("Summed Values = {0}",sum);}C,值传递参数/引用传递参数/out输出参数static void showDouble(ref int val)//引用传递参数{val*=2;Console.WriteLie("val doubled = {0}",val);}static void showDouble2(int val)//值传递参数{val*=2;Console.WriteLine("val doubled = {0}",val);}static void showDouble3(int val,out int valIndex)//out输出参数{val*=2;valIndex++;Console.WriteLine("val doubled = {0}",val);}int myNmuber = 5;showDouble(ref myNumber);//引用传递参数,会改变myNumber值,所以要求myNumber必须不是常量或者未初始化的变量。showDouble2(myNumber);//值传递参数,不会改变myNumber值int valindex;//out输出参数,不用初始化,初始化了也会在函数开始执行时丢失值。showDouble3(myNumber,out valIndex); D,全局变量 static/const 变量名//const定义的全局变量是只读的 当全局变量与局部变量同名时,局部变量优先,要用类似class1.myString来引用全局变量。 E,Main()函数; static void Main()static void Main(string[] args)//args是函数命令行参数static int Main()//返回一个表示函数终止状态的int值static int Main(string[] args)//返回一个表示函数终止状态的int值 F,结构中的函数 G,同名函数的重载:同名,签名不同,系统自动识别使用哪个函数 H,委托:用于把引用存储为函数以灵活调用函数 十,面向对象基础 十一,类 1,类的定义 class 类名{//类成员}internal/publicsealed/abstract 十和,接口 interface IMyInterface{//接口成员}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~