/// <summary> /// 获取或设置指定相位的数值(不包含总相)。 /// </summary> /// <param name="phase">相位。</param> /// <returns></returns> public override decimal?this[PhaseOptions phase] { get { if (phase == PhaseOptions.Zero) { return(this.Zero); } else { return(base[phase]); } } set { if (phase == PhaseOptions.Zero) { this.Zero = value; } else { base[phase] = value; } } }
/// <summary> /// 获取指定功效类型的值,并且当指定的功效类型数据不存在时返回一个无数值的 RatesEfficacyPhaseValue 对象。 /// </summary> /// <param name="efficacy">功效类型。</param> /// <param name="phase">相位。</param> /// <returns>该方法始终返回 RatesEfficacyPhaseValue 实例,不会返回 null。</returns> public RatesEfficacyPhaseValue GetValue(EfficacyOptions efficacy, PhaseOptions phase) { foreach (RatesEfficacyPhaseValue value in this) { if (value.Efficacy == efficacy && value.Phase == phase) { return(value); } } return(new RatesEfficacyPhaseValue(efficacy, phase)); }
/// <summary> /// 获取相位、相序的文字说明。 /// </summary> /// <param name="phase">相位、相序</param> /// <returns>相位、相序的文字说明</returns> public static string GetDescription(this PhaseOptions phase) { switch (phase) { case PhaseOptions.Total: return("总"); case PhaseOptions.A: return("A相"); case PhaseOptions.B: return("B相"); case PhaseOptions.C: return("C相"); case PhaseOptions.Zero: return("零相"); default: throw new NotImplementedException("尚未实现该枚举。"); } }
/// <summary> /// 获取或设置指定相位的数值(仅包含A、B、C三相)。 /// </summary> /// <param name="phase">相位。</param> /// <returns></returns> public virtual decimal?this[PhaseOptions phase] { get { switch (phase) { case PhaseOptions.A: return(this.A); case PhaseOptions.B: return(this.B); case PhaseOptions.C: return(this.C); default: return(null); } } set { switch (phase) { case PhaseOptions.A: this.A = value; break; case PhaseOptions.B: this.B = value; break; case PhaseOptions.C: this.C = value; break; } } }
/// <summary> /// 费率、功效类型及相位组合的值。 /// </summary> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">该数据的相位。</param> /// <param name="total">总费率的数据。</param> /// <param name="pike">尖费率的数据。</param> /// <param name="peak">峰费率的数据。</param> /// <param name="flat">平费率的数据。</param> /// <param name="vale">谷费率的数据。</param> public RatesEfficacyPhaseValue(EfficacyOptions efficacy, PhaseOptions phase, decimal?total, decimal?pike, decimal?peak, decimal?flat, decimal?vale) : base(efficacy, total, pike, peak, flat, vale) { this.Phase = phase; }
/// <summary> /// 费率、功效类型及相位组合的值。 /// </summary> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">该数据的相位。</param> public RatesEfficacyPhaseValue(EfficacyOptions efficacy, PhaseOptions phase) : base(efficacy) { this.Phase = phase; }
/// <summary> /// 功效类型及相位组合的曲线段值。 /// </summary> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">曲线数据的相位。</param> /// <param name="startTimeNum">第一个点的数值所对应的时间(hhmmss)。</param> /// <param name="endTimeNum">最后一个点的数值所对应的时间(hhmmss)。</param> /// <param name="values">曲线段各点数据。</param> public EfficacyPhaseCurvePartValue(EfficacyOptions efficacy, PhaseOptions phase, int startTimeNum, int endTimeNum, decimal?[] values) : base(phase, startTimeNum, endTimeNum, values) { this.Efficacy = efficacy; }
/// <summary> /// 功效类型及相位组合的曲线段值。 /// </summary> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">曲线数据的相位。</param> /// <param name="curvePoint">曲线点数,该参数为 0:00:00 至 23:59:59 完整的曲线数据点数。</param> /// <param name="startTimeNum">第一个点的数值所对应的时间(hhmmss)。</param> /// <param name="endTimeNum">最后一个点的数值所对应的时间(hhmmss)。</param> public EfficacyPhaseCurvePartValue(EfficacyOptions efficacy, PhaseOptions phase, CurvePointOptions curvePoint, int startTimeNum, int endTimeNum) : base(phase, curvePoint, startTimeNum, endTimeNum) { this.Efficacy = efficacy; }
/// <summary> /// 各相位的曲线值。 /// </summary> /// <param name="phase">曲线数据的相位。</param> /// <param name="values">数据数组。数据数组的长度必须符合 CurvePointOptions 中定义的长度。</param> public PhaseCurveValue(PhaseOptions phase, decimal?[] values) : base(values) { this.Phase = phase; }
/// <summary> /// 各相位的曲线段值。 /// </summary> /// <param name="phase">曲线数据的相位。</param> /// <param name="startTimeNum">第一个点的数值所对应的时间(hhmmss)。</param> /// <param name="endTimeNum">最后一个点的数值所对应的时间(hhmmss)。</param> /// <param name="values">曲线段各点数据。</param> public PhaseCurvePartValue(PhaseOptions phase, int startTimeNum, int endTimeNum, decimal?[] values) : base(startTimeNum, endTimeNum, values) { this.Phase = phase; }
/// <summary> /// 费率、功效类型及相位组合的曲线段值。 /// </summary> /// <param name="rates">该数据的费率。</param> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">曲线数据的相位。</param> /// <param name="startTimeNum">第一个点的数值所对应的时间(hhmmss)。</param> /// <param name="endTimeNum">最后一个点的数值所对应的时间(hhmmss)。</param> /// <param name="values">曲线段各点数据。</param> public RatesEfficacyPhaseCurvePartValue(RatesOptions rates, EfficacyOptions efficacy, PhaseOptions phase, int startTimeNum, int endTimeNum, decimal?[] values) : base(efficacy, phase, startTimeNum, endTimeNum, values) { this.Rates = rates; }
/// <summary> /// 费率、功效类型及相位组合的曲线段值。 /// </summary> /// <param name="rates">该数据的费率。</param> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">曲线数据的相位。</param> /// <param name="curvePoint">曲线点数,该参数为 0:00:00 至 23:59:59 完整的曲线数据点数。</param> /// <param name="startTimeNum">第一个点的数值所对应的时间(hhmmss)。</param> /// <param name="endTimeNum">最后一个点的数值所对应的时间(hhmmss)。</param> public RatesEfficacyPhaseCurvePartValue(RatesOptions rates, EfficacyOptions efficacy, PhaseOptions phase, CurvePointOptions curvePoint, int startTimeNum, int endTimeNum) : base(efficacy, phase, curvePoint, startTimeNum, endTimeNum) { this.Rates = rates; }
/// <summary> /// 功效类型及相位组合的曲线值。 /// </summary> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">曲线数据的相位。</param> /// <param name="values">数据数组。数据数组的长度必须符合 CurvePointOptions 中定义的长度。</param> public EfficacyPhaseCurveValue(EfficacyOptions efficacy, PhaseOptions phase, decimal?[] values) : base(phase, values) { this.Efficacy = efficacy; }
/// <summary> /// 功效类型及相位组合的曲线值。 /// </summary> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">曲线数据的相位。</param> /// <param name="curvePoint">该曲线的点数。</param> public EfficacyPhaseCurveValue(EfficacyOptions efficacy, PhaseOptions phase, CurvePointOptions curvePoint) : base(phase, curvePoint) { this.Efficacy = efficacy; }
/// <summary> /// 各相位的曲线段值。 /// </summary> /// <param name="phase">曲线数据的相位。</param> /// <param name="curvePoint">曲线点数,该参数为 0:00:00 至 23:59:59 完整的曲线数据点数。</param> /// <param name="startTimeNum">第一个点的数值所对应的时间(hhmmss)。</param> /// <param name="endTimeNum">最后一个点的数值所对应的时间(hhmmss)。</param> public PhaseCurvePartValue(PhaseOptions phase, CurvePointOptions curvePoint, int startTimeNum, int endTimeNum) : base(curvePoint, startTimeNum, endTimeNum) { this.Phase = phase; }
/// <summary> /// 各相位的曲线段值。 /// </summary> /// <param name="phase">曲线数据的相位。</param> /// <param name="curvePoint">曲线点数,该参数为 0:00:00 至 23:59:59 完整的曲线数据点数。</param> /// <param name="startTimeNum">第一个点的数值所对应的时间(hhmmss)。</param> /// <param name="values">曲线段各点数据。</param> public PhaseCurvePartValue(PhaseOptions phase, CurvePointOptions curvePoint, int startTimeNum, decimal?[] values) : base(curvePoint, startTimeNum, values) { this.Phase = phase; }
/// <summary> /// 费率、功效类型及相位组合的曲线值。 /// </summary> /// <param name="rates">该数据的费率。</param> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">曲线数据的相位。</param> /// <param name="curvePoint">该曲线的点数。</param> public RatesEfficacyPhaseCurveValue(RatesOptions rates, EfficacyOptions efficacy, PhaseOptions phase, CurvePointOptions curvePoint) : base(efficacy, phase, curvePoint) { this.Rates = rates; }
/// <summary> /// 费率、功效类型及相位组合的曲线值。 /// </summary> /// <param name="rates">该数据的费率。</param> /// <param name="efficacy">该数据的功效类型。</param> /// <param name="phase">曲线数据的相位。</param> /// <param name="values">数据数组。数据数组的长度必须符合 CurvePointOptions 中定义的长度。</param> public RatesEfficacyPhaseCurveValue(RatesOptions rates, EfficacyOptions efficacy, PhaseOptions phase, decimal?[] values) : base(efficacy, phase, values) { this.Rates = rates; }
/// <summary> /// 各相位的曲线值。 /// </summary> /// <param name="phase">曲线数据的相位。</param> /// <param name="curvePoint">该曲线的点数。</param> public PhaseCurveValue(PhaseOptions phase, CurvePointOptions curvePoint) : base(curvePoint) { this.Phase = phase; }