से मेल नहीं खाता है मेरे पास निम्न श्रेणी और कोड कोड में परिभाषित प्रतिनिधि है (कई अन्य पंक्तियां ब्रेवटी के लिए छीन ली गई हैं)।कोई त्रुटि नहीं जब प्रतिनिधि हस्ताक्षर
Public Delegate Sub TimerCallback(canceled As Boolean)
Public Class Timer
Implements TimerManager.ITimer
Public Sub New(delay As Integer, callback As TimerCallback)
mState = TimerState.Setup
mCallback = callback
CType(TimerManager.Instance, TimerManager.ITimerManager).RegisterTimer(Me, delay)
End Sub
End Class
जब मैं निम्न कोड के साथ टाइमर का एक नया उदाहरण बनाने के लिए, मैं नहीं एक संकलन त्रुटि मिलती हैं, भले ही गुमनाम समारोह के हस्ताक्षर (प्रतिनिधि के हस्ताक्षर से मेल नहीं खाता यह याद आ रही है " बूलियन "परम के रूप में रद्द)।
Dim timer As New Timer(Me.CookTime, Sub()
Dim cooked As FoodBase = CType(Activator.CreateInstance(SuccessfulResult), FoodBase)
player.GetBackpack.AddItem(cooked)
End Sub)
मैं जब टाइमर इस तरह instantiating एक संकलन त्रुटि प्राप्त करने की उम्मीद, किसी को भी क्यों यह एक त्रुटि के बिना संकलन है व्याख्या कर सकते हैं? क्या कोई विकल्प है जिसे मैं सेट कर सकता हूं जिससे यह संकलन त्रुटि उत्पन्न कर सके? मेरे पास विकल्प स्पष्ट है, विकल्प सख्त विकल्प है, और प्रोजेक्ट गुणों में विकल्प का अनुमान लगाया गया है। जैसा कि है, रद्द किया गया तर्क शामिल करना भूलना बहुत आसान है।
यह सुनिश्चित करने के लिए कि विधि हस्ताक्षर मिलान करता है, टाइमरकॉलबैक को तर्क को दृढ़ता से टाइप करने का मुद्दा नहीं है? विकल्प विकल्प को चालू करने पर मैं संभवतः इस व्यवहार को देख सकता था। लेकिन विकल्प को बंद करने से मैं उम्मीद करता हूं कि संकलक कुछ भी अनुमान लगाने और हस्ताक्षर को लागू करने की अपेक्षा नहीं करेगा। क्या आपके पास संकल्प को इस त्रुटि में कम से कम एक चेतावनी उत्पन्न करने के लिए मजबूर करने के बारे में मेरे प्रश्न के दूसरे भाग के लिए कोई समाधान है? –