这样做可能具有意义的另一种方式:在你的节目中界定Enum,在私人方法中将外部的APIC价值描绘到Enum。 换言之,在您的物体模式内,不会暴露出外部的平面体。 例如:
public enum MyEnum { First, Second, Third };
public class MyApiWrapper
{
private Dictionary<int, int> ExternalToInternal = new Dictionary<int, int>();
private Dictionary<int, int> InternalToExternal = new Dictionary<int, int>();
public MyApiWrapper(List<int> externalApiEnumValues)
{
foreach (int i = 0; i < externalApiEnumValues.Count; i++)
{
ExternalToInternal[externalApiEnumValues[i]] = i;
InternalToExternal[i] = externalApiEnumValues[i];
}
}
// obviously, your real method for calling the external API
// will do more than this.
public void CallApi()
{
CallExternalApi(_EnumValue);
}
private MyEnum _ExternalEnumValue;
public MyEnum EnumValue
{
get { return ExternalToInternal[_ExternalEnumValue]; }
set { _ExternalEnumValue = InternalToExternal[value]; }
}
}
只要通过这一类产品(一种希望是,你已经把外部消费物价指数的准入归入一个类别),你就可以在申请中自由使用<代码>MyEnum,而不必担心其他方案者对数值有何影响。