6.C# —— 类与对象、数据类型、方法详解

目录

一、类和对象

[1. 核心概念](#1. 核心概念)

[2. 类的定义](#2. 类的定义)

[3. 对象创建与赋值](#3. 对象创建与赋值)

二、值类型与引用类型

[1. 值类型](#1. 值类型)

[2. 引用类型](#2. 引用类型)

三、方法的定义与调用

[1. 方法概念](#1. 方法概念)

[2. 方法定义](#2. 方法定义)

[3. 方法调用](#3. 方法调用)

四、方法参数

[1. 普通参数](#1. 普通参数)

[2. 多参数](#2. 多参数)

[3. 对象参数](#3. 对象参数)

[4. 默认参数](#4. 默认参数)

五、核心总结


一、类和对象

1. 核心概念

  • :对象的模板 / 蓝图,是具有相同属性行为的集合
  • 对象:类的实例化,是类具体的表现

2. 类的定义

  • 关键字:class
  • 命名规范:大驼峰
  • 访问修饰:常用 public(公共)、internal(内部)
cs 复制代码
public class Student
{
    // 私有字段(类内部使用)
    private int _age;
    
    // 公共属性(外部访问)
    public int Age { get; set; }
    public string Name { get; set; }
    public string Sex { get; set; }
}

3. 对象创建与赋值

方式 1:先创建,后赋值

cs 复制代码
Student student = new Student();
student.Name = "张三";
student.Age = 10;
student.Sex = "男";

方式 2:创建时直接赋值

cs 复制代码
Student lisi = new Student() { Name = "李四", Age = 20, Sex = "女" };

二、值类型与引用类型

1. 值类型

  • 存储:栈内存 ,保存值本身
  • 赋值:拷贝一份新数据,互不影响
  • 类型:int、float、double、bool、char、枚举、结构体、DateTime
cs 复制代码
int a = 10;
int b = a;  // 拷贝值
a = 30;     // 修改a,b不变
Console.WriteLine(b);  // 10

2. 引用类型

  • 存储:堆内存 ,保存内存地址 / 引用
  • 赋值:拷贝地址,指向同一块内存,一改全改
  • 类型:string、class、对象、数组、集合
cs 复制代码
Book b1 = new Book();
b1.Name = "远大前程";

Book b3 = new Book();
b3.Name = "无";
b1 = b3;          // 共用地址
b3.Name = "无1";  // 修改b3,b1同步变化
Console.WriteLine(b1.Name);  // 无1

三、方法的定义与调用

1. 方法概念

  • 封装一段功能代码,实现代码复用
  • 组成:修饰符 + 返回值 + 方法名 + 参数 + 方法体

2. 方法定义

cs 复制代码
// 公共静态无返回值无参方法
public static void Test()
{
    // 方法体
    Console.WriteLine("方法执行");
}

3. 方法调用

  • 静态方法:类名.方法名() 或直接调用
  • 非静态方法:对象.方法名()
cs 复制代码
Test();  // 直接调用静态方法
Program.Test();  // 类名调用

四、方法参数

1. 普通参数

cs 复制代码
public static void Test(string name)
{
    Console.WriteLine(name);
}

// 调用
Test("细雪");

2. 多参数

cs 复制代码
public static void Test1(int count, string name)
{
    for (int i = 0; i < count; i++)
    {
        Console.WriteLine(name);
    }
}

3. 对象参数

cs 复制代码
public static void Test2(Dog dog)
{
    Console.WriteLine(dog.Name + ":" + dog.Age);
}

4. 默认参数

  • 写在参数列表最后
  • 不传参使用默认值,传参使用传入值
cs 复制代码
public static void Test4(int count, string name, string lieji = "劣迹明星")
{
    Console.WriteLine(name + "是" + lieji);
}

// 调用
Test4(10, "你好");             // 使用默认值
Test4(10, "理解", "榜样明星"); // 使用传入值

五、核心总结

  1. 类与对象:类是模板,对象是实例;字段私有、属性公开
  2. 值类型:存栈中,赋值拷贝,互不影响
  3. 引用类型:存堆中,赋值传地址,一改全改
  4. 方法:封装功能,支持多参数、对象参数、默认参数
  5. 静态方法:通过类名直接调用,无需创建对象
相关推荐
伽蓝_游戏5 小时前
第二章:深入 Unity 资源导入管线 (Asset Import Pipeline)
游戏·unity·c#·游戏引擎·游戏程序
爱炸薯条的小朋友6 小时前
全局锁的性能优势,以及链路优化为何常常低于预期——基于 `MatPoolsTest` 中小图池与大图池的实战复盘
opencv·算法·c#
心蓝无敌8 小时前
攻克Avalonia Dock布局中WebView等原生控件无法停靠的难题
c#·visual studio·avalonia·avalonia dock
guygg889 小时前
C# 监听数据库数据变化(SqlDependency 实现)
数据库·oracle·c#
爱炸薯条的小朋友12 小时前
C#由窗体原子表溢出造成的软件闪退,根本原因补充
开发语言·c#·wpf
我是苏苏13 小时前
C#基础:Winform桌面开发中自定义组件UI、属性及事件
服务器·数据库·c#
2401_8530878813 小时前
Confluence 替代落地复盘:存量数据迁移、权限重构、信创适配踩坑总结
开发语言·重构·c#
曹牧13 小时前
C#:DataGridView控件中展示JSON内容
开发语言·c#·json
He少年14 小时前
【AI路径代理与业务接入 — 成功失败感悟】
人工智能·c#