创建C#类的对象有哪些不同的方法?
c#
我在求职面试中被问到这个问题,但不确定 C# 中还有哪些其他选项可用于创建类的对象。我知道创建对象的基本方法。例如:我有一个名为“ClassName”的类,所以要创建对象,我可以使用
ClassName classNameObject = new ClassName();
有人可以告诉我还有哪些其他方法可以用来实例化一个类?提前致谢!
回答
还有几种方式:
-
使用反射创建对象。
object classNameObject = Activator.CreateInstance(typeof(ClassName));的
CreateInstance<T>()通用方法用于由编译器实现的按类型参数指定类型实例化。在此处查看更多信息。
-
创建对现有对象的引用。
ClassName classNameObject = new(); ClassName otherClassNameObject = classNameObject; -
通过注册一个实例来使用 DI(依赖注入)容器创建一个对象(我不会在这里写代码,因为它取决于你使用的 DI)。
-
使用反序列化创建一个对象。
BinaryFormatter formatter = new(); (ClassName)formatter.Deserialize(...);
您也可以使用JsonConvert.DeserializeObject<ClassName>.
-
使用MemberwiseClone创建一个对象。
ClassName classNameObject = new(); ClassName otherClassNameObject = (ClassName) this.MemberwiseClone();
注意,new关键字的不同用法也有很多种,但我在这里没有提到它,因为它只是语法。
- 对所有 **5 种为 ac# 类创建对象的方法以及何时选择可用的 ** 方法的优缺点的解释[此处](https://levelup.gitconnected.com/5-ways-to -create-an-object-in-c-and-when-to-choose-which-one-4aabea5c3e40)