public delegate string NameDelegate(); // это делегат, он может вызвать любое количество подписавшихся на него // методов, схожих по сигнатуре static void Main(string[] args) { NameDelegate name = GetDeveloperName; // подписались на метод Console.WriteLine(name.Invoke()); // вызвали деленат, а он метод Console.ReadLine(); }
static void Main(string[] args) { // Console.WriteLine("Hello World!"); Delegate D = new Delegate(); NameDelegate nd = new NameDelegate(D._name); string sm = nd.Invoke("hello all this isreturn type delegate"); Console.WriteLine(sm); AnonymousDelgate AMD = delegate(String s1) { return(s1); }; String name = AMD.Invoke("COGNINE"); Console.WriteLine(name); }
static void Main(string[] args) { ProgrammerClass programmer = new ProgrammerClass(); PLanguagesClass c = new PLanguagesClass(); c.NewFeature += programmer.OnNewFeature; c.Rename += programmer.OnRename; NameDelegate nameDelegate = c.CommandRename; nameDelegate.Invoke("C#"); FeatureDelegate featureDelegate = c.CommandNewFeature; featureDelegate("no main"); PLanguagesClass python = new PLanguagesClass(); python.NewFeature += programmer.OnNewFeature; python.CommandNewFeature("New libraries"); PLanguagesClass kotlin = new PLanguagesClass(); kotlin.Rename += programmer.OnRename; kotlin.CommandRename("Project Kotlin"); string str = "qwerty uiopa sdfgh. jkl; zxcvb: nm"; Console.WriteLine($"Default string: {str}"); Func <string, string> stringModification; //public delegate void Action<T>(T obj) возвращает void stringModification = StringFunctions.UpperCase; string str1 = stringModification.Invoke(str); Console.WriteLine(str1); }