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. 静态方法:通过类名直接调用,无需创建对象
相关推荐
呆呆敲代码的小Y1 天前
【游戏开发】Lua 与 C# 交互原理解析
c#·lua·交互·热更新·lua与c#交互·游戏热更新
用户298698530141 天前
PDF 转纯文本(TXT)免费攻略:轻松提取文字内容
人工智能·后端·c#
呆呆敲代码的小Y1 天前
【游戏开发】C# 中的迭代器
java·开发语言·c#·迭代器
格林威2 天前
C# 相机Burst模式图像采集:使用相机内存配合OpenCvSharp和Halcon实现短时间的高速采集的方法
开发语言·人工智能·数码相机·计算机视觉·c#·视觉检测·工业相机
J总裁的小芒果2 天前
参数过多-分批传参
c#
典典分享指南2 天前
短视频分镜提示词:让 AI 出片的产品口播
java·c#·bash·composer·symfony
Z5998178412 天前
c#软件开发学习笔记--WPF(Canvas、数据绑定、MVVM模式、值转换器)
笔记·学习·c#
淡海水2 天前
05-03-栈队列-PriorityQueue-TElement-TPriority-NET6优先队列语义与四叉堆实现
服务器·前端·c#·priorityqueue·clr·telement
leonkay3 天前
C# 特性(Attribute)——【1】基础讲解
开发语言·青少年编程·面试·c#·.net·个人开发