C#引用类型学习

C# 的引用类型主要包括以下几类:

‌ 类类型

‌ 接口类型

‌ 委托类型

‌ 数组类型,即使元素是值类型,数组本身也是引用类型。

‌ 字符串类型(string)‌:string 是 System.String 的别名,属于引用类型。

‌ 对象类型(object)‌:object 是所有引用类型的基类型,也是引用类型的一种。

字符串虽为引用类型,但行为类似值类型。修改字符串会创建新对象,原字符串保持不变。

cs 复制代码
private void button1_Click(object sender, EventArgs e)
        {
            string s1 = "Hello";
            string s2 = s1;
            s2 = "World"; // s1仍为"Hello"

            textBox1.Text = s1 + Environment.NewLine;
            textBox1.Text += s2;
        }

引用类型需通过地址访问数据,可能比值类型稍慢,但适合管理复杂对象和共享数据;

cs 复制代码
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Person p1 = new Person { Name = "Alice" };
            Person p2 = p1; // p2和p1指向同一对象

            p2.Name = "Bob";
            //Console.WriteLine($"p1.Name: {p1.Name}"); // 输出"Bob"
            //Console.WriteLine($"p2.Name: {p2.Name}"); // 输出"Bob"
            textBox1.Text = p1.Name + Environment.NewLine;
            textBox1.Text += p2.Name + Environment.NewLine;

            // 检查引用是否相同
            bool areSame = object.ReferenceEquals(p1, p2);
            //Console.WriteLine($"p1和p2引用同一对象: {areSame}"); // 输出"True"
            textBox1.Text += Environment.NewLine;
            textBox1.Text += "p1和p2引用同一对象: " + areSame;
        }
    }

    class Person
    {
        public string Name { get; set; }
    }
}
相关推荐
峥无9 分钟前
C++11 深度详解:现代 C++ 基石全梳理
开发语言·c++·笔记
阿米亚波20 分钟前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl
SomeB1oody1 小时前
【RustyML入门】1.0. 快速上手
开发语言·后端·机器学习·rust·教程
狗凯之家源码网1 小时前
短剧系统搭建实战:源码功能与商业变现效果全景展示
开发语言·php
caishenzhibiao1 小时前
期货先行者主图 同花顺期货通指标
java·c语言·c#
库拉库拉里1 小时前
Word文档的标题总是自动出现首行缩进怎么办?
c#·word·xhtml
在世修行1 小时前
从零打造 C# 工业视觉检测系统(一):项目全景与架构设计
c#·视觉检测
易筋紫容2 小时前
创建型模式:对象的诞生艺术
开发语言·前端·javascript
888CC++2 小时前
C++ 快速学习指南:从入门到进阶的实战路线
开发语言·c++
小小晓.2 小时前
C++记:函数
开发语言·c++·算法