在 C# 中从类型中创建新实例

Muhammad Maisam Abbas 2021年4月29日
在 C# 中从类型中创建新实例

本教程将讨论使用 C# 在运行时创建给定数据类型的新实例的方法。

在 C# 中使用 Activator 类从类型创建新实例

如果我们想在运行时创建数据类型的新实例并且不知道数据类型,则可以使用 Activator 类和 Type 类来实现此目标。Activator提供了根据 C# 中的类型创建对象实例的方法。Activator.CreateInstance() 方法用于创建具有最适合 C# 中指定类型的构造函数的指定类型的实例。Type表示 C# 中的数据类型。在这种情况下,我们可以使用 Type 类来确定未知数据类型。下面的代码示例向我们展示了如何在运行时创建数据类型的新实例而又不使用 C# 中的 Activator 类和 Type 类来知道数据类型。

using System;

namespace new_object_from_type
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 123;
            Type t = i.GetType();
            Object n = Activator.CreateInstance(t);
            n = 15;
            Console.WriteLine(n);
        }
    }
}

输出:

15

在上面的代码中,我们在运行时创建了一个类型为 int32 的实例,而没有使用 C# 中的 Activator.CreateInstance() 方法指定数据类型。首先,我们使用 C# 中的 i.GetType() 方法确定变量 i 的类型。然后,我们使用 Activator.CreateInstance() 方法创建了该类型的实例。Activator.CreateInstance() 方法会自动为该数据类型找到最佳的构造函数,并使用该实例创建一个实例。然后,我们用值 15 初始化新实例 n 并打印出来。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn