У меня есть 3 разных объекта, которые можно назвать: Box, Square, Triangle. Теперь я хочу создать функцию обновления, для которой требуется передать объект. Насколько я знаю, функция будет выглядеть следующим образомИспользование объекта в C#
void Update(Box box, Square square, Triangle triangle)
{
//do something
}
Это потребовало бы мне пройти все три объекта, даже если иногда я хочу, чтобы обновить только один из них. Другой способ, который я знаю, - инициализировать объекты ранее в конструкторе и передать их в закрытую переменную, которая находится внутри класса. Затем я бы обновил все объекты, хочу ли я обновлять их все или нет.
void Update()
{
//do something for Box
//do the same for Square
//do the same for Triangle
}
Для этого потребуется много кода, иногда это необязательно. Теперь, есть ли способ, которым я мог бы передать любой объект, который я хочу, и сделать тот же код. Например,
void Update(Object randomObject)
{
//do something for the randomObject whether its Square, Box or Triangle
}
Почему у вас нет метода обновления в каждом классе? Итак, каждый экземпляр может обновить себя? Или вывести три класса из абстрактного базового класса, который заставляет каждый производный класс внедрять метод Update? Вы приближаетесь, кажется, не очень объектно-ориентированным, но вам нужно дать больше контекста. Что это за класс, который может обновить квадрат или треугольник? – Steve
Его класс, который обнаруживает столкновение между этими объектами и игроком. Теперь у меня есть функция внутри класса, которая имеет такой же способ обнаружения столкновения между всеми этими объектами.Проблема в том, что я должен написать один и тот же код 3 раза для каждого объекта, потому что эти объекты не являются одним и тем же типом, и я не могу просто поместить все это в один код и запросить передачу одного объекта. Надеюсь, я объяснил это, это действительно сложно. Во всяком случае, то, что я ищу, является универсальным объектом, который может быть передан как аргумент, и я могу ссылаться на Квадрат, Треугольник или Короб, независимо от того, что мне нужно. –