为了账号安全,请及时绑定邮箱和手机立即绑定

实际上有什么不同的 new 和 object 以及它如何在 ram 中运行

实际上有什么不同的 new 和 object 以及它如何在 ram 中运行

C#
倚天杖 2021-07-09 06:07:43
object 和 new 有什么区别?原因在 javascript 中,当您编写如下代码时,在使用 new 关键字时在堆栈中创建了一个地址。     var a=new A();     function A(){};所以在 c# 中,当我这样创建时,它与上面的概念是否相同?        int x;        Console.WriteLine("ENter value of N");        x = int.Parse(Console.ReadLine());        object y = x; //boxing         int z = (int)x; // unboxing         Console.WriteLine(z);当我使用 new 创建地址时,c# 有什么不同        Form myForm = new Form(); //this can call boxing or no?
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

首先,你应该知道Javascript是一种动态的、弱类型的脚本语言并且在运行时绑定,而C#(C Sharp)是一种强类型的静态语言并且提前编译。

对象是描述其行为的类的实例。该类可以描述为创建对象的蓝图或模板。

new是 C# 中的一个关键字,用于创建类的对象并返回其指针或地址。然后我们使用它的指针来访问对象。该对象存储在堆上,并返回其指针以供进一步使用。

因此,在 C# 中,您可以通过以下方式创建对象

Form objForm = new Form();

请阅读本文以进一步了解

堆:

堆是一块内存,对象(即引用类型实例)驻留在其中。每当创建一个新对象时,它都会在堆上分配,并返回对该对象的引用。在程序执行期间,堆开始随着新对象的创建而填满。运行时有一个垃圾收集器,它会定期从堆中释放对象,因此您的程序不会因内存不足而运行。只要一个对象没有被任何本身活着的东西引用,它就有资格被释放。


查看完整回答
反对 回复 2021-07-10
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信