我们有一个库,其中包含许多重载方法签名的方法,如下所示:
A。)IsEmpty(int obj, int defaultValue)
B。)IsEmpty(int? obj, int defaultValue)
正如您所看到的,唯一的区别是B可以为空。在我办公室的大多数工作站上,这种重载编译和类型被认为是真正独特的。
但是,出于某种原因,我的所有机器和VM都无法编译。我们目前感到困惑的是为什么会这样。我正在使用的机器应该靠近正在工作/编译的其他机器的镜像。
以下是编译过程中出现的错误示例:
错误28以下方法或属性之间的调用不明确:'BayTech.Common.Fix.IfEmpty(System.Guid,System.Guid)'和 “BayTech.Common.Fix.IfEmpty(的System.Guid, System.Guid?)'C:\ Projects \ Applications \ JukeWeb \ BayTech \ Internal \ Common Library \ VS2010 \ Apps \ BayTech.Common \ Conversion \ Fix.Empty.SL.cs 55 17 BayTech.Common
错误11以下方法或属性之间的调用不明确:'BayTech.Common.Fix.IfEmpty(System.DateTime, System.DateTime)'和'BayTech.Common.Fix.IfEmpty(System.DateTime, System.DateTime?)'C:\ Projects \ Applications \ JukeWeb \ BayTech \ Internal \ Common Library \ VS2010 \ Apps \ BayTech.Common \ Conversion \ Fix.Empty.SL.cs 35 17 BayTech.Common
错误165以下方法或属性之间的调用不明确:'BayTech.Common.Fix.IfEmpty(string,System.Guid)'和 “BayTech.Common.Fix.IfEmpty(字符串, System.Guid?)'C:\ Projects \ Applications \ JukeWeb \ BayTech \ Internal \ Common Library \ VS2010 \ Apps \ BayTech.Common \ Conversion \ Fix.IfEmpty.Xml.cs 259 17 BayTech.Common
有没有人知道为什么会这样?
以下是有关环境设置的一些信息:
答案 0 :(得分:-1)
没有理由进行这样的实施。 如果您希望或想要处理此类情况,请使用内置语言功能并仅保留可为空的实现。可空类型具有.hasvalue或.defaultValue等属性。