我必须遵循以下功能:
public enum class SetMinMaxMode
{
Auto, // min and max is set based on the channel data
Manual
};
generic<typename T> where T : System::ValueType
void SetData(array<T>^ data)
{
SetData(data, SetMinMaxMode::Auto, Double::MinValue, Double::MaxValue);
}
generic<typename T> where T : System::ValueType
void SetData(array<T>^ data, SetMinMaxMode minMaxMode, Double minValue, Double maxValue)
{
//
}
参数minValue和maxValue仅在参数minMaxMode为SetMinMaxMode :: Manual时使用。
如果有人写这样的功能:
SetData(data, SetMinMaxMode::Auto, desiredMinValue, desiredMaxValue);
然后他可能不知道最后两个参数不会被使用。
我的问题是,有没有办法重构,以便有人永远不需要提供不必要的参数?
答案 0 :(得分:1)
您可以编写一个完全不接受SetMinMaxMode的函数。
SetDataAuto(data);
所以你要么用min / max来调用一个,要么用auto来调用那个。
你的其他功能是:
SetDataManual(data, min, max);