C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
C# Delegate InferenceDelegate inference allows us to direct assign method name to the delegate instance without wrapping it to the delegate object. When we assign a method name to a delegate, the compiler first infers the delegate's type. After that compiler creates a new object of the inferred type, wrap the method and assign to the delegate. Let's see some examples. The first example does not use inference feature, it creates object and wrap method as in earlier version. C# Delegate Example without Inferenceusing System; namespace CSharpFeatures { class DelegateInference { delegate void MyDelegate(string msg); static void Main(string[] args) { MyDelegate del = new MyDelegate(Greetings); del("Welcome to the TheDeveloperBlog"); } public static void Greetings(string greet) { Console.WriteLine(greet); } } } Output: Welcome to the TheDeveloperBlog This second example, implements delegate inference feature. And it produces the same result as before. C# Delegate Example with Inferenceusing System; namespace CSharpFeatures { class DelegateInference { delegate void MyDelegate(string msg); static void Main(string[] args) { MyDelegate del = Greetings; del("Welcome to the TheDeveloperBlog"); } public static void Greetings(string greet) { Console.WriteLine(greet); } } } Output: Welcome to the TheDeveloperBlog
Next TopicC# Anonymous Types
|