what are delegates and func in c# code example

Example 1: delegates in c#

//start with Delegate

using System;
using System.IO;

class Delegate
{
  //create delegate using delegate keyword
  public delegate void HelloMethod(string str);
  //Remove delegate Keyword it will be normal method declaration
  
  public static void Main(String [] args)
  {
    //function poiting to delegate instance
     HelloMethod delegateInstance = new HelloMethod(print);
    //calling delegate which invokes function print()
    delegateInstance("Hey there! Iam delegate method");
  }
  
  public static void print(string delegateStr)
  {
    Console.WriteLine(delegateStr);
  }
}
//Information on delegate

//Delegate is a type safe function pointer which means can point a function to 
//the delegate when delegate get invokes function automatically invokes since 
//function is pointed to the delegate

Example 2: c# delegate func

Func<string, string> convert = delegate(string s)
    { return s.ToUpper();};

 string name = "Dakota";
 Console.WriteLine(convert(name));

// This code example produces the following output:
//
//    DAKOTA