如何分配将在 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;
}
为了做到这一点,CarSeg
和 NonAirSeg
都需要共享一个接口或基 class,这将是 carSegment
的类型。例如,如果它们都实现了一个名为 ISegment
的接口,那么您可以这样做:
ISegment carSegment = null;
那么您 switch
语句中的赋值将在当前状态下工作。如果他们实现了共同的祖先 class.
也是如此
要注意的是 carSegment
是那个普通类型,而且只是那个普通类型。如果您需要这两种不同类型的细节,那么您可能需要在这个代码段的范围之外重新考虑您的设计。
我想根据条件动态分配对象,不允许我在没有声明的情况下创建变量。 var carSegment;
switch (segmentType)
{
case "CarSeg":
carSegment = new CarSeg();
break;
case "NonAirSeg":
carSegment = new NonAirSeg();
break;
}
为了做到这一点,CarSeg
和 NonAirSeg
都需要共享一个接口或基 class,这将是 carSegment
的类型。例如,如果它们都实现了一个名为 ISegment
的接口,那么您可以这样做:
ISegment carSegment = null;
那么您 switch
语句中的赋值将在当前状态下工作。如果他们实现了共同的祖先 class.
要注意的是 carSegment
是那个普通类型,而且只是那个普通类型。如果您需要这两种不同类型的细节,那么您可能需要在这个代码段的范围之外重新考虑您的设计。