类要实例化,就必须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在初始化字段之前,字段将是未赋值状态