В C# для удаления элемента из массива необходимо выполнить несколько шагов: Определить индекс элемента, который нужно удалить. Создать новый массив, который будет содержать все элементы,…
💜
В C# для удаления элемента из массива необходимо выполнить несколько шагов: Определить индекс элемента, который нужно удалить. Создать новый массив, который будет содержать все элементы,…
Для проверки подключения к интернету, можно воспользоваться классом 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; } } |
Для получения значения свойства, определим и используем следующий…