【问题标题】:actually what different new and object and how it run in ram实际上有什么不同的 new 和 object 以及它如何在 ram 中运行
【发布时间】:2018-11-07 15:53:31
【问题描述】:

object和new有什么区别?当你的代码如下时在javascript中导致在具有新关键字时在堆栈中创建了一个地址。

     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?

【问题讨论】:

  • 不要试图将 javascript 与 c# 进行比较。这就像比较苹果和橘子。
  • JavaScript 没有公开 JavaScript 引擎如何使用内存。变量存储在堆栈中的假设通常是不正确的。
  • 这行代码没有拆箱。 int z = (int)x; x 只是一个整数。我想你的意思是int z = (int)y

标签: javascript c# oop object


【解决方案1】:

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

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

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

所以在C#中你可以通过

创建一个对象
Form objForm = new Form();

请阅读本文以进一步了解

堆:

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

【讨论】:

    猜你喜欢
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 2014-02-10
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多