AI教我学编程之C#类的基本概念(1)

前言

AI教我学编程之C#类型 中,我们学习了C#类型的的基础知识,而正是类型的一种.

目录

区分类和类型

在 C# 中,类是类型的一种。C# 是一种面向对象的编程语言,它的类型系统分为值类型和引用类型。类属于引用类型的范畴,因为它是用户定义的引用类型。

什么是类?

或者说,什么样的构造可以称之为类?
在菜鸟教程上我们可以看到这段话
在这里插入图片描述
我们来看看AI对此会如何回答?

对话AI

程序员

什么样的构造可以称之为类?

在这里插入图片描述

在面向对象编程中,一个类是一个用于创建对象的蓝图或模板。一个类可以包含以下元素:

  1. 成员变量(字段): 用于存储对象的状态或属性。

    class Person
    {
         
        // 成员变量
        public string Name;
        public int Age;
    }
    
  2. 成员方法: 用于定义对象的行为或操作。

    class Person
    {
         
        // 成员方法
        public void DisplayInfo()
        {
         
            Console.WriteLine($"Name: {
           Name}, Age: {
           Age}");
        }
    }
    
  3. 构造函数: 用于初始化对象的特定状态。

    class Person
    {
         
        // 成员变量
        public string Name;
        public int Age;
    
        // 构造函数
        public Person(string name, int age)
        {
         
            Name = name;
            Age = age;
        }
    }
    
  4. 属性(可选): 提供对成员变量的访问和修改的公共接口。

    class Person
    {
         
        // 自动属性
        public string Name {
          get; set; }
        public int Age {
          get; set; }
    }
    
  5. 事件(可选): 允许对象发布和订阅事件。

    class Button
    {
         
        // 事件
        public event EventHandler Click;
    
        // 触发事件的方法
        protected virtual void OnClick(EventArgs e)
        {
         
            Click?.Invoke(this, e);
        }
    }
    

一个类的目的是封装数据和行为,通过创建对象的实例来使用这些数据和行为。上述元素的组合形成了一个完整的类定义。在使用类时,你可以实例化它并调用其中的方法,访问或修改成员变量等。

首先我们看到这几段代码都以class关键字作为开始,就是说,这段代码表示是由class关键字开始,名称为person,由以下三个元素组成

  • 成员变量:
    • Name:用于存储人员的名字。
    • Age:用于存储人员的年龄。
  • 构造函数:
    public Person(string name, int age):构造函数用于在创建 Person 类的实例时初始化对象的状态(名字和年龄)。
  • 成员方法:
    DisplayInfo():成员方法用于显示人员的名字和年龄信息。

那么剩下两个可选项是做什么的呢?我们接着往下看

追问

程序员

你刚刚列出了两个可选项,属性和事件,为什么这两个只是可选项?

在这里插入图片描述

属性和事件在类的设计中是可选的,而不是必需的,这取决于你的设计需求。下面是关于为什么它们是可选项的一些解释:

  1. 属性(Properties):

    • 作用: 属性提供了一种用于访问和修改类的成员变量的公共接口。它们允许你在读取或写入属性值时执行逻辑,并且可以隐藏实际的字段实现。
    • 为何是可选: 有时,一个简单的公共字段足以满足类的需求,而不需要额外的逻辑。在这种情况下,你可以选择跳过属性的使用。
    class Person
    {
         
        // 公共字段
        public string Name;
        public int Age;
    }
    

    或者使用属性:

    class Person
    {
         
        // 属性
        public string Name {
          get; set; }
        public int Age {
          get; set; }
    }
    
  2. 事件(Events):

    • 作用: 事件允许类发布和订阅特定的行为,通常与异步编程和观察者模式有关。
    • 为何是可选: 如果你的类不需要定义或响应外部的事件,那么你可以省略事件的使用。事件通常在需要处理异步或交互式操作时使用,而在其他情况下可能不是必需的。
    class Button
    {
         
        // 事件
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积德行善.jpg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值