1. Основы C# Flashcards
Что такое тип переменной?
Тип определяет множество допустимых значений переменной и формат хранения значения этого типа в памяти.
Как преобразовать строковое представление числа в double?
double.Parse или Convert.ToDouble или double.TryParse
3/2+1.5
2.5 (деление целочисленное!)
Math.Round(5)/2 + 3.5
6.0 (Math.Round возвращает double!)
Что такое метод?
Аналог функции в математике. Именованная последовательность инструкций, с входными параметрами и, возможно, с возвращаемым результатом.
Что такое var? Корректна ли следующая запись? var a;
Ключевое слово, заменяющее тип при объявлении переменной. Заставляет компилятор определить наиболее подходящий тип на основании анализа выражения справа от знака присваивания. var a = new int[5]; полностью эквивалентно int[] a = new int [5]; Если справа нет значения, то компилятор не сможет вывести тип var и выдаст ошибку компиляции.
Как прочитать целое число из консоли?
Console.ReadLine, а затем int.Parse. Или посимвольное чтение с помощью Console.Read, а затем int.Parse
Пусть n и m имеют тип int и n < m. Возможно ли, что m*m < n?
Возможно, если случилось арифметическое переполнение при умножении. Для этого достаточно, достаточно, чтобы m*m было больше int.Max — максимального числа, которое представимо типом int
Пусть a и b имеют тип double. Какие значения может принимать следующее выражение? (a + b)(a + b) == aa + 2ab + b*b
и true и false. false, если в результате арифметических операций над типом double накопилась погрешность. Погрешность появляется из-за того, что double может принимать лишь ограниченное количество значений, а действительных чисел бесконечно много. Поэтому из-за порядка вычисления операций результат может отличаться.
Какие типы ошибок могут возникать в процессе разработки программы?
В курсе явно указывались ошибки компиляции, времени выполнения, стилистические. К этому можно добавить ошибки в алгоритмах и ошибки проектирования
Когда стоит использовать enum?
Когда нужна переменная с конечным небольшим количеством значений, каждому из которых можно дать своё имя.
Что может находиться внутри круглых скобок выражения if?
Любое выражение с типом bool
Для чего применяется слово default в выражении switch?
Чтобы указать инструкции, которые надо выполнить, если ни один из case не подошел.
Когда целесообразно использовать for, а когда foreach для перебора всех элементов коллекции?
for если нужен индекс. Иначе foreach
Что делает break в цикле?
Выходит из текущего цикла. С случае нескольких вложенных циклов — только из внутреннего
Что делает continue в цикле?
Переходит к следующей итерации текущего цикла.
Как сделать бесконечный цикл на for?
for ( ; ; ){ … }
Как получить последний элемент в массиве?
Использовать длину массива xs[xs.Length - 1]
Чему равно выражение new int[] { 1, 2, 3 } == new int[] { 1, 2, 3 }
false. Массивы сравниваются по ссылкам. Здесь массивы — это 2 разных объекта, поэтому ссылки не будут равны.
Какое значение получить быстрее в массиве из 1000 элементов values[0] или values[999]
Одинаково. Индекс всего лишь означает сдвиг адреса, из которого будет прочитано значение.
Где хранится строка? В куче или на стеке?
В куче. Как правило все значения, которые могут занимать значительный объем данных (строки, массивы) хранятся в куче, а не на стеке.
В чем ошибка? Как исправить?File.ReadAllLines(“C:\Users\user123\document.txt”)
Слеши считаются спец-символами экранирования. Либо их нужно экранировать (удвоить) “C:\Users\user123\document.txt”, либо использовать “дословный” формат строки @”C:\Users\user123\document.txt”
Чем отличается массив от списка (List)?
У массива фиксирована длина — она задаётся при создании массива и её нельзя поменять. Список увеличивает свою длину по мере необходимости. В отличие от массива у него есть метод Add(item)
В каких случаях нужно использовать StringBuilder?
Когда надо собрать длинную строчку из большого числа маленьких. Например, из массива строк.
Другие способы эффективно собрать строку из нескольких маленьких: string.Concat, string.Join и string.Format