Это связано с тем, что фреймворк требует, чтобы два одинаковых объекта имели одинаковый хэш-код. Если вы переопределите метод equals для специального сравнения двух объектов, и…
💜
У всех начинающих и опытных разработчиков, рано или поздно возникнет ситуация, решение которой не приходит самостоятельно. Эта рубрика содержит коллекцию распространенных вопросов по «Языку Программирования C#». От создания массива, до создания веб-сервиса.
Это связано с тем, что фреймворк требует, чтобы два одинаковых объекта имели одинаковый хэш-код. Если вы переопределите метод equals для специального сравнения двух объектов, и…
Атрибут [Flags] следует использовать во всех случаях, когда перечислимый представляет собой коллекцию возможных значений, а не одно значение. Такие коллекции часто используются, например, с побитовыми…
Если вам необходимо определить возраст человека на основе типа 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--; } } |
Второй, достаточно странный способ…
У 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, ви…
В этой статье, мы разберем самые популярные способы перечисления 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."); } } |
Пример удаления через метод расширения…