例如,像
FileStream
类有大约15个不同的构造函数,可以分成逻辑“家族”,例如下面从字符串、从IntPtr
和从SafeFileHandle
。FileStream(string,FileMode);
FileStream(string,FileMode,FileAccess);
FileStream(string,FileMode,FileAccess,FileShare);
FileStream(string,FileMode,FileAccess,FileShare,int);
FileStream(string,FileMode,FileAccess,FileShare,int,bool);
我认为这种类型的模式可以通过使用三个构造函数来简化,对于可以默认的构造函数,可以使用可选参数,这将使不同系列的构造函数更加明显 [注:我知道BCL不会做出这种改变,我在假设这种情况]。
你认为呢?从C# 4.0开始,将相关紧密的构造函数和方法作为单个带有可选参数的方法是否更有意义,还是坚持传统的多重载机制有充分的理由?