如何分配将在 C# 中确定 运行 的对象

how to assign a object that will be determined run in C#

我想根据条件动态分配对象,不允许我在没有声明的情况下创建变量。 var carSegment;

        switch (segmentType)
        {
            case "CarSeg":
                carSegment = new CarSeg();
                break;
            case "NonAirSeg":
                carSegment = new NonAirSeg();
                break;

        }

为了做到这一点,CarSegNonAirSeg 都需要共享一个接口或基 class,这将是 carSegment 的类型。例如,如果它们都实现了一个名为 ISegment 的接口,那么您可以这样做:

ISegment carSegment = null;

那么您 switch 语句中的赋值将在当前状态下工作。如果他们实现了共同的祖先 class.

也是如此

要注意的是 carSegment 是那个普通类型,而且只是那个普通类型。如果您需要这两种不同类型的细节,那么您可能需要在这个代码段的范围之外重新考虑您的设计。