当前位置: 代码迷 >> C# >> 构造类型也可以NEW么
  详细解决方案

构造类型也可以NEW么

热度:167   发布时间:2016-04-28 08:35:57.0
结构类型也可以NEW么
类要实例化,就必须new,因为是引用类型。
但结构类型属于值类型,难道也可以用new?用new和不用new的区别是什么?


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication8
{
    struct myStruct
    {
        public int val;
    }

    class Program
    {
        static void Main(string[] args)
        {
            myStruct pp = new myStruct();
            pp.val = 30;
            Console.WriteLine(pp.val);
            Console.Read();
        }
    }
}

------解决思路----------------------
如果使用 new 运算符创建结构对象,则会创建该结构对象,并调用适当的构造函数。 与类不同,结构的实例化可以不使用 new 运算符。 在此情况下不存在构造函数调用,因而可以提高分配效率。 但是,在初始化所有字段之前,字段将保持未赋值状态且对象不可用。

https://msdn.microsoft.com/zh-cn/library/0taef578.aspx
------解决思路----------------------
结构可以不用new,但需要对成员赋值后才能用;也可以用,那样成员保留了该类型默认值
new是分配一块内存
------解决思路----------------------
这里new是可以的,结构体也一样可以new,只是这是没有任何实在意义的,因为定义的时候就已经存在内存中。
不使用new在初始化字段之前,字段将是未赋值状态
  相关解决方案