2023-09-05
自我提升
0

目录

构造对象
属性的定义
匿名类型

构造对象

我们构造对象的时候,对象的初始化过程是⾃动完成的,但是在初始化对象的过程中有的 时候需要做⼀些额外的⼯作,例如需要初始化对象存储的数据,构造函数就是⽤于初始化数据的函数

声明基本的构造函数的语法就是声明⼀个和所在类同名的⽅法,但是该⽅法没有返回类型。

c#
public class MyClass{ public MyClass(){ 这个构造函数的函数体 } }

当我们使⽤new关键字创建类的时候,就会调⽤构造⽅法
我们⼀般会使⽤构造⽅法进⾏初始化数据的⼀些操作。
构造函数可以进⾏重载,跟普通函数重载是⼀样的规则

注意

当我们不写,任何构造函数的时候,编译器会提供给我们⼀个默认的 ⽆参的构造函数,但是如果我们定义了⼀个或者多个构造函数,编译器就不会再提供默认的构造函数

属性的定义

属性的定义结构

c#
public int MyIntProp{ get{ // get code } set{ //set code } }
  • 定义属性需要名字和类型
  • 属性包含两个块 get块和set块
  • 访问属性和访问字段⼀样,当取得属性的值的时候,就会调⽤属性中的get块,所以 get块,类型需要⼀个返回值就是属性的类型;当我们去给属性设置值的时候,就会调⽤属性中的set块,我们可以在set块中通过value访问到我们设置的值。

通过属性来访问字段

我们习惯上把字段设置为私有的,这样外界不能修改字段的值,然后我们可以通过定义属 性来设置和取得字段中的值。

c#
private int age; public int Age{//习惯上属性⼤写 字段⼩写 set{ if(value<0)return; age = value; } get{ return age; } }

1、设置属性的只读或者只写

c#
private string name; public string name{ get{ return name; } }

属性可以值只提供⼀个set块或者get块

2、属性的访问修饰符

c#
public string name{ get{ return name; } private set{ name = value; } }

3、⾃动实现的属性

c#
public int Age{get;set;}

编译器会⾃动创建private int age属性

匿名类型

我们创建变量(对象的时候),必须指定类型,其实我们也可以不去指定类型,这个就是匿名类型,我们可以使⽤var声明⼀个匿名类型。
使⽤var声明的匿名类型,当初始化的时候,这个变量的类型就被确定下来,并且以后不可以修改。

c#
var var1 = 34;