C#类和对象

C#类和对象是面向对象编程的重要概念。本教程将向您详细介绍C#类和对象的基本知识。


什么是类?

在C#中,类是对一类对象的抽象,它是描述对象共同特征和行为的模板。您可以通过创建类的实例,来创建一个或多个具有相同特征和行为的对象。


如何声明类?

声明类的语法如下:

public class ClassName
{
    // Fields, properties, methods, events, and other members go here.
}

在上面的代码中,“ClassName”是类的名称,而大括号内是类的成员。


什么是对象?

对象是类的实例,表示具有相同特征和行为的一个具体事物。您可以通过使用 new 关键字和类名来创建对象。

例如:

ClassName obj = new ClassName();

在上面的代码中,“obj”是一个对象的名称,而“ClassName”是类的名称。


什么是类成员?

类的成员可以是字段、属性、方法、事件等。类成员定义类的特征和行为。

例如,下面是一个包含字段和方法的类的示例:

public class ClassName
{
    private int num;

    public ClassName()
    {
        num = 0;
    }

    public ClassName(int value)
    {
        num = value;
    }

    public int Num
    {
        get { return num; }
        set { num = value; }
    }

    public void Display()
    {
        Console.WriteLine("Num: {0}", num);
    }
}

在这个示例中,有两个构造函数:一个无参数构造函数和一个带一个参数的构造函数。


属性和字段的区别?

1.反射出来的对象有区别(需要有反射相关知识才能理解)

2.属性只有调用才会走Get逻辑,字段实例化类就会赋值

3.get里面会重复调用,字段不会。

public int a
{ 
  get
  { 
     return 1;//每次使用a都会走这个逻辑
  }  
} 
//也可以简化成这样
//public int a { get=>1; } 


public int b=0;//实例化后在使用不会重新赋值

4.属性有(get(获取) set(赋值))2部分组成 功能比字段更强大

public int a { get=>1; } //没有set属性就是只读
public int a { get;set; } //有get;set;可以写入也可以读取
public int a { get=>1;set; }   //给默认值1


类的继承

此外,您还可以通过使用继承来实现类之间的关系。通过继承,您可以创建一个新类,该类继承自已存在的类,并可以添加新的成员或重写父类中的成员。

public class ParentClass
{
    public void Display()
    {
        Console.WriteLine("Parent Class");
    }
}
public  class ChildClass : ParentClass
{
    public new void Display()
    {
        Console.WriteLine("Child Class");
    }
}

在上面的代码中,ChildClass类继承自ParentClass类,并重写了Display方法。


静态类

首先是静态类,静态类是一种特殊类型的类,可以通过类名直接访问它的成员,而无需创建它的实例。静态类只能包含静态成员,而不能包含实例成员。

public static class StaticClass //带有static表示静态类
{
    public static void Display()//带有static表示静态方法
    {
        Console.WriteLine("Static Class");
    }
}

在上面的代码中,StaticClass是一个静态类,可以通过类名直接访问它的Display方法。

StaticClass.Display();


果糖网