Зазвичай (якщо не йдеться про рядки) Equals порівнює значення, а == порівнює об’єктні посилання. Якщо два об’єкти, що порівнюються, посилаються на один і той самий…
💜
У всех начинающих и опытных разработчиков, рано или поздно возникнет ситуация, решение которой не приходит самостоятельно. Эта рубрика содержит коллекцию распространенных вопросов по «Языку Программирования C#». От создания массива, до создания веб-сервиса.
Зазвичай (якщо не йдеться про рядки) Equals порівнює значення, а == порівнює об’єктні посилання. Якщо два об’єкти, що порівнюються, посилаються на один і той самий…
Використовуйте те, що ви і ваша команда вважаєте найбільш зручним для читання. Комусь подобається коротший варіант, комусь з використання класу. З точки зору продуктивності та…
Для видалення всіх файлів із папки можна скористатися класами DirectoryInfo і FileInfo:
1 2 3 4 5 6 7 8 9 10 |
DirectoryInfo di = new DirectoryInfo("YourPath"); foreach (FileInfo file in di.GetFiles()) { file.Delete(); } foreach (DirectoryInfo dir in di.GetDirectories()) { dir.Delete(true); } |
Якщо у вашому каталозі може бути багато файлів, EnumerateFiles() є більш ефективною,…
Використовуйте IEnumerable, якщо потрібні тільки базові функції над колекцією, наприклад, ітерація. Використовуйте IList, ICollection, якщо потрібні більш специфічні операції над колекцією. Якщо ви хочете тільки…
Розглянемо можливість отримання значення властивості за допомогою рефлексії. Для прикладу, створимо клас User, з таким вмістом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
class Programm { static void Main() { Person person = new Person("Alex", 30); } } class Person { public string Name { get; } public int Age { get; } public Person(string name, int age) { Name = name; Age = age; } } |
Для отримання значення властивості, визначимо і використаємо наступний…
Для отримання індексу поточної ітерації циклу foreach можна скористатися кількома варіантами, розглянемо їх. Foreach призначений для ітерації над колекціями, які реалізують IEnumerable. Для цього потрібно…
Яким чином можна згенерувати один символ або рядок із випадкових символів, заданої довжини? Перший варіант полягає у створенні алфавітного рядка та отримання випадкового символу з…
SelectMany() дає змогу дістати багатовимірну послідовність таким чином, що в іншому разі знадобиться другий Select() або цикл. У наведеному нижче прикладі ми побачимо, у чому…
Відсортувати список List<T> можна, використовуючи методи розширення, метод Sort, передаючи в нього делегат або ж реалізовуючи інтерфейси IComparable і IComparer. Для прикладу, візьмемо клас User…
Це пов’язано з тим, що фреймворк вимагає, щоб два однакові об’єкти мали однаковий хеш-код. Якщо ви перевизначите метод equals для спеціального порівняння двох об’єктів, і…