두 개의 클래스 Car
및 Truck
이 있으며 모두 Vehicle
클래스를 확장합니다.속성을 제네릭 매개 변수로 설정
public int Wheels { get; set; }
지금, 나는 몇 가지 변수에 Wheels
속성을 설정하는 두 가지 방법이 있습니다 Car
및 Truck
모두는 다음과 같습니다 속성이 있습니다. 그것은 다음과 같습니다
public void SetCarWheels(int value)
{
Car.Wheels = value;
}
public void SetTruckWheels(int value)
{
Truck.Wheels = value;
}
방법이 같은 일을하기 때문에, 내가 유형 Vehicle
의 입력 매개 변수있을 것입니다 방법을 만들고 싶었다. 이 방법은 기본적으로이 작업을 수행해야합니다
public static void SetWheels<T>(Vehicle item, int wheels) where T : Vehicle
{
if (item!= null)
{
item.Wheels = wheels;
}
}
, 그것은 Wheels
속성을 인식하지 못합니다.
제네릭을 사용하여 어떻게 해결할 수 있습니까?
제네릭없이 대체 솔루션을 제안하지 마십시오. (Car
및 Truck
은 바퀴의 const 값을 가질 수 있지만이 문제는 그대로 두십시오).
'alreadySelectedItem' 유형은 무엇입니까? 왜'SetWheels'가 제네릭인가? 'T '는 코드의 어느 곳에서나 사용하지 않는다. –
previousSelectedItem 객체를 어디서 어떻게 선언하고 있습니까? –
은 지저분 해 보입니다. 예를 들어,'무엇이'priorSelectedItem'입니까? - 당신은'SetWheels'에'T' 나'item'을 사용하지 않고'Wheels' 속성은 공용 설정자를 가지고 있습니다 .... – Carsten