是的,使用動態通常被認為是一種不好的做法。
動態呼叫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);
public void InvokeMethod<T>(T instance) where T : IInvoker { instance.InvokeMethod(); } // ... InvokeMethod(myBaseClassRef);
以上是C# 中的動態呼叫是一種不好的做法嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!