0
C#
에서 일반 메서드의 동작을 수정하는 데 일반 인수를 사용하는 것이 일반적으로 좋지 않은가요? 예에서CLR 일반 메서드
는 :
class Foo { }
class Bar { }
void GenericMethod<T>()
{
if (typeof(T) == typeof(Foo))
{
Console.WriteLine("execute action for Foo");
}
if (typeof(T) == typeof(Bar))
{
Console.WriteLine("execute action for Bar");
}
}
void NonGenericMethod(Type type)
{
if (type == typeof(Foo))
{
Console.WriteLine("execute action for Foo");
}
if (type == typeof(Bar))
{
Console.WriteLine("execute action for Bar");
}
}
따로 성능 차이, 두 방법은 동일한 효과를 가질 것이다.
궁금한 점은 generic 인수를 사용하여 메서드의 동작을 수정하는 것입니다 (분기를 수행하는 것이 좋습니다). 이것이 부작용으로 간주 될 수 있습니까?
_ 성능 차이는 무엇입니까? - 성능간에 어떤 차이가 있습니까? – stuartd
오버로드를 사용할 수 없다고 가정하면 (왜 그렇지 않습니까?) 본질적으로 잘못된 것은 아닙니다. – Rob
Square와 Circle의 기본 클래스에이 메서드를 넣을 수 있으므로 일반적인 상속을 사용하십시오. 그렇지 않으면 많은 차이가 없습니다. – Evk