字段

1
2
3
//字段
//一个字段
private string loginID = string.Empty;

属性

1
2
3
4
5
6
7
//属性
//两个方法
public string LoginID
{
get { return this.loginID; }
set { this.loginID = value; }
}

自动属性

1
2
3
//自动属性
//包含一个字段两个方法
public string? Password { get; set; }

构造函数

  • 初始化类的实例成员
  • 构造函数重载
  • 不同参数 可调用public User(): this("zs","dasda") { }
1
2
3
4
5
6
7
8
9
10
//构造函数
//空参数: 允许空参数创建类
public User() { }

public User(string loginID, string Password)
{
this.loginID = loginID;
this.Password = Password;
}

方法

1
2
3
4
5
 //方法
public void PrintUser()
{
Console.WriteLine("账号:{0},密码:{1}", loginID, Password);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class User
{
//字段
//一个字段
private string loginID = string.Empty;

//属性
//两个方法
public string LoginID
{
get { return this.loginID; }
set { this.loginID = value; }
}

//自动属性
//包含一个字段两个方法
public string? Password { get; set; }

//构造函数
//空参数: 允许空参数创建类
public User() { }

public User(string loginID, string Password)
{
this.loginID = loginID;
this.Password = Password;
}

//方法
public void PrintUser()
{
Console.WriteLine("账号:{0},密码:{1}", loginID, Password);
}
}

C# 集合类

1
List<User> list = new List<User>(2)
1
2
3
4
5
6
7
8
9
10
11
12
List<User> list2 = new List<User>(1);
list2.Add(new User("dsa", "sda"));
list2.Add(new User("dsa", "sda"));
list2.Add(new User("dsa", "sda"));
// list2.Insert(); 增
// list2.Remove();
// list2.RemoveAt();

for (int i = 0; i < list2.Count; i++)
{
list2[i].PrintUser();
}

c# 字典集合

1
2
3
4
Dictionary<string,User> list3 = new Dictionary<string,User>();
list3.Add("张三",new User("张三","wdwad222"));
list3["张三"].PrintUser();
Console.ReadKey();

继承

Protected

1
Protected int number;
  • 只有该父类和其子类可以使用

父类引用指向子类成员

1
Person person = new Student();
  • 只能使用父类成员
  • 如要访问子类成员用显式转化

Static 静态

静态成员变量

static public staticCount;

  • 类初始化时加载 只有一份
  • 不要用访问级别

静态构造函数

static Student() {}

  • 初始化类的静态成员

静态代码块

  • 不能访问实例成员
  • 静态代码块加载在实例前
  • 实例方法可以访问实例成员和静态成员

静态类

static class NewClass{}

  • 所有对象共享数据
  • 工具类

结构体

封装小型类型的值类型

值类型在栈中不用开辟新空间

适用于存放位置、颜色信息

struct

  • 自带无参数构造函数

  • 构造函数中必须给所有字段赋值

  • 如有自动属性则 有参数构造函数调用无参数构造行数为自动属性赋值

  • 不能初始化非静态字段

    1
    public Direction(int rIndex,int cIndex):this()