Ответы пользователя по тегу C#
  • Не работает запрет на переопределение методов. Почему?

    Luffy1
    @Luffy1 Автор вопроса
    Student, Junior .NET programmer, C#, JS, HTML/CSS
    Теперь понял, почему не работает, просто туплю:
    60fdab22ec3c4423770459.jpeg
    60fdab3293d18197304962.png
    60fdab7a0d0fd050061824.png
    Ответ написан
    Комментировать
  • Какое значение имеют аргументы метода Main() в создании объекта IHost?

    Luffy1
    @Luffy1 Автор вопроса
    Student, Junior .NET programmer, C#, JS, HTML/CSS
    В Руководство по программированию на С# в MSDN:
    Параметр метода Main - это массив String, который представляет аргументы командной строки

    Итак, если у меня была программа (MyApp.exe), как это:
    class Program
    {
      static void Main(string[] args)
      {
        foreach (var arg in args)
        {
          Console.WriteLine(arg);
        }
      }
    }

    Что я начал в командной строке следующим образом:
    MyApp.exe Arg1 Arg2 Arg3
    В основном методе будет передан массив, содержащий три строки: "Arg1", "Arg2", "Arg3".
    Если вам нужно передать аргумент, который содержит пробел, то оберните его в кавычки. Например:
    MyApp.exe "Arg 1" "Arg 2" "Arg 3"
    Аргументы командной строки обычно используются, когда вам нужно передавать информацию в ваше приложение во время выполнения. Например, если вы пишете программу, которая копирует файл из одного места в другое, вы, вероятно, передадите два местоположения в качестве аргументов командной строки. Например:
    Copy.exe C:\file1.txt C:\file2.txt

    Эти параметры нам нужны, если мы хотим конфигурировать приложение с помощью консоли - задать входные параметры, используя которые у приложения будет динамическое поведение - мы сможем управлять логикой приложения, а точнее тем, с чем будут, возможно, производится операции, как в примере с местоположением файла. То есть у них та же роль входных параметров, что и у обычных методов, - в зависимости от этих входных параметров, мы также получим динамический результат.

    А передавая эти параметры в метод CreateDefaultBuilder(string [] args), мы конфигурируем инициализатора приложения. Как сказано в Руководство по программированию на С# в MSDN:
    К возвращаемому HostBuilderприменяются следующие значения по умолчанию:
    Присвойте ContentRootPath результату GetCurrentDirectory()
    Загрузка узла IConfiguration из предварительно исправленных переменных среды "DOTNET_"
    Загрузить IConfiguration узла из представленных аргументов командной строки
    Загрузить IConfiguration приложений из "appSettings. JSON" и "appSettings. [EnvironmentName]. JSON
    загружать приложение IConfiguration из секретов пользователя, когда EnvironmentName — "Разработка" с помощью входной сборки
    Загрузка IConfiguration приложений из переменных среды
    Загрузить IConfiguration приложений из представленных аргументов командной строки
    Настройка ILoggerFactory для ведения журнала в выходных данных консоли, отладки и источника события
    включает проверку области в контейнере внедрения зависимостей, если EnvironmentName — "Development"


    А IConfiguration -
    Представляет набор свойств конфигурации приложения в вид пар "ключ — значение".


    А если мы не передадим параметры, то они просто не будут учитываться при создании HostBuilder'а:
    Перегрузка метода, в которой мы не передаём параметров:
    Присвойте ContentRootPath результату GetCurrentDirectory()
    Загрузка узла IConfiguration из предварительно исправленных переменных среды "DOTNET_"
    Загрузить IConfiguration приложений из "appSettings. JSON" и "appSettings. [EnvironmentName]. JSON
    загружать приложение IConfiguration из секретов пользователя, когда EnvironmentName — "Разработка" с помощью входной сборки
    Загрузка IConfiguration приложений из переменных среды
    Настройка ILoggerFactory для ведения журнала в выходных данных консоли, отладки и источника события
    включает проверку области в контейнере внедрения зависимостей, если EnvironmentName — "Development"
    Ответ написан
  • Когда мы вызываем метод GetType() класса Object, то что происходит под капотом?

    Luffy1
    @Luffy1 Автор вопроса
    Student, Junior .NET programmer, C#, JS, HTML/CSS
    Кстати, метод GetType типа System.Object просто возвращает адрес, хранящийся в указателе на объект-тип заданного объекта. Иначе говоря, метод GetType возвращает указатель на объект-тип указанного объекта и именно поэтому можно определить истинный тип любого объекта в системе (включая объекты-типы).
    - Джеффри Рихтер
    Ответ написан
    Комментировать
  • Кто может подробно рассписать про интерфейсы innumerable, ienumerator, 2 раза перечитывал, как использовать не понимаю?

    Luffy1
    @Luffy1
    Student, Junior .NET programmer, C#, JS, HTML/CSS
    По этой ссылке вы сможете найти полезную для себя инфу про IEnumerable and IEnumerator. Там всё на простом языке написано.
    Ответ написан
    Комментировать
  • Как запустить программу на W8 с W10?

    Luffy1
    @Luffy1
    Student, Junior .NET programmer, C#, JS, HTML/CSS
    Visual Studio на обоих виндах у вас одинаковая(версия, предназначение(может, это роли не играет))? .NET Core\.NET Framework одинаковый(версия) на обоих виндах? Если нет, то дело именно в этом. Если на все вышеперечисленные вопросы ответ - да, тогда попробуйте просто создать новый проект на 8 винде и перенести с него весь код проги, которая скомпилировалась на 10-ой винде.
    Ответ написан