对于是否使用泛型有一个简单的问题,如果是的话,这是正确的方法吗?是否使用泛型?
正常的非泛型版本如下:
public interface IFood
{
string name { get; set; }
}
public class Vegetables : IFood
{
#region IFood Members
public string name
{
get { return "Cabbage"; }
set{ }
}
#endregion
}
public class Cow
{
private IFood _food;
public Cow(IFood food)
{
_food = food;
}
public string Eat()
{
return "I am eating " + _food.name;
}
}
通用版本如下:
public class Cow<T> where T : IFood
{
private T _food;
public Cow(T food)
{
_food = food
}
public string Eat()
{
return "I am eating " + _food.name;
}
}
我是对的通用版本所做的一切?是否有必要使用通用版本进行未来发展?这只是原始场景的简单模拟,但它完全类似。
你需要一个奶牛类是完全独立于奶牛?或者,一个给定的牛可以喂食谷物,玉米或其他任何通过动物饲料喂食的绒毛吗?通用版本中的奶牛不是同一个东西,只不过是一个列表与列表相同。另一方面,对我来说,牛是牛。 –
@AnthonyPegram:这应该是一个答案 – Dani
@AnthonyPegram因此,你不建议只使用通用版本,因为奶牛不同于奶牛。你能解释一个适当的例子,并在答案部分,因为我想将它标记为答案,但不在评论部分 –
DotNetInfo