我创建了一个名为Chargify.NET的API包装器,我开始看到一个可能通过定位.NET 4来解决的模式开发。
问题是,当他们增强API时,我需要创建越来越多的重载函数来处理一个特定的操作(在这种情况下创建一个订阅)。现在,我有很多(我想太多)重载的CreateSubscription函数,并且很难管理不同的签名。
是否可以(和/或建议)针对.NET 4构建库并使用可选参数,并希望库的用户可以使用.NET 4库?或者我应该沿着我用3.5的路径继续前进?或者以某种方式瞄准两者?
需要对此进行一些讨论..
答案 0 :(得分:1)
真的没有正确答案。如果您开始使用.NET 4功能,您可能只想定位.NET 4,因为尝试同时定位.NET将限制您使用旧功能(意味着没有理由升级)或需要2个代码路径(不便于维护)
使用.NET 4会将您的目标市场限制为使用.NET 4的人。您需要决定新功能带来的额外灵活性和功能,以及是否简化API(即:可选参数)能力)值得限制你的观众。
如果您的受众是商业商店,这可能是一个大问题 - 如果您的目标用户是小型开发人员,或主要是其他开源开发人员 - 他们可能更愿意升级到.NET 4以使用您的包装,如果需要的话。
答案 1 :(得分:1)
在4.0之前,.NET完全支持可选参数。但是,他们最近才获得C#的语言支持。请记住,CLS兼容语言不需要完全支持可选参数 - 允许编译器忽略您提供的默认值。
答案 2 :(得分:0)
您也知道,当C#编译器编译您的程序并且您的程序使用可选参数时,所有编译器都会将这些可选参数替换为重载函数。因此,通过切换到可选参数,您将无法获得速度或代码减少优势。