Ejemplo n.º 1
0
        public delegate string NameDelegate(); // это делегат, он может вызвать любое количество подписавшихся на него

        // методов, схожих по сигнатуре
        static void Main(string[] args)
        {
            NameDelegate name = GetDeveloperName; // подписались на метод

            Console.WriteLine(name.Invoke());     // вызвали деленат, а он метод
            Console.ReadLine();
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }