当声明一个 int..
int A = 10;
为什么不改为执行以下操作?
int A = new Int()
A=10;
两者一样吗?
最佳答案
因为 int
是 Int32
的语法糖这是一个值类型。顺便说一下,常数值 10
(value type Int32 的一个实例)也是如此。这就是为什么您不需要使用 new
的原因创建一个新实例,而是复制 10
并将其命名为 A
。类似的语法也适用于引用类型,但不同之处在于不创建副本;创建了一个引用。
基本上,您可以将10
视为先前声明的Int32
实例。 .然后 int A = 10
只是将变量 A 设置为值 10
的副本(如果我们谈论的是 reference types 那么 A 将是设置为对实例的引用而不是副本)。
为了更好地说明这里是另一个例子:
struct SomeValueType {
public SomeValueType(){
}
}
public static readonly SomeValueType DEFAULT = new SomeValueType();
那么你可以这样做:
SomeValueType myValueType = DEFAULT; // no neeed to use new!
现在假设 SomeValueType
是 Int32
而 DEFAULT
是 10
。就是它!
关于c# - 在 C# 中,为什么在声明 int 时不使用 'new' 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15560261/