当前位置: 首页 > article >正文

C# 类(Class)

C# 类(Class)

概述

在C#编程语言中,类(Class)是面向对象编程(OOP)的核心概念之一。类是一种用户定义的数据类型,它包含了一组属性(数据)和方法(功能)。类是创建对象的蓝图,通过实例化类,我们可以创建具有特定属性和行为的对象。

类的定义

在C#中,类的定义通常遵循以下语法:

public class ClassName
{
    // 成员变量(属性)
    public int Property1 { get; set; }
    public string Property2 { get; set; }

    // 构造函数
    public ClassName(int value1, string value2)
    {
        Property1 = value1;
        Property2 = value2;
    }

    // 成员方法(功能)
    public void Method1()
    {
        // 方法实现
    }
}

在上面的代码中,ClassName 是一个类的名称,Property1Property2 是类的属性,Method1 是类的方法。

类的成员

属性(Properties)

属性是类的数据成员,用于存储类的状态。在C#中,属性通过 getset 访问器进行访问。

public class MyClass
{
    private int myPrivateValue;

    public int MyPublicValue
    {
        get { return myPrivateValue; }
        set { myPrivateValue = value; }
    }
}

在上面的代码中,MyPublicValue 是一个公共属性,它通过 getset 访问器访问 myPrivateValue 私有字段。

方法(Methods)

方法是一组语句,用于执行特定任务。在C#中,方法可以是实例方法或静态方法。

  • 实例方法:需要通过类的实例来调用,并可以访问类的实例成员。
  • 静态方法:不需要通过类的实例来调用,通常用于访问静态成员。
public class MyClass
{
    public void InstanceMethod()
    {
        // 实例方法实现
    }

    public static void StaticMethod()
    {
        // 静态方法实现
    }
}

构造函数(Constructors)

构造函数是类的特殊方法,用于在创建对象时初始化对象的属性。构造函数的名称必须与类名相同。

public class MyClass
{
    public MyClass(int value)
    {
        MyProperty = value;
    }

    public int MyProperty { get; set; }
}

在上面的代码中,MyClass 类有一个构造函数,它接受一个整数值并初始化 MyProperty 属性。

事件(Events)

事件是类的一种特殊成员,用于通知其他对象某个特定事件已经发生。

public class MyClass
{
    public event EventHandler MyEvent;

    protected virtual void OnMyEvent()
    {
        MyEvent?.Invoke(this, EventArgs.Empty);
    }
}

在上面的代码中,MyClass 类有一个名为 MyEvent 的事件,当调用 OnMyEvent 方法时,将触发该事件。

类的继承

在C#中,类可以通过继承来扩展其他类的功能。继承是面向对象编程的核心概念之一。

public class DerivedClass : BaseClass
{
    // 派生类成员
}

在上面的代码中,DerivedClass 继承自 BaseClass 类。

总结

类是C#编程语言中面向对象编程的核心概念之一。通过类,我们可以创建具有特定属性和行为的对象。在本文中,我们介绍了类的定义、成员、继承等相关概念,希望对您有所帮助。


http://www.kler.cn/a/520231.html

相关文章:

  • < OS 有关 > 阿里云:轻量应用服务器 的使用 :轻量化 阿里云 vpm 主机
  • cloc下载和使用
  • 【leetcode100】从前序与中序遍历序列构造二叉树
  • 【数据结构】深入解析:构建父子节点树形数据结构并返回前端
  • WebForms 表单
  • Vue入门(Vue基本语法、axios、组件、事件分发)
  • SOME/IP--协议英文原文讲解1
  • 深度解析:基于Vue 3的教育管理系统架构设计与优化实践
  • 【论文阅读笔记】“万字”关于深度学习的图像和视频阴影检测、去除和生成的综述笔记 | 2024.9.3
  • 【趋势】《2024—2026金融科技十大趋势预测》一览
  • 【学术会议-第五届机械设计与仿真国际学术会议(MDS 2025) 】前端开发:技术与艺术的完美融合
  • Kiwi 安卓浏览器本月停止维护,扩展功能迁移至 Edge Canary
  • 基于SpringBoot的在线众筹网的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • Linux 内核学习(5) --- Linux 内核底半部机制
  • 微信小程序-点餐(美食屋)02开发实践
  • 基于DNN深度神经网络的OFDM+QPSK信号检测与误码率matlab仿真
  • 9.5 GPT Builder 快速入门:如何使用 GPT 构建自定义应用
  • 深度学习:从基础到前沿
  • Vue 3 中的标签 ref 与 defineExpose:模板引用与组件暴露
  • 深入学习华为IPD流程之华为-PDT经理角色认知培训教材
  • 【全栈】SprintBoot+vue3迷你商城(10)
  • 【深度之眼cs231n第七期】笔记(三十一)
  • 初学stm32 --- FreeRTOS移植
  • vue3中src的目录分析
  • Dev-C++分辨率低-解决办法
  • 2024年AI发展的感知回顾