我有這樣一行代碼:代碼調用一個與它本身不明確的方法?
var results = new GroupedCountsModel { XAxis = entities.ListGroupKeys(fieldNameX) };
當我嘗試編譯這段代碼,我得到一個編譯錯誤:
The call is ambiguous between the following methods or properties:
'MyProject.Shared.QueryGeneration.GroupByHelper.ListGroupKeys<TEntity>(System.Linq.IQueryable<TEntity>, string)'
and
'MyProject.Shared.QueryGeneration.GroupByHelper.ListGroupKeys<TEntity>(System.Linq.IQueryable<TEntity>, string)'
C:\{mypath}\MyProject.Shared\Controllers\BaseEntityController.cs
這很有趣,因爲這兩種方法錯誤中列出完全一樣。這不像我在不同的命名空間或程序集中定義相同的方法簽名。我不知道當編譯器本身指向兩次相同的方法時,編譯器認爲它們有什麼不同。這是該方法:
public static class GroupByHelper
{
public static List<object> ListGroupKeys<TEntity>(this IQueryable<TEntity> source, string fieldName)
where TEntity : class, IDataEntity
{
//...etc...
}
//...etc..
}
什麼可能導致這種情況?我該如何解決這個問題?
如果這是一個ASP.NET項目,那麼請嘗試清除臨時ASP.NET文件,然後重新構建整個解決方案。可能有兩個不同版本的臨時程序集,導致兩個具有相同確切名稱和名稱空間的不同類。 –
嘗試重新啓動visual studio。 – cgTag
是啊,我在想這是一個緩存或臨時文件的問題。 – cgTag