- •Предварительные вопросы к экзамену по дисциплине «Программирование под операционными системами Windows/Linux»
- •Базовые функциональные возможности:
- •Что собой представляет общая система типов (cts):
- •Пример:
- •Важное замечание:
- •Конструкции для выполнения итераций:
- •Формат метода:
- •Типы значения и ссылочные типы
- •Пример:
- •Файловый ввод-вывод
- •Класс Stream:
- •Работа с потоками
- •Получение статистики о текущем потоке (вывод):
- •Главная функция, главная служебная функция и обработчики:
- •Классы для служб Windows:
- •Утилита installutil:
- •Описание архитектуры Linux Операционная система – это то, что превращает ваше аппаратное обеспечение в пригодный для использования компьютер.
- •Журналируемые файловые системы
- •Процессы
Типы значения и ссылочные типы
// Локальные структуры извлекаются из стека
// после завершения метода.
static void LocalValueTypes ()
{
//В действительности int представляет
// собой структуру System.Int32.
int i = 0;
//В действительности Point представляет
// собой тип структуры.
Point p = new Point();
} // Здесь i и р изымаются из стека.
static void ValueTypeAssignment() {
Point p1 = new Point (10, 10); Point p2 = p1;
// Вывод обеих переменных Point,
p1.Display(); p2.Display();
// Изменение значение p1.X и повторный вывод.
// Значение р2.Х не изменяется.
p1.X = 100;
Console.WriteLine("\n=> Changed p1.X\n");
p1.Display(); p2.Display(); }
РЕЗУЛЬТАТ:
X = 10, Y = 10
X = 10, Y = 10
=> Changed p1.X
X = 100, Y = 10
X = 10, Y = 10
class PointRef {
public PointRef(int XPos, int YPos)
{ X = XPos; Y = YPos; }
}
static void ReferenceTypeAssignment () {
PointRef p1 = new PointRef (10, 10); PointRef p2 = p1;
p1.Display(); p2.Display();
p1.X = 100;
Console.WriteLine("\n=> Changed p1.X\n");
p1.Display(); p2.Display(); }
РЕЗУЛЬТАТ:
X = 10, Y = 10
X = 10, Y = 10
=> Changed p1.X
X = 100, Y = 10
X = 100, Y = 10
Важные отличия:
В случае передачи ссылочного типа по ссылке вызывающий код может изменять значения данных состояния объекта, а также сам объект, на который указывает входная ссылка.
В случае передачи ссылочного типа по значению вызывающий код может изменять только значения данных состояния объекта, но не сам объект, на который указывает входная ссылка
Пример:
class Car
{
// 'Состояние' объекта Саr.
public string petName;
public int currSpeed;
}
Определение методов:
…
// Функциональность Car.
public void PrintState()
{
Console.WriteLine («{0} is going {1} MPH.», petName, currSpeed);
}
public void SpeedUp(int delta)
{
currSpeed += delta;
}
Размещение объектов с помощью ключевого слова new:
static void Main(string[] args)
{
Car myCar = new Car();
myCar.petName = "Fred";
}
class Car
{
public string petName;
public int currSpeed;
public Car ()
{
petName = "Chuck";
currSpeed = 10;
}
}
Специальный конструктор:
// Позволяет вызывающему коду установить полное состояние Саr
public Car(string pn, int cs)
{
petName = pn;
currSpeed = cs;
}
…
// Создать объект Car no имени Daisy со скоростью 75 миль в час
Car daisy = new Car ("Daisy", 75);
Понятие ключевого слово static
class Motorcycle
{
public int driverlntensity;
public string name;
public void SetDriverName(string name)
{ name = name; }
}
Для разрешения неоднозначности:
public void SetDriverName (string name)
{ this.name = name; }
