今天发现有段代码没有返回预计结果,该代码使用了另一个同事写好的一个类:
public class ServiceResponse<T>
{
public ServiceResponse(T _result){..}
public ServiceResponse(string _errorMessage){..}
...
}
该类构造方法有多个重载,其中有一个泛型构造方法,当T 类型为string时,程序总是调用的那个非泛型方法,问题由此产生。当泛型方法重载了非泛型方法时,C#/VB.NET编译器总是选择那个非泛型方法!