Мне нужно отправить параметр в конструктор нового класса. отправленный параметр i является общим. внутри конструктора я должен использовать его поле (id). но я не могу использовать его напрямую, тогда я хочу использовать его перед использованием. но он сказал, что не может преобразовать тип T в мой конкретный тип.Может ли он преобразовать в определенный тип?
, например
public class Pet<T>
{
foodType foodType; // enum
public Pet(T sample)
{
if(sample.GetType() == typeof(Dog)
{
var pet = (Dog)pet; // there is an error.
foodType = FoodType.Milk;
}
if(sample.GetType() == typeof(Cat)
{
var pet = (Cat)pet; // there is an error.
foodType = FoodType.Fish;
}
}
}
как бросить его? или это не имеет никакого отношения.
У меня есть код примера. Это лучше?
Ваш дизайн ужасно ошибочен. Можете ли вы привести нам пример? Или это так? –
Хорошо, что вы ожидаете от броска? Какова будет фактическая стоимость? Если это не «Собака», как вы ожидаете, что произойдет конверсия? И у вас даже есть * не-общий тип «Собака», чтобы наложить его? Ваш вопрос очень неясен. –
Есть ли класс, который вы назвали «Собака»? Это должно быть «Собака», и это тоже не имеет смысла. –