TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

C# Delegate Inference

C# Delegate Inference for beginners and professionals with examples on overloading, method overriding, inheritance, aggregation, base, polymorphism, sealed, abstract, interface, namespaces, exception handling, file io, collections, multithreading, reflection etc.

<< Back to C-SHARP

C# Delegate Inference

Delegate 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 Inference

using 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 Inference

using 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




Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf