Атрибут [Flags] слід використовувати у всіх випадках, коли перелічуваний являє собою колекцію можливих значень, а не одне значення. Такі колекції часто використовуються, наприклад, з побітовими…
💜
У всех начинающих и опытных разработчиков, рано или поздно возникнет ситуация, решение которой не приходит самостоятельно. Эта рубрика содержит коллекцию распространенных вопросов по «Языку Программирования C#». От создания массива, до создания веб-сервиса.
Атрибут [Flags] слід використовувати у всіх випадках, коли перелічуваний являє собою колекцію можливих значень, а не одне значення. Такі колекції часто використовуються, наприклад, з побітовими…
В C# 5 и более ранних версиях, чтобы придать автоматическим свойствам начальное значение, необходимо сделать это в конструкторе:
1 2 3 4 5 6 7 8 9 |
class Person { public string Name { get; set; } public Person() { Name = "Alex"; } } |
Начиная с версии C# 6.0, вы…
Якщо вам необхідно визначити вік людини на основі типу DateTime, можна скористатися простим відніманням дат, як показано в прикладі нижче:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
static void Main() { //Дата рождения DateTime birthdate = new DateTime(10,05,1990); //Получаем текущую дату var today = DateTime.Today; //Вычисляем возраст var age = today.Year - birthdate.Year; //Возвращаемся к году, в котором родился человек, в случае високосного года if (birthdate.Date > today.AddYears(-age)) { age--; } } |
Другий, досить дивний спосіб…
У цій статті ми розберемо найпопулярніші способи перерахування enum у програмах мовою C#. У проєкті оголошено таке перерахування:
1 2 3 4 5 6 |
public enum Position { Manager = 1, Programmer, Designer } |
Для виведення всіх констант перерахування використовується…
1 2 |
string s = "Hello world!"; String s = "Hello world!"; |
string – це псевдонім у C# для System.String. Тож технічно різниці немає. Це як int проти System.Int32. Що стосується рекомендацій, то зазвичай рекомендується використовувати…
Необхідно визначити кількість цифр у введеному користувачем числі. Найкращим рішенням буде використання методу Log10, класу Math, який логарифмує з основою 10 вказане число:
1 2 3 4 5 6 |
static void Main() { int number = 312432; int count = (int)Math.Log10(number) + 1; Console.WriteLine($"Length: {count}"); } |
Для…
EventArgs e – це параметр з іменем e, який містить дані про подію, додаткову інформацію див. на сторінці EventArgs MSDN. Object sender – це параметр…
Перемноження двох матриць можна здійснити таким чином:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
class Program { static void Main(string[] args) { Console.WriteLine("Введите размерность первой матрицы: "); int[,] A = new int[Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine())]; for (int i = 0; i < A.GetLength(0); i++) { for (int j = 0; j < A.GetLength(1); j++) { Console.Write("A[{0},{1}] = ", i, j); A[i, j] = Convert.ToInt32(Console.ReadLine()); } } Console.WriteLine("Введите размерность второй матрицы: "); int[,] B = new int[Convert.ToInt32(Console.ReadLine()), Convert.ToInt32(Console.ReadLine())]; for (int i = 0; i < B.GetLength(0); i++) { for (int j = 0; j < B.GetLength(1); j++) { Console.Write("B[{0},{1}] = ", i, j); B[i, j] = Convert.ToInt32(Console.ReadLine()); } } Console.WriteLine("nМатрица A:"); Print(A); Console.WriteLine("nМатрица B:"); Print(B); Console.WriteLine("nМатрица C = A * B:"); int[,] C = Multiplication(A, B); Print(C); } static int[,] Multiplication(int[,] a, int[,] b) { if (a.GetLength(1) != b.GetLength(0)) throw new Exception("Матрицы нельзя перемножить"); int[,] r = new int[a.GetLength(0), b.GetLength(1)]; for (int i = 0; i < a.GetLength(0); i++) { for (int j = 0; j < b.GetLength(1); j++) { for (int k = 0; k < b.GetLength(0); k++) { r[i,j] += a[i,k] * b[k,j]; } } } return r; } static void Print(int[,] a) { for (int i = 0; i < a.GetLength(0); i++) { for (int j = 0; j < a.GetLength(1); j++) { Console.Write("{0} ", a[i, j]); } Console.WriteLine(); } } } |
Видалити елемент з одновимірного масиву можна шляхом перезапису або ж використовуючи методи розширення Linq To Objects. Приклад перезапису елементів:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
static void Main() { int[] array = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; array = Remove(array, indexToDelete: 3); } static int[] Remove(int[] array, int indexToDelete) { if (indexToDelete >= 0 && indexToDelete < array.Length) { int[] array2 = new int[array.Length - 1]; for (int i = 0, j = 0; i < array.Length; i++) { if (i == indexToDelete) continue; array2[j++] = array[i]; } return array2; } else { throw new IndexOutOfRangeException("Incorrect index."); } } |
Приклад видалення через метод розширення…
Для створення текстового файлу, можна скористатися класомFileStream:
1 2 3 4 5 6 7 |
static void Main() { FileInfo f = new FileInfo(@"C:file.txt"); FileStream fs = f.Create(); // Закрыть файловый поток fs.Close(); } |
Другий варіант створення файлу:
1 2 3 4 5 |
static void Main() { FileStream fs = new FileStream("D:\csharpfile.txt", FileMode.Create); fs.Close(); } |
Так само, можна скористатися класом File і його методом Create:
1 2 3 4 5 6 7 8 |
static void Main() { using (FileStream fs = File.Create(@"C:file.txt")) { byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file."); fs.Write(info, 0, info.Length); } } |