예, 동적을 사용하는 것은 일반적으로 나쁜 습관으로 간주됩니다.
동적 호출 C# 4.0에 도입된 은 유형 지연 바인딩을 나타냅니다. 여기서 시스템은 실행 중에만 개체의 형식을 확인합니다. 편집. 이는 프로그래머가 아닌 사용자가 잠재적인 오류를 발견할 책임이 있음을 의미합니다.
동적 사용의 결과:
동적 호출의 대안:
다음과 같은 대체 접근 방식을 사용하는 것이 좋습니다. :
1. 인터페이스 가상 통화:
public interface IInvoker { void InvokeMethod(); } public abstract class MyBaseClass : IInvoker { public abstract void InvokeMethod(); } public class MyClass : MyBaseClass { public override void InvokeMethod() { /* Do something */ } } // ... ((IInvoker)myBaseClassRef).InvokeMethod();
2. 확장 방법:
public static class InvokerEx { public static void Invoke(this MyClass c) { /* Do something */ } } // ... myBaseClassRef.Invoke();
3. 방문자 패턴:
public interface IVisitor { void Visit(MyAnotherClass c); void Visit(MyClass c); } // ... IVisitor visitor = new MyVisitor(); myBaseClassRef.Accept(visitor);
4. 일반 메서드:
public void InvokeMethod<T>(T instance) where T : IInvoker { instance.InvokeMethod(); } // ... InvokeMethod(myBaseClassRef);
동적이 유용할 수 있는 경우:
특정 시나리오에서는 동적 호출이 다음과 같은 이점을 제공할 수 있습니다.
그러나 이러한 용도는 잠재적인 단점에 대해 신중하게 평가해야 합니다. 대부분의 경우 대체 접근 방식은 더 나은 성능, 유형 안전성 및 유지 관리성을 제공합니다.
위 내용은 C#의 동적 호출은 나쁜 습관이며 언제 허용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!