sách gpt4 ai đã đi

Đối tượng/Đối tượng C#

In lại 作者:太空宇宙 更新时间:2023-11-03 17:28:49 29 4
mua khóa gpt4 Nike

C# Sự vật/sự vật 是值类型还是引用类型?

我检查过它们可以保留引用,但是这个引用不能用于更改对象。

using System;

class MyClass
{
public static void Swap(Object obj1, Object obj2)
{
Console.WriteLine("After Swapping");
obj1 = 100;
obj2 = 200;
}
}

class MainClass
{
void tĩnh Main(string[] args)
{
Object obj1 = new Object ();
obj1 = 10;

Object obj2 = new Object ();
obj2 = 20;

Console.WriteLine(obj1.ToString());
Console.WriteLine(obj2.ToString());

MyClass.Swap(obj1, obj2);

Console.WriteLine(obj1.ToString());
Console.WriteLine(obj2.ToString());

Console.ReadLine();
}
}

1 Câu trả lời

您在 Swap 中所做的更改仅限于此 - 您只是在玩指针(和装箱),函数外部的引用保持不变(您有 4 个引用)。如果您更改方法的签名,您将看到不同之处:

thử Swap(ref Object obj1, ref Object obj2).

同样适用

Object obj1 = new Object ();
obj1 = 10;

顺便说一下,这并不比 Object obj1 = 10;

要查看对象是否真的是引用类型,请使用具有属性的类,例如:

class Foo {
public int Value {get; set;}
}

更改 Swap 中对象的 Value,您将在主程序中看到效果。

关于C#对象/对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1550170/

29 4 0
Bài viết được đề xuất: c# - 类型 T 的动态通用声明
Bài viết được đề xuất: CSS 剪辑路径在 Safari 中加载失败
Bài viết được đề xuất: html - 多行对齐和段落背景
Bài viết được đề xuất: c# - 在编写多线程代码之前需要了解哪些重要的线程 API 调用?
太空宇宙
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com