У C# для видалення елемента з масиву необхідно виконати кілька кроків: 1. Визначити індекс елемента, який потрібно видалити. 2. Створити новий масив, який міститиме всі…
💜
У C# для видалення елемента з масиву необхідно виконати кілька кроків: 1. Визначити індекс елемента, який потрібно видалити. 2. Створити новий масив, який міститиме всі…
Для перевірки підключення до інтернету, можна скористатися класом WebRequest і отримати відповідь з боку сервера сайту:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class Program { static void Main() { Console.WriteLine(CheckForInternetConnection() ? "Works" : "It doesn't work"); } public static bool CheckForInternetConnection(int timeoutMs = 10000, string url = "https://www.google.com/") { try { var request = (HttpWebRequest)WebRequest.Create(url); request.KeepAlive = false; request.Timeout = timeoutMs; using (var response = (HttpWebResponse)request.GetResponse()) return true; } catch { return false; } } } |
До прийому є наступний клас:
1 2 3 4 5 6 7 8 |
public class Book { [Author("AuthorName")] public string Name { get; private set; } } |
Як отримати ім’я властивості та її атрибута з класу? Можна використати рефлексію:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public static Dictionary<string, string> GetAuthors() { Dictionary<string, string> _dict = new Dictionary<string, string>(); PropertyInfo[] props = typeof(Book).GetProperties(); foreach (PropertyInfo prop in props) { object[] attrs = prop.GetCustomAttributes(true); foreach (object attr in attrs) { AuthorAttribute authAttr = attr as AuthorAttribute; if (authAttr != null) { string propName = prop.Name; string auth = authAttr.Name; _dict.Add(propName, auth); } } } return _dict; } |
Використовуйте typeof(Book).GetProperties(), щоб отримати масив екземплярів…
Оскільки неможливо зробити асинхронний конструктор, оскільки після повернення конструктора ви повинні отримати повністю ініціалізований об’єкт. А не об’єкт, який насправді буде правильно ініціалізований в якийсь…
Перевернути рядок можна за допомогою методу Array.Reverse або оператора Xor, розглянемо коли використовувати кожен з варіантів. Якщо вам необхідно перевернути рядок не великого розміру до…
Зазвичай (якщо не йдеться про рядки) 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; } } |
Для отримання значення властивості, визначимо і використаємо наступний…