1
我创建了一个样机类ilustrate问题:超载分辨率在通用构造
public class Anything<T>
{
/// <summary>
/// Generic typed constructor
/// </summary>
/// <param name="param1"></param>
public Anything(T param1)
{
Console.WriteLine("I'm generic typed constructor");
}
/// <summary>
/// String typed constructor
/// </summary>
/// <param name="param1"></param>
public Anything(string param1)
{
Console.WriteLine("I'm string typed constructor");
}
}
请告诉我,如果我建字符串对象的什么吗?没有办法区分这两个构造函数。使用相同数量的参数定义另一个构造函数是一种糟糕的做法吗?
其实有办法。如果可能,编译器将使用非泛型重载。所以,如果有关于字符串的特殊情况,这不是一个坏习惯 –
你的问题到底是什么?这是如何工作的(阅读重载决议,看重复),哪一个会被调用(运行它)还是这是一个不好的做法(基于意见)?如果您提供真实的用例,则可以显示替代方案。这个用例将解释为什么你认为你首先需要一个字符串重载,并从中解释如何减少歧义。再次看到重复。 :) – CodeCaster