基础入门(二)

时间:2022-03-07 03:22:03

枚举是被命名的整型常数的集合;枚举类型的变量只有赋值后才能使用;不同枚举中的枚举值可以重名;可以自定义枚举值。

enum Playstates {
            跑, 跳,下滑,左转,右转
}枚举值的使用:Playstates.跑;

结构体

结构体相当于一个复合型的容器,其是由一系列不同类型的数据构成的集合;结构体中的成员不能在定义中赋初始值。

struct Person{

//public 类型 变量名

public string name;

public int age;

}//在main函数之前定义结构体的使用:Person p;//先声明一个person类型变量

p.name="老王";

访问修饰符

public 公共,访问不受限制

private  私有,只能在当前的类或者结构体中使用  

protected 受保护的 只有在其所在类或者子类中可以访问,不能在结构体中使用

internal  内部的,同一程序集中的任何代码都可以访问该类型或成员,但在其他程序集中不可以访问

权限:1没有嵌套在其他类或者结构中的类型,只能是public或者internal,默认是internal

2 类成员可以是任意的访问权限,不加修饰符默认是private

类与对象

类是抽象的类型,对象是具体的实现

访问修饰符 class 类名{

类成员...

}

public class Person{public string name;public int age;}

Person p=new Person();//使用new关键字声明一个新的对象,对象也叫做类的实例。

字段

我们用字段描述类的特征  ,在类中可以直接给字段设置初始值;

访问字段:p.name="老王";

方法        

我们用方法描述类的行为,方法就是在类中定义的多条语句的代码块

语法 :访问修饰符 返回值类型 方法名(参数列表){语句;..;return 返回值;}

调用方法:对象.方法名(参数);

对于私有成员变量既不能获取也不能更改,为了获得,可以设置get,set方法

public class Car { private string name="老王";//私有变量不能被外界访问 public string GetName() { return name; } public void SetName(string newname) { name = newname; } }

属性

属性自动帮我们给字段添加set get方法,属性本质上也是set get方法,只是形式不同

语法: 访问修饰符 属性类型 属性名 {set{};get{}}

public class Car { private string name="老王"; public string Name//属性 { //get访问器 get { return name; } //set访问器 set { //value关键字只能在属性的set方法中有意义,表示外界客观传递过来的值 name = value; } } }

使用:Car C=new Car();

C.Name="hello";//更改名称,注意使用属性名Name

属性的访问权限:仅当属性同时具有Set与Get方法时,才能使用访问器修饰符,并且只能够对其中一个访问器使用修饰符

值类型和引用类型

值类型在栈中分配空间,由系统自动分配

引用类型在堆中分配空间,,由我们用new分配

string是特殊的引用类型

方法参数

形参:定义方法时,在参数列表中定义的参数叫做形参

实参:调用方法时,在参数列表中传递的参数叫做实参

值类型在方法内对形参做改变,不会影响到外界的实参,而引用类型可以在方法内对外界值做改变。

值类型的参数想要达到引用类型参数的效果,需要用到引用修饰符ref

public void Swap(ref int x, ref int y){

        int temp=x;

       x=y;

       y=temp;

}

int i=5;

int j=12;

Swap(ref int i,ref int j);//可实现两数互换值。

输出参数:如果想让一个方法返回多个值,在参数前加out修饰符

public void Sum(int i,int j,out int sum){

sum=0;//必须先在方法中赋初始值

sum=i+j;

}

int r;

Sum(5,13,out r);

可变参数:如果在定义方法时不能确定有多少个参数,可以使用可变参数params

public int Sum(params int[] nums){

   int s=0;

   foreach(int n in nums){ s+=n;}

   return s;

}

int m= Sum(1,2,3,4,5);

字符串

string字符串是引用类型,因为它本质上是一个char类型的数组。因此可以使用下标索引字符串中的字符元素

方法:Contains();//判断是否包含子字符串

IndexOf();//获取指定字符或者字符串中的下标

Remove();//删除子字符串

Replace();//替换子字符串

Split();//分割子串

Substring();//获取字串