對於是否使用泛型有一個簡單的問題,如果是的話,這是正確的方法嗎?是否使用泛型?
正常的非泛型版本如下:
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