C# 中初始化和实例化的区别

17 Mar 2025 | 4 分钟阅读

在本文中,我们将讨论 C# 中初始化 (Initialization)实例化 (Instantiation) 之间的区别。但在讨论区别之前,我们必须通过语法和示例了解 C# 中的初始化和实例化。

什么是初始化?

在 C# 中,初始化是开发人员为变量赋予初始值的过程。每当程序员想要使用某些变量时,都必须用一些初始值来初始化它们。

初始化的语法

它具有以下语法:

一些常见的初始化方法

以下是几种常见的初始化方法

  • 构造函数初始化
  • 对象初始化
  • 集合初始化
  • 数组初始化

什么是实例化?

在 C# 中,实例化是在程序中创建类的一个对象或实例的过程。在这里,我们为对象分配内存,并初始化所创建对象的成员。新创建的对象可以访问类中的所有成员和成员函数,例如方法、运算符和字段等。

实例化的语法

它具有以下语法:

一些常见的实例化方法

以下是几种常见的实例化方法

  • 使用 new 关键字
  • 使用克隆或复制构造函数
  • 使用反射

示例

让我们通过一个 C# 程序来说明初始化实例化

输出

Difference between Initialization and Instantiation in C#

说明

在上面的程序中,有两个类:MainCar。在 Car 类中,有三个变量,两个是字符串,一个是整数。它们在构造函数中被初始化。这个类还包含一个 display 方法,用于显示该类中的变量。在 Main 类中,创建了一个对象,并为变量赋了一些初始值。这里,对象的创建使用了实例化。之后,借助该对象,访问 DisplayDetails 方法以打印类中的所有成员。

C# 中初始化和实例化的区别

Difference between Initialization and Instantiation in C#

C# 中的初始化实例化有几个区别。以下是 C# 中初始化和实例化之间的一些主要区别

特点初始化实例化
定义它在变量声明时为其赋予初始值。它为类创建对象。
语法数据类型 变量名 = 值;类名 对象名 = new 类名();
发生时间它在声明时发生。它在运行时发生。
应用它既适用于变量也适用于对象。它主要用于创建对象。
内存分配它不一定涉及内存分配。
int x = 5;
不需要内存分配
它涉及内存分配。
Myclass obj = new Myclass();
为对象分配了内存
类型它被赋给整数、字符串和浮点数据类型等。这些特定于由程序员创建的类。
默认值它包含一些默认值。对象没有默认值。
可变 vs 不可变它用于可变和不可变变量。
可变: int x = 5
不可变: string s = "javaTpoint"
它创建可变的对象或实例
可变
MyClass obj = new MyClass();
参数化操作它涉及对变量的参数化赋值。它涉及对对象的参数化赋值。
编译时 vs 运行时它可能在编译时或运行时发生。它只在运行时发生。
继承继承不适用。它涉及从父类继承属性。
可访问性这些可以在各种作用域中访问。
示例
public static int globalVar = 10;
这些在方法和构造函数内部被访问
示例
static void Main()
{
// 访问类作用域的方法
MyClass.ClassMethod();
}