3 가지 개체가 있습니다. 상자, 정사각형, 삼각형을 호출 할 수 있습니다. 이제 개체를 전달해야하는 업데이트 함수를 만들고 싶습니다. 내가 아는 한,이 함수는 가끔 그들 중 하나를 업데이트 할 경우에도 세 개의 개체를 전달할 저를 필요로이C#의 개체 사용
void Update(Box box, Square square, Triangle triangle)
{
//do something
}
과 같을 것이다. 내가 아는 또 다른 방법은 이전에 생성자에서 객체를 초기화하고 클래스 내부의 private 변수로 전달하는 것입니다. 그런 다음 모든 개체를 업데이트할지 여부에 관계없이 모든 개체를 업데이트합니다.
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 번 써야한다는 것입니다. 객체가 같은 유형이 아니기 때문에 모든 객체를 하나의 코드에 넣고 하나의 객체를 전달할 수 없기 때문입니다. 내가 설명하기를 바란다. 정말 어렵다. 어쨌든, 내가 찾고있는 것은 인자로 전달할 수있는 보편적 인 객체이며, 내가 원한다면 Square, Triangle 또는 Box를 참조 할 수 있습니다. –