代码之家  ›  专栏  ›  技术社区  ›  Unknown

假设所有由new初始化的c变量都是引用?

  •  2
  • Unknown  · 技术社区  · 16 年前

    我现在正在学习参考文献。

    假设所有与新变量一起分配的变量都是引用而不是值是否安全?

    例子:

    SomeType variable = new SomeType()
    
    6 回复  |  直到 16 年前
        1
  •  4
  •   ChrisW    16 年前

    不:

    • 类的实例是引用,但结构的实例是值。
    • 类和结构都可以使用new

    例如, System.Drawing.Point 是一个 struct 不是一个 class :

    Point point = new Point(1, 1); //point is a value, not a reference
    
        2
  •  3
  •   Gishu    16 年前

    C有两种类型的对象-引用类型(用类关键字定义)和值类型(用结构关键字定义)。

    找一本关于C的好书了解更多细节。这是一个重要的概念。

        3
  •  1
  •   leppie    16 年前

    不,值类型不是引用。

    但对于任何其他非valuetype类型和“ref/out”参数,它们都是引用。

        4
  •  1
  •   Tal Pressman    16 年前

    不。在C结构中,也使用new()实例化,但被视为值。

        5
  •  0
  •   Jeremy    16 年前

    看起来您把引用和对象混淆了。如果是这种情况,则使用新关键字创建的类型是对象。但作为值处理的结构除外。

        6
  •  0
  •   jrcalzada    16 年前

    不一定。当你进一步了解C时,你会发现你有一些类,它们是引用类型,还有结构,它们是值类型。它们都是通过使用“new”关键字实例化的,但结构的实例不是引用。

    推荐文章