C# – це сучасна об’єктно-орієнтована мова програмування, розроблена компанією Microsoft. З моменту своєї появи у 2000 році вона стала однією з найпопулярніших мов програмування у…
💜
C# – це сучасна об’єктно-орієнтована мова програмування, розроблена компанією Microsoft. З моменту своєї появи у 2000 році вона стала однією з найпопулярніших мов програмування у…
У 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, якщо потрібні більш специфічні операції над колекцією. Якщо ви хочете тільки…