语法:Const 类型 变量名=常量值
在定义时赋值,其他地方不允许赋值
枚举
让我们定义一种类型并且在定义这种类型时我们要制定这个类型的所有值
语法:
Enum自己起的类型名称{值1,值2,值3…..值n};(定义枚举时,这个值不能使int类型)
枚举的定义,一般和类定义在同一个级别,在同一个命名空间下所有的类都可以使用这个枚举了
如:enum gender{男,女}
Messagebox.show(“这是我的第一个小窗口”,”标题”,messageboxbuttons.(里面选枚举的类型))
枚举的作用:1)限制用户不能随意赋值,只能赋在定义枚举时列举的值中选择
2)不需要死记每一个值是什么,只需要选择相应的值
Gender sex;
Sex=gender.男;
枚举类型的变量都可以强制转换成一个int类型 (int)转换的类型
枚举的值在定义时是有一个默认编号的,从0开始
字符串与枚举的转换
sex = (自己定义的枚举类型)(Enum.Parse(typeof(自枚), “要转换的字符串”));
结构:
为什么要用结构
1) 比如我们为了存储一个人的信息,要声明一组变量,当我们要存储n个人的信息时,就要声明n组变量麻烦。
2) 存储一个人信息的这几个变量之间没有关系,容易记乱。
语法:
访问修饰符 struct 结构名
{
Public 类型 变量名;//结构的成员
}
定义好一个结构后,就可以直接声明相应变量了。
声明好变量后,通过变量名.成员名来访问结构的成员了。
数组:
可以帮我们一次声明多个同类型的变量,这些变量在内存中是连续存储的
数组声明语法:
数据类型[] 数组名=new数据类型[数组长度];
数据类型[] 数组名={值1,值2,…..}
通过数组名.length获取数组长度
数组名.sort排序
数组名.reserve反转数组
方法(函数)介绍
函数就是将一堆代码进行重用的一种机制。函数就是一段代码,这段代码可能有输入的值(参数),可能会有返回值。一个函数就像一个专门做这件事的人,我们调用它来做一些事情,它可能需要我们提供一些数据给它,它执行完成后可能会有一些执行结果给我们。要求的数据就叫参数,返回的执行结果就是返回值。
方法:用来复用的代码,当我们在一个过程中反复的写同样的代码,那么一般情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了
定义方法的语法:
[访问修饰符][static] 返回值类型 方法名([参数])
{方法体
1)一般情况下方法都要定义在类中}
2)如果方法没有返回值,则返回值写void
3)如果方法没有参数,()不能省略
命名规则:方法名开头大写,参数名开头小写,参数名、变量名要有意义
方法的调用,对于静态方法,如果在同一个类中,直接写名字就调用了。
Return可以立即退出方法
变量作用域
在方法中定义的变量成为局部变量,其作用域从定义开始,到其所在大括号结束为止。
当被调用者想得到调用者方法中的变量时,则可以让调用者这个参数的形给被调用者
当调用者想访问我们方法中的变量时,可以通过返回值返回
例如:string s=console.readline();
Int i=convert.ToInt32(“22”);
为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值
只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接收方法的返回值
注意一个方法只能有一个返回值
一旦一个方法有返回值,那么这个方法值中,就必须通过return语句返回一个值,并且这个值要与返回值类型是相同的
一个变量一旦定义在方法外,类里面,就叫做类的字段。这个变量就可以被本类的所有方法所访问,但是要注意,静态方法只能访问静态字段
由const修饰的常量不能定义静态
什么叫方法重载:
一般在同一个类中,方法名相同,并且方法的参数的个数不同或者对应位置上的类型不同,才能构成方法重载。
注意:方法重载和返回值没有关系
Out是内部为外部变量赋值,out一般用在函数需要有多个返回值的场所。
例如int.TryParse
实现步骤
1)在方法的参数类型前加out,那么传参数的时候,也必须在传入值前面也加上out,表明这个参数不是传入,而是用来传出值的
2)如果参数时以put形式传入的,那么在传入前可以不赋初值
3)在方法中对于由out修饰的参数,必须赋值,并且必须在使用前赋值
Int.TryParse(string s,out int result)
用法:if(int.TryParse(s,out re))==true)
Out用于传出值
Ref可以理解成是双向的,既可以传入,又可以传出
在传参数的的过程中,如果参数有Out或者ref修饰的话,那么改变方法中的参数变量的值,调用者方法中变量的值也会相应改变