VictoriaLodochkina

lab 7 csharp

Oct 22nd, 2021
775
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace lab_7_z1_csharp
  8. {
  9.     class C1
  10.     {
  11.         public delegate string AccountHandler(int n, string m);
  12.         public event AccountHandler Notify;
  13.  
  14.         public static string s;
  15.         public static string double_k(int n, string str)
  16.         {
  17.             string s2 = string.Copy(str.Remove(n, 1));
  18.             str = "";
  19.             str = s2 + s2;
  20.             s = str;
  21.             Console.WriteLine("Class C1, method with double K: {0}", str);
  22.             return str;
  23.         }
  24.  
  25.         public string plus(int n, string str)
  26.         {
  27.             char ch = str[n];
  28.             string s2 = Convert.ToString(ch);
  29.             str = str.Replace(s2, "+");
  30.             s = str;
  31.             Console.WriteLine("Class C1, method with plus replace: {0}", str);
  32.             return str;
  33.         }
  34.  
  35.         public void call()
  36.         {
  37.             if (Notify != null) Notify(2, s);
  38.         }
  39.         public C1() { }
  40.         public C1(string S)
  41.         {
  42.             s = S;
  43.         }
  44.     }
  45.  
  46.     class C2
  47.     {
  48.         public static string subs(int n, string str)
  49.         {
  50.             str = str.Substring(n);
  51.             Console.WriteLine("Class C2, method with substrings: {0}", str);
  52.             return str;
  53.         }
  54.     }
  55.  
  56.     delegate string Change(int n, string str);
  57.  
  58.     class Program
  59.     {
  60.         static void Main(string[] args)
  61.         {
  62.             C1 c1 = new C1();
  63.             C2 c2 = new C2();
  64.             C1 c3 = new C1("qwerty");
  65.             Change del = new Change(C1.double_k);
  66.             del(2, "abcdef");
  67.             del = new Change(c1.plus);
  68.             del(2, "abcdef");
  69.             del = new Change(C2.subs);
  70.             del(2, "abcdef");
  71.  
  72.             Console.WriteLine("Numerous delegate: ");
  73.             Change del2 = new Change(C1.double_k);
  74.             del2 += C1.double_k;
  75.             del2 += c1.plus;
  76.             del2(2, "ABCDEF");
  77.  
  78.             c3.Notify += c3.plus;
  79.             c3.Notify += C1.double_k;
  80.             c3.Notify += C1.double_k;
  81.             Console.WriteLine("With events: ");
  82.             c3.call();
  83.  
  84.             Console.ReadLine();
  85.         }
  86.     }
  87. }
  88.  
RAW Paste Data