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; }
    }
}
相关推荐
方也_arkling1 天前
【Java-Day08】static / final / 枚举
java·开发语言
风吹夏回1 天前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
Chengbei111 天前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1121 天前
web-第一次课后作业
java·开发语言·idea
小熊Coding1 天前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋91 天前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
xiaoshuaishuai81 天前
C# 内存管理与资源泄漏
开发语言·c#
lsx2024061 天前
SVN 检出操作
开发语言
basketball6161 天前
C++ NULL 和 nullptr 区别 以及 nullptr 的核心实现
java·开发语言·c++
旺仔来了1 天前
不联网的Linux下部署python环境
linux·开发语言·python