Advertisement
Panglot

Lesson 7. - CSharp-Advanced-Topics

Mar 31st, 2014
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.62 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3. using System.Net;
  4. using System.Linq;
  5. using System.Collections.Generic;
  6. class CSharpAdvanced
  7. {
  8.     static void demo()
  9.     {
  10.         Console.WriteLine("This is a demo method.");
  11.     }
  12.     static void Main()
  13.     {
  14.         //Методите (които съм свикнал да наричам функции) се пишат по същият начин с едно изключение. За да можем да ги извикваме
  15.         //без да правим променлива от този клас (тъй като в C# всичко е в класове) трябва да ги правим static.
  16.         demo();
  17.  
  18.         //.NET framework има много build-in класове готови за използване. По-рано в курса използвахме DateTime класа, както и постоянно
  19.         // Math класа. Класовете са доста и разнообразни и е препоръчително да се разгледат в MSDN, но ще добавя малко информация
  20.         //за някои интересни класове и техните функции.
  21.  
  22.         //Class Random. Класа random се използва за създаване на произволно число. Синтаксиса е следния:
  23.         Random rnd = new Random();
  24.         int randomNumber = rnd.Next(1, 10);
  25.         Console.WriteLine(randomNumber);
  26.         //Аргументите в скобите на Next показват от какво до какво число се иска произволното число.
  27.         Console.WriteLine(rnd.Next(25,50));
  28.  
  29.         //Class WebClient. Позволява работа с интернет. Изисква се System.Net Синтаксиса е:
  30.         WebClient webCVariable = new WebClient();
  31.         webCVariable.DownloadFile("http://cs10305.vk.me/u164065738/-14/x_dd1193cc.jpg", "x_dd1193cc.jpg");
  32.         //DownloadFile сваля файл от интернет. Първият аргумент в скобите е link-а в интернет, а вторият е името на файла.
  33.         Process.Start("x_dd1193cc.jpg");
  34.         //Provess позволява стартирането на външни процеси. Изисква Syste.Diagnostics.
  35.  
  36.         //Масивите в C# имат идентичен синтаксис, но с малко разлики. Синтаксисът е следния:
  37.         int[] someNumbers = new int[10];
  38.         //Големината на масива може да не бъде константно число. Можем да кажем, че големината му ще е равна на променлива
  39.         //която ще бъде въвеждана.
  40.         Console.WriteLine("Lets fill the array.");
  41.         for (int i = 0; i < someNumbers.Length; i++)
  42.         {
  43.             someNumbers[i] = int.Parse(Console.ReadLine());
  44.         }
  45.         //Масивите в C# имат полезни методи за работа с тях. За пример можем да вземем someNumbers.Length използвана по-горе
  46.         //за взимане на дължината на масива дори и да не я знаем предварително. Ето и примери за други методи:
  47.         Console.WriteLine("Sum = "+ someNumbers.Sum());
  48.         Console.WriteLine("Min = "+ someNumbers.Min());
  49.         Console.WriteLine("Max = " + someNumbers.Max());
  50.         Console.WriteLine("First = "+ someNumbers.First());
  51.         Console.WriteLine("Last = "+ someNumbers.Last());
  52.         //Някои от методите няма да работят без добавянето на System.Linq
  53.         //Други методи: Reverse() - обръща подредбата на членовете на масива
  54.        
  55.         //Синтаксис на двумерни масиви:
  56.         //int[,] dualArray = new int[height, width];
  57.         //height и width са параметрите на масива. Могат да бъдат отново числа или променливи, но трябва да са цели числа.
  58.  
  59.         //List е клас познат от C++. Нуждае се System.Collections.Generic. На практика листа е преоразмеряващ се масив.
  60.         //Синтаксис:
  61.         List<string> names = new List<string>() { "Ivan", "Kiro", "Pesho", "Maria", "Katya" };
  62.         names.Add("Stamat"); //Добавя име на края на списъка.
  63.         names.RemoveAt(0); //Премахва име на зададена позиция.
  64.         names.Insert(3, "Stavri"); //Добавя име на дадена позиция като избутва позициите на тези след него.
  65.         names[1] = "Misho"; //Прави същото като Insert, но с различен синтаксис.
  66.  
  67.         foreach (var name in names)
  68.         {
  69.             Console.WriteLine(name);
  70.         }
  71.  
  72.         //Associative arrays или асоциативни масиви, са масиви които имат индекси на позициите си различни от
  73.         //стандартните (0,1,2,3, ...). Нуждае се от System.Collections.Generic. Синтаксис:
  74.         Dictionary<string,int> intNumbers=new Dictionary<string,int>();
  75.         intNumbers["One"] = 1;//По този начин се добавят нови елементи.
  76.         intNumbers["Two"] = 2;
  77.         intNumbers["Three"] = 3;
  78.         intNumbers["Four"] = 4;
  79.         intNumbers["Five"] = 5;
  80.         intNumbers["Six"] = 6;
  81.  
  82.         intNumbers.Remove("Three"); //Премахва елемент.
  83.  
  84.         foreach (var pair in intNumbers)
  85.         {
  86.             Console.WriteLine("{0} - {1}", pair.Key, pair.Value ); //С .key се достъпва името на елемента,
  87.             //а с .value се достъпва стойността която съдържа елемента.
  88.  
  89.         }
  90.        
  91.         //Class String също има много и удобни методи.
  92.         string str = "SoftUni";
  93.         Console.WriteLine(str);
  94.         for (int i = 0; i < str.Length; i++) //Length за дължината на string-а
  95.         {
  96.             Console.WriteLine("str[{0}] = {1}", i, str[i]);//Всяка буква от него може да бъде достъпвана като масив.
  97.         }
  98.  
  99.         Console.WriteLine(str.Substring(4,2));
  100.         //Изкарва substring започващ от първият аргумент в скобите (4) и с дължина равна на вторият елемент в скобите (2).
  101.         Console.WriteLine(str.Replace("Soft","Hard"));
  102.         //Замества substring-а посочен като първи аргумент на Replace със substring посочен като втори аргумент.
  103.         Console.WriteLine(str.ToLower()); //Прави всички букви малки.
  104.         Console.WriteLine(str.ToUpper()); //Прави всички букви главни.
  105.  
  106.         //Не включвам класовете в това резюме тъй като са обяснени много набързо, неясно и неточно, освен това информацията до тук
  107.         //е достатъчна за изпита и без класовете. Така или иначе ще бъдат разглеждани подробно по време на следващият C# курс.
  108.  
  109.  
  110.  
  111.  
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement