static void Main(string[] args) { //Account account = new Account(); //IBank<Account> ordinaryBank = new Bank<Account>(); //ordinaryBank.DoOperation(account); //DepositAccount depositAcc = new DepositAccount(); //IBank<DepositAccount> depositBank = ordinaryBank; //ordinaryBank.DoOperation(depositAcc); //Console.ReadLine(); IBank <DepositAccount> depositBank = new Bank(); depositBank.DoOperation(); IBank <Account> ordinaryBank = depositBank; ordinaryBank.DoOperation(); Console.ReadLine(); Console.WriteLine("GENRIC INTERFACE"); var driver = DriverFactory.Get(1); driver.Do(); driver = DriverFactory.Get(2); driver.Do(); Console.ReadLine(); }
public static void Main(string[] args) { IBank <DepositAccount> depositBank = new Bank(); depositBank.DoOperation(); IBank <Account> ordinaryBank = depositBank; ordinaryBank.DoOperation(); Console.ReadLine(); }
public static void Start() { IBank <DepositAccount> depositBank = new Bank(); depositBank.DoOperation(); IBank <Account> ordinaryBank = depositBank; ordinaryBank.DoOperation(); Console.ReadLine(); }
public static void Main(string[] args) { var account = new Account(); IBank <Account> ordinaryBank = new Bank <Account>(); ordinaryBank.DoOperation(account); var depositAcc = new DepositAccount(); IBank <DepositAccount> depositBank = ordinaryBank; depositBank.DoOperation(depositAcc); Console.ReadLine(); }
static void Main(string[] args) { //Account account = new Account(); //IBank<Account> ordinaryBank = new Bank<Account>(); //ordinaryBank.DoOperation(account); //DepositAccount depositAcc = new DepositAccount(); //IBank<DepositAccount> depositBank = ordinaryBank; //ordinaryBank.DoOperation(depositAcc); //Console.ReadLine(); IBank <DepositAccount> depositBank = new Bank(); depositBank.DoOperation(); IBank <Account> ordinaryBank = depositBank; ordinaryBank.DoOperation(); Console.ReadLine(); }
static void Main(string[] args) { // normal array // int[] arr_1 = new int[5]; // int[] arr_2 = new int[] {1,2,3,4,5}; // int[] giant_Array = GetGiantArray(); // int el_1 = giant_Array[0]; // int el_2 = giant_Array[126547]; // int el_3 = giant_Array[9999996]; //Linked list //LinkedList<int> linkedList = GetGiantLinkedList(); //var found = linkedList.Find(9999999); //linkedList.AddLast(new LinkedListNode<int>(100000001)); //ArrayList ArrayList arrayList = new ArrayList(); arrayList.Add(12); arrayList.Add(13); arrayList.Add("string"); var arrayListElement = arrayList[0]; //int sum = 0; //foreach (var el in arrayList) //{ //sum += (int) el; //} //Generic List List <int> list = new List <int>(); list.Add(1); list.Add(2); list.AddRange(new int[] { 3, 4, 5, 6, 7, 8, 9 }); Console.WriteLine("Лист из элементов"); PrintList(list); var listElement = list[0]; Console.WriteLine("Можно обращаться по индексу как в обычном массиве"); Console.WriteLine($"list[0] = {listElement}"); list.Remove(4); Console.WriteLine("Убрали 4 из листа"); PrintList(list); list.RemoveAt(0); Console.WriteLine("Убрали элемент по нулевому индексу"); PrintList(list); list.RemoveAll(c => c > 5); Console.WriteLine("Убрали все элементы больше 5"); PrintList(list); //Generics generates classes per each instance Foo <int> .Bar++; Console.WriteLine("А теперь выведем на экран наше статическое поле"); Console.WriteLine(Foo <double> .Bar); //Generics in methods Console.WriteLine("Дженерики в методах"); CheckIfString("this is string"); CheckIfString <int>(12); //Constraints IGenericInterface <ValidGeneric> validGeneric = null; //IGenericInterface<NonValidGeneric> nonValidGeneric = null; // не скомпилится // IGenericInterface<AnotherNonValidGeneric> anotherNonValidGeneric = null; // тоже не скомпилится CheckIfStringConstraint(new ValidGeneric()); //CheckIfStringConstraint(new NonValidGeneric()); // не скомпилится //CheckIfStringConstraint(new AnotherNonValidGeneric(12)); // и это тоже // Ковариантность //IBank<DepositAccount> depositBank = new Bank(); //depositBank.DoOperation(); //IBank<Account> ordinaryBank = depositBank; //ordinaryBank.DoOperation(); // Контрвариантнось Account account = new Account(); IBank <Account> ordinaryBank = new Bank <Account>(); ordinaryBank.DoOperation(account); DepositAccount depositAcc = new DepositAccount(); IBank <DepositAccount> depositBank = ordinaryBank; depositBank.DoOperation(depositAcc); Console.WriteLine(); Console.ReadKey(); }