русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Основы языка C#

Структура простейшей программы на языке С#:

using System;

class класс {
public static int Main(string[] args) {
программный код

         return 0;
}

или

public static void Main() {
программный код
}
}

Класс — это определяемый пользователем тип данных. Класс можно представить себе как чертеж, по которому организуются его члены. В отличие от класса объектом называется конкретный экземпляр определенного класса, с помощью которого обычно и производятся определенные действия в программе. Для создания нового объекта в С# используется ключевое слово new. Синтаксис оператора new выглядит так:

класс переменная=new класс();

или

класс переменная;
переменная=new класс();

Ключевое слово new означает, что среде выполнения следует выделить необходимое количество оперативной памяти под создаваемый объект. Выделение памяти производится из "управляемой кучи" (managed heap). В С# переменная любого класса — это ссылка на объект в памяти, но не сам объект. При создании переменной любого класса используется конструктор класса. Конструктор класса представляет собой метод с именем, совпадающим с именем класса, и не возвращающий никакого значения. В классе могут быть определены несколько конструкторов, принимающие разное количество параметров. Если в классе явно не определен конструктор, то компилятор автоматически создает конструктор по умолчанию без параметров, в котором данные класса получают значения по умолчанию. Конструктор по умолчанию без параметров может быть также явно определен в классе (см. ниже).

Для ввода-вывода информации на консоль используется класс Console. Для ввода информации используются статические методы int Read() (считывает один символ с клавиатуры) и string ReadLine() (считывает строку с клавиатуры до нажатия клавиши Enter). Для вывода информации используются статические методы void Write(string value) (выводит строку на экран) и void WriteLine(string format, params object[] args) (выводит строку на экран и переводит курсор на новую строку).

Для форматирования строк используется статический метод string Format(string format, params object[] args) класса String. Также форматирование строк применяется при выводе информации на консоль (см. выше). В строке формата применяются подстановочные знаки (записываются с помощью фигурных скобок, в которых указывается порядковый номер подставляемого значения) и, если необходимо, после символа двоеточия параметры форматирования (eN - вывод числа в экспоненциальном формате с N знаками в мантиссе; fN - вывод числа с фиксированной точность с N знаками после запятой; x - вывод целого числа в шестнадцатеричном формате; c - вывод числа в денежном формате; p - вывод числа в процентном формате с умножением числа на 100; n - вывод числа с разделителями между разрядами).

Все типы в С# разделяются на две основные разновидности: структурные типы (value-based) и ссылочные типы (reference-based). К структурным типам относятся все числовые типы данных (int, float и пр.), а также перечисления (enum) и структуры (struct). Память для структурных типов выделяется из стека. При присвоении переменной одного структурного типа другой переменной происходит побитовое копирование значения первой переменной во вторую переменную. Для создания переменных структурного типа оператор new не используется (за исключением вызова конструктора с параметрами для структур). К ссылочным типам относятся классы (class) и интерфейсы (interface).

Память для ссылочных типов выделяется из "управляемой кучи". При присвоении переменной одного ссылочного типа другой переменной создается еще одна ссылка, которая указывает на ту же область памяти, что и первая переменная. Для создания переменных ссылочного типа используется оператор new.

В С# все типы данных (как структурные, так и ссылочные) являются производными от класса Object. Класс Object определяет общее полиморфическое поведение для всех типов данных. Определение класса Object:

public class Object{
public Object();
public virtual Boolean Equals (Object obj);
public virtual  Int32 GetHashCode();
public Type GetType();
public virtual String ToString();
protected virtual void Finalize();
protected Object MemberwiseClone();
public static bool ReferenceEquals(Object objA, Object objB);
}

Метод Equals выполняет проверку того, что сравниваемые объекты указывают на одну и ту же область памяти. Метод GetHashCode возвращает целое число, идентифицирующее конкретный объект данного типа. Метод GetType возвращает описание типа того объекта, для которого он был вызван. Метод ToString возвращает строковое представление объекта. Метод Finalize вызывается перед удалением объекта (см. ниже). Метод MemberwiseClone используется для создания еще одной ссылки на область памяти, занимаемую данным объектом. Метод ReferenceEquals выполняет проверку того, что сравниваемые объекты указывают на одну и ту же область памяти.

Перечень встроенных типов языка C# и соответствующих им системных типов .NET:

byte (Byte) - целое в диапазоне от 0 до 255;
short (Int16) - целое в диапазоне от -32768 до 32767;
int (Int32) - целое в диапазоне от -2 147 483 648 до 2 147 483 647;
long (Int64) - целое в диапазоне от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807;
char (Char) - один 16-битовый символ Unicode;
string (String) - строка неограниченного размера символов Unicode;
float (Single) - число с плавающей точкой от 10(-45) до 10(38);
double (Double) - число с плавающей точкой от 10(-324) до 10(308);
bool (Boolean) - логическое значение true или false;
object (Object) - все, что угодно.
Для объявления константы используется ключевое слово const.
Цикл со счетчиком определяется следующим образом:

for(инициализация счетчика; условие; изменение счетчика)
тело цикла

Цикл со счетчиком прекращается в том случае, когда условие становится ложным. Цикл с предусловием записывается следующим образом:

while(условие)
тело цикла

Цикл с предусловием прекращается в том случае, когда условие становится ложным. Цикл с постусловием записывается следующим образом:

do
тело цикла
while(условие);

Цикл с постусловием прекращается в том случае, когда условие становится ложным. Цикл с массивом записывается следующим образом:

foreach(элемент массива in массив)
тело цикла

Цикл с массивом прекращается в том случае, когда будет закончен перебор всех элементов массива. Во всех циклах можно применять операторы break и continue.

Для проверки условия используется следующая конструкция:

if (условие)
условие истинно
else
условие ложно

Для множественной проверки значения переменной используется следующая конструкция:

switch(переменная){
case значение 1:
код для значения 1
break;
case значение 2:
код для значения 2
break;
default:
код для значения по умолчанию
}

Массив — это набор элементов одного типа, доступ к которым производится с помощью числового индекса. В С# массивы могут быть простыми или многомерными. Массивы объявляются путем помещения квадратных скобок после указания типа данных для элементов этого массива. Синтаксис объявления массива:

тип[] массив=new тип[количество элементов];

или

тип[] массив;
массив=new тип[количество элементов];

Элементы массива могут быть инициализированы при объявлении:

тип[] массив={значение, значение, ...};

Для доступа к элементу массива после его имени в квадратных скобках указывается индекс элемента. Индексация элементов массива всегда начинается с 0. Необходимо обратить внимание на то, что любой массив является производным классом от класса Array. В следствие этого любой массив в C# наследует большое количество полезных методов обработки элементов массива. Для сортировки массива используется статический метод void Sort(Array array) класса Array (для выполнения сортировки необходимо, чтобы для типа элементов массива был реализован интерфейс IComparable). Для поиска элемента массива используется статический метод int BinarySearch(Array array, object value) класса Array (для выполнения поиска необходимо, чтобы для типа элементов массива был реализован интерфейс IComparable).

Для улучшения структурирования программного кода в C# используется пространства имен. Для объявления пространства имен используется следующая конструкция:

namespace имя{
определения типов
}

В последующем для обращения к типу, объявленному в пространстве имен, используется конструкция имя.тип. Пространства имен могут быть вложенными. Для подключения классов из какого-либо пространства имен используется конструкция using имя. Если подключено пространство имен, то можно ссылаться на тип и без указания пространства имен.

Просмотров: 5175

Вернуться в оглавление:Введение в разработку распределенных информационных систем




Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.