Мова програмування С# І платформа ms. Net Framework icon

Мова програмування С# І платформа ms. Net Framework




Скачати 255.83 Kb.
НазваМова програмування С# І платформа ms. Net Framework
Дата25.10.2012
Розмір255.83 Kb.
ТипЛекція


Мова програмування С# і платформа MS.Net Framework


Символіка C# означає два C++, з'єднані у решітку.

Значить нова мова значно краща? Побачимо...

Лекція 2. Ядро мови C#


План

2.1. Основні поняття C#

2.2. Система типів C#

2.3. Змінні, операції, вирази:

2.4. Перетворення вбудованих арифметичних типів-значень.

2.5. Перетворення з рядкового типу в арифметичний

2.6. Стиль програмування. Узгодження іменування


2.1. Основні поняття C#

Для запису програми в C# використовується кодування символів Unicode. Кодуванням, або кодовою таблицею (character set), називається відповідність між символами і числами, що кодують їх. Кодування Unicode дозволяє представити символи всіх існуючих алфавітів одночасно. Кожному символу відповідає свій унікальний код.

Алфавіт C# включає:

  • букви (латинські і національних алфавітів) і символ підкреслення (_), який вживається разом з буквами;

  • цифри;

  • спеціальні символи, наприклад +, *, { і &;

  • пробільні символи (пробіл і символи табуляції);

  • символи переведення рядка.

З символів складаються більші будівельні блоки: лексеми, директиви препроцесора і коментарі.

Лексема (token) — це мінімальна одиниця мови, що має самостійний сенс. Існують такі види лексем:

  • імена (ідентифікатори);

  • ключові слова;

  • знаки операцій;

  • роздільники;

  • літерали (константи).

Ідентифікатори


Імена (або ідентифікатори) використовуються для того, щоб звертатися до програмних об'єктів і розрізняти їх, тобто ідентифікувати. В ідентифікаторі дозволяється використовувати букви, цифри і символ підкреслення. Прописні і рядкові букви розрізняються, наприклад, hacker, Hacker і hAcKeR - три різні імені.

Першим символом ідентифікатора може бути буква або знак підкреслення, але не цифра. Довжина ідентифікатора не обмежена. Пропуски усередині імен не допускаються.
^

Ключові слова


Ключові слова — це зарезервовані ідентифікатори, які мають спеціальне значення для компілятора. Їх можна використовувати лише в тому значенні, в якому вони визначені.


^ Таблиця 2.1. Ключові слова C#

abstract

as

base

bool

break

byte

case

catch

char

checked

class

const

continue

decimal

default

delegate

do

double

пelse

enum

event

explicit

extern

false

finally

fixed

float

for

foreach

goto

if

implicit

in

int

interface

internal

is

lock

long

namespace

new

null

object

operator

out

override

params

private

protected

public

readonly

ref

return

sbyte

sealed

short

sizeof

stackalloc

static

string

struct

switch

this

throw

true

try

typeof

uint

ulong

unchecked

unsafe

ushort

using

virtual

void

volatile

while









^

Знаки операцій і роздільники


Знак операції — це один або більше символів, що визначають дію над операндами. Усередині знаку операції пробіли не допускаються. Символи, які складають знак операцій, можуть бути спеціальними, наприклад +, &&, | і <, і буквеними, такими як as або new.

Операції діляться на унарні, бінарні і тернарні за кількістю операндів, що беруть участь в них (один, два і три операнди відповідно). Один і той самий знак може інтерпретуватися по-різному залежно від контексту.

Роздільники використовуються для розділення або, навпаки, групування елементів. Приклади роздільників: дужки, крапка, кома. Нижче перераховані всі знаки операцій і роздільники, що використовуються в C#:

{ } [ ] ( ) . , : ; + - * / % & | ^ ! ~ =

< > ? ++ -- && || << >> == != <= >= += -= *= /= %=

&= |= ^= <<= >>= ->

^

Літерали (константи)


Літералами, або константами, називають незмінні величини. У C# є логічні, цілі, дійсні, символьні і строкові константи, а також константа null. Компілятор, виділивши константу як лексему, відносить її до одного з типів даних за її зовнішнім виглядом. Програміст може задати тип константи і самостійно.

Логічні літерали: true і false. Вони широко використовуються як ознаки наявності або відсутності чого-небудь.

^ Цілі літерали можуть бути представлені або в десятковій, або в шістнадцятковій системі числення, а дійсні — лише в десятковій системі, але в двох формах: з фіксованою крапкою і з порядком.

Константа null є значенням, що задається за замовчанням для величин посилкових типів, яких ми розглянемо далі в цій лекції.

Коментарі


Коментарі призначені для запису пояснень до програми і формування документації. Компілятор коментарі ігнорує. Усередині коментаря можна використовувати будь-які символи. У C# є два види коментарів: однорядкові і багаторядкові.

^ Однорядковий коментар починається з двох символів косої риски (//) і закінчується символом переходу на новий рядок, багаторядковий розміщується між символами-дужками /* і */ і може займати частину рядка, цілий рядок або декілька рядків. Коментарі не вкладаються один в одний.

Крім того, в мові є ще один вид коментарів, які починаються з трьох символів косої риски, що йдуть підряд (///). Вони призначені для формування документації до програми у форматі XML. Компілятор витягує ці коментарі з програми, перевіряє їх відповідність правилам і записує їх в окремий файл.

Символьні Escape-послідовності

Escape-послідовності використовуються для створення додаткових ефектів (дзвінок), простого форматування інформації, що виводиться, і кодування символів при виведенні і порівнянні (у виразах порівняння). В таблиці наведені основні Escape-послідовності.


\a

Попередження (дзвінок)

\b

Повернення на одну позицію

\f

Перехід на нову сторінку

\n

Перехід на новий рядок

\r

Повернення каретки

\t

Горизонтальна табуляція

\’

Одинарна кавичка

\’’

Подвійна кавичка


^ 2.2. Система типів C#

Дані, з якими працює програма, зберігаються в оперативній пам'яті. Природно, що компілятору необхідно точно знати, скільки місця вони займають, як саме закодовані і які дії з ними можна виконувати. Все це задається при описі даних за допомогою типу.

Тип даних однозначно визначає:

  • внутрішнє представлення даних, а отже і множину їх можливих значень;

  • допустимі дії над даними (операції і функції).

Наприклад, цілі і дійсні числа, навіть якщо вони займають однаковий об'єм пам'яті, мають абсолютно різні діапазони можливих значень.

Кожний вираз в програмі має певний тип. Компілятор використовує інформацію про тип при перевірці допустимості описаних в програмі дій.

Пам'ять, в якій зберігаються дані під час виконання програми, ділиться на дві області: стек (stack) і динамічна область, або хіп (heap), частіше називається купою. Стек використовується для зберігання величин, пам'ять під які виділяє компілятор, а в динамічній області пам'ять резервується і звільняється під час виконання програми за допомогою спеціальних команд.

Всі типи можна розділити на прості (які не мають внутрішньої структури) і структуровані (складаються з елементів інших типів). За своїм "творцем" типи можна розділити на вбудовані (стандартні) і типи, які визначаються програмістом. За способом зберігання значень типи діляться на типи-значення (статичні), і посилкові (динамічні). Розглянемо в першу чергу вбудовані типи C#.
^

Вбудовані типи


Вбудовані типи не вимагають попереднього визначення. Для кожного типу існує ключове слово, яке використовується при описі змінних і констант. Вбудовані типи C# наведені в таблиці 2.2. Вони однозначно відповідають стандартним класам бібліотеки .NET, яка визначена в просторі імен System. Як видно з таблиці, існують декілька варіантів представлення цілих і дійсних величин. Програміст вибирає тип кожної величини, яка використовується в програмі, з урахуванням необхідного йому діапазону і точності представлення даних.

^ Таблиця 2.2. Вбудовані типи C#

Назва


Ключове слово

Тип .NET

^ Діапазон значень

Опис

Розмір, бітів

Логічний тип

bool

Boolean

true, false







Цілі типи

sbyte

SByte

від –128 до 127

Зі знаком

8

byte

Byte

від 0 до 255

Без знака

8

short

Int16

від –32768 до 32767

Зі знаком

16

ushort

UInt16

від 0 до 65535

Без знака

16

int

Int32

від –2 × 109 до 2 × 109

Зі знаком

32

uint

UInt32

від 0 до 4 × 109

Без знака

32

long

Int64

від –9 × 1018 до 9 × 1018

Зі знаком

64

ulong

UInt64

від 0 до 18 × 1018

Без знака

64

^ Символьний тип

char

Char

від U+0000 до U+ffff

Unicode-символ

16

^ Дійсні числа

float

Single

від 1.5 × 10-45 до 3.4 × 1038

7 цифр

32

double

Double

від 5.0 × 10-324 до 1.7 × 10308

15–16 цифр

64

Фінансовий тип

decimal

Decimal

від 1.0 × 10-28 до 7.9 × 1028

28–29 цифр

128

^ Строковий тип

string

String

Довжина обмежена об'ємом доступної пам'яті

Рядок із Unicode-символів




^ Тип object

object

Object

Можна зберігати все, що завгодно

Загальний предок





Примітка

Дійсні типи і фінансовий тип є знаковими. Для них в стовпчику "діапазон значень" наведені абсолютні величини допустимих значень.

^ Логічний, або булевий, тип містить всього два значення: true (істина) і false (не істина).

Всі цілі і дійсні типи разом з символьним і фінансовим можна назвати арифметичними типами.

Внутрішнє представлення величини цілого типу — ціле число в двійковому коді. У знакових типах старший біт числа інтерпретується як знак (0 - позитивне число, 1 - негативне).

Дійсні типи, або типи даних, з плаваючою крапкою зберігаються в пам'яті комп'ютера інакше, ніж цілі. Внутрішнє представлення дійсного числа складається з двох частин - мантиси і порядку, причому кожна частина має знак. Довжина мантиси визначає точність числа, а довжина порядку - його діапазон. Всі дійсні типи можуть представляти як додатні, так і від'ємні числа. Найчастіше в програмах використовується тип double, оскільки його діапазон і точність покривають більшість потреб.

Тип decimal призначений для грошових обчислень, в яких критичні помилки округлення. Величини типа decimal дозволяють зберігати 28–29 десяткових розрядів. Тип decimal не відноситься до дійсних типів, у них різне внутрішнє представлення. Величини грошового типа навіть не можна використовувати в одному виразі з дійсними без явного перетворення типа.

Будь-який вбудований тип C# відповідає стандартному класу бібліотеки .NET, визначеному в просторі імен System.

^ Прикладами типів в С# є:

Типи-Значення (value types):

– прості (базові): int і; float х;

– перечислення: enum State { Off, On }

– структури: struct Point {int х,у;}

^ Посилкові типи (reference types):

– кореневі: object

– рядкові: string

– класи: class Foo: Bar, IFoo {...}

– інтерфейси: interface IFoo: IBar {...}

– масиви: string[] = new string[10];

– делегати: delegate void Empty();


Зверніть увагу, що типи string і масиви є посилковими.


Посилкові типи object та string є наперед визначеними (вбудованими). Вони належать до простору імен System, отже їх методи доступні для всіх об’єктів С# (вони позначаються System.Object и System.String.)

^

2.3. Змінні, операції, вирази

2.3.1. Визначення простих типів і їх ініціалізація


Змінна — це іменована область пам'яті, призначена для зберігання даних певного типу. Під час виконання програми значення змінної можна змінювати.

Мова C# є строго типізованою мовою з чітким контролем типів даних. Усі змінні повинні бути визначені до їх першого використання.

При описі для кожної змінної задаються її ім'я і тип.

Визначення змінних простих типів (вбудованих типів-значень) має наступний загальний синтаксис:

^ Тип_змінної им’я_змінної [=значення];

Ім'я змінної служить для звернення до області пам'яті, в якій зберігається значення змінної. Ім'я дає програміст. Тип змінної вибирається, виходячи з діапазону і необхідної точності представлення даних. При оголошенні можна привласнити змінній деяке початкове значення, тобто ініціалізувати її.

Наприклад:

int a, b = 1;

float x = 0.1, y = 0.1f;

int x;

x=100;

long w,z=100;

long q=100*z;


Рекомендується завжди ініціалізувати змінні при описі. При ініціалізації можна використовувати не лише константу, але і вираз— головне, щоб на момент опису воно було обчислюваним, наприклад:


int b = 1, а = 100;

int x = b * а + 25;


Програма на C# складається з класів, усередині яких описують методи і дані. Змінні, описані безпосередньо усередині класу, називаються полями класу. Їм автоматично призначається так зване "значення за замовчанням" — як правило, це 0 відповідного типу. Змінні, описані усередині методу класу, називаються локальними змінними. Їх ініціалізація покладається на програміста.




^ Область дії змінної в C# - блок коду ({}). Змінна створюється при вході в область видимості і знищується при виході з неї.


Область дії змінної, тобто область програми, де можна використовувати змінну, починається в точці її опису і триває до кінця блоку, усередині якого вона описана.

Блок — це код, взятий у фігурні дужки. Основне призначення блоку — угрупування операторів. У C# будь-яка змінна описана усередині якого-небудь блоку: класу, методу або блоку усередині методу. Ім'я змінної має бути унікальним в області її дії. Область дії поширюється на вкладені в метод блоки.

Увага

Змінні створюються при вході в блок і знищуються при виході. Це означає, що після виходу з блоку значення змінної не зберігається. При повторному вході в цей же блок змінна створюється заново.


Іменовані константи

Можна заборонити змінювати значення змінної, задавши при її описі ключове слово const, наприклад:


const int b = 1;

const float x = 0.1, в = 0.1f; // const поширюється на обидві змінні


Такі величини називають іменованими константами, або просто константами. Вони застосовуються для того, щоб замість значень констант можна було використовувати в програмі їх імена. Це робить програму зрозумілішою і полегшує внесення до неї змін. Іменовані константи повинні обов'язково ініціалізуватися при описі, наприклад:


const int b = 1, a = 100;

const int x = b * a + 25;




^ 2.3.2. Операції і вирази


Вираз — це правило обчислення значення. У виразі беруть участь операнди, об'єднані знаками операцій. Операндами простого виразу можуть бути константи, змінні і виклики функцій.

Наприклад, а+2 — це вираз, в якому + є знаком операції, а а і 2 — операндами. Пропуски усередині знаку операції, що складається з декількох символів, не допускаються. Операції C# наведені в таблиці 2.3.



^ Таблиця 2.3. Операції C#

Категорія

Знак операції

Назва

Первинні




Доступ до елементу

x()

Виклик методу або делегата

x[]

Доступ до елементу

x++

Постфіксний інкремент

x--

Постфіксний декремент

new

Виділення пам'яті

typeof

Отримання типу

checked

Код, що перевіряється

unchecked

Код, що не перевіряється

Унарні


+

Унарний плюс

-

Унарний мінус (арифметичне заперечення)

!

Логічне заперечення

?

Порозрядне заперечення

++x

Префіксний інкремент

--x

Префіксний декремент

(тип)x

Перетворення типу

Мультиплікативні

*

Множення

/

Ділення

%

Залишок від ділення

Додавання/віднімання

+

Додавання

-

Віднімання

Зсув


<<

Зсув вліво

>>

Зсув вправо

Відношення і перевірка типу


<

Менше

>

Більше

<=

Менше або рівно

>=

Більше або рівно

is

Перевірка належності до типу

as

Приведення типа

Перевірки на рівність


==

Рівно

!=

Не рівно

Порозрядні логічні


&

Порозрядна кон'юнкція (І)



Порозрядне АБО

|

Порозрядна диз'юнкція (АБО)

Умовні логічні


&&

Логічне І

||

Логічне АБО

Умовна

? :

Умовна операція

Призначення


=

Призначення


*=

Множення з призначенням

/=

Ділення з призначенням

%=

Залишок відділення з призначенням

+=

Складання з призначенням

-=

Віднімання з призначенням

<<=

Зсув вліво з призначенням

>>=

Зсув вправо з призначенням

&=

Порозрядне І з призначенням

=

порозрядне виключаюче АБО з призначенням

|=

Порозрядне АБО з призначенням
^

2.4. Перетворення вбудованих арифметичних типів-значень


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

Якщо операнди різного типу і (або) операція для цього типу не визначена, перед обчисленнями автоматично виконується перетворення типу по правилах, що забезпечують приведення коротших типів до довших для збереження значущості і точності. Автоматичне (неявне) перетворення можливе не завжди, а лише якщо при цьому не може статися втрата значущості.

Якщо неявного перетворення з одного типа в іншій не існує, програміст може задати явне перетворення типу за допомогою операції (тип) x.

Розрізняються:

^ Розширююче перетворення – значення одного типу приводиться до значення іншого типу, яке має такий самий або більший розмір. Наприклад, значення, представлене у вигляді 32-розрядного цілого числа із знаком, може бути перетворено в 64-розрядне ціле число із знаком. Таке перетворення вважається безпечним, оскільки початкова інформація при такому перетворенні не спотворюється.

Можливі варіанти перетворення типів

Byte

UInt16, Int16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal

SByte

Int16, Int32, Int64, Single, Double, Decimal

Int16

Int32, Int64, Single, Double, Decimal

UInt16

UInt32, Int32, UInt64, Int64, Single, Double, Decimal

Char

UInt16, UInt32, Int32, UInt64, Int64, Single, Double, Decimal

Int32

Int64, Double, Decimal

UInt32

Int64, Double, Decimal

Int64

Decimal

UInt64

Decimal

Single

Double

Всі арифметичні класи, у тому числі клас Int, мають перегружений статичний метод Parse, в якого першим обов'язковим параметром є рядок, що задає значення відповідного арифметичного типу в локалізованій формі. Форматом рядка і стилем її представлення можна управляти за допомогою інших параметрів методу Parse.

Ось приклад виклику цього методу для класів Int і Double.

Приклад 2.1.

// Перетворення типу з використанням методу Parse


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Parsing

{

class Program

{

static void Main(string[] args)

{

//method Parse

Console.WriteLine("Введіть ціле");

string strdata = Console.ReadLine();

int intdata = int.Parse(strdata);

Console.WriteLine("Введіть число з дробовою частиною і порядком");

strdata = Console.ReadLine();

double doubdata = double.Parse(strdata);

Console.WriteLine("intdata = {0}; doubdata = {1}",

intdata, doubdata);

Console.ReadKey();

}

}

}


^ Звужуюче перетворення - значення одного типу перетвориться до значення іншого типу, яке має менший розмір (з 64-розрядного в 32-розрядне).

Таке перетворення потенційно небезпечно втратою значення.

Звужуючі перетворення можуть приводити до втрати інформації. Якщо тип, до якого здійснюється перетворення, не може правильно передати значення джерела, то результат перетворення виявляється рівний константі


PositiveInfinity або NegativeInfinity.


При цьому значення PositiveInfinity інтерпретується як результат ділення позитивного числа на нуль, а значення NegativeInfinity інтерпретується як результат ділення негативного числа на нуль.

Якщо звужуюче перетворення забезпечується методами класу System.Convert то втрата інформації супроводиться генерацією виключної ситуації.

^ Явне і неявне перетворення типів

Приклади явного і неявного перетворення типів

int x = 25;

long y = x; // неявне

short z = (short)x; // явне

double d = 3.141592536;

float f = (float)d; // явне

long l = (long)d; // явне


Система Common Type System середовища Microsoft .NET забезпечує безпечну типізацію, тобто гарантує відсутність побічних ефектів (переповнення оперативної пам'яті комп'ютера, некоректне перетворення типів і т.д.).
^

2.5. Перетворення з рядкового типу в арифметичний


Коли користувач вводить дані різних типів (з консолі чи форми), то він задає ці дані як рядки тексту. Дані строкового типу потребують явного перетворення до арифметичного типу.

Класи бібліотеки FCL надають два способи явного виконання таких перетворень:

Метод Parse;

Методи класу Convert.
^

2.5.1. Метод Parse


Всі скалярні типи (арифметичний, логічний, символьний) мають статичний метод Parse, аргументом якого є рядок, а результатом об'єкт відповідного типу.

Розглянемо приклад перетворення даних з використанням методу Parse.


Приклад 2.2.

static void InputVars()

{

string strInput;

Console.WriteLine(INPUT_BYTE);

strInput = Console.ReadLine();

byte b1;

b1 = byte.Parse(strInput);


Console.WriteLine(INPUT_INT);

strInput = Console.ReadLine();

int n;

n = int.Parse(strInput);


Console.WriteLine(INPUT_FLOAT);

strInput = Console.ReadLine();

float x;

x = float.Parse(strInput);


Console.WriteLine(INPUT_CHAR);

strInput = Console.ReadLine();

char ch;

ch = char.Parse(strInput);

}
^

2.5.2. Перетворення з арифметичного типу у тип string


Перетворення в тип string завжди визначені, оскільки всі типи є нащадками базового класу object і успадковують метод ToString().

Для всіх підтипів арифметичного типу метод ToString() повертає рядок, який задає відповідне значення арифметичного типа. Метод ToString завжди потрібно викликати явно. Його можна опускати при виконанні операції конкатенації. Якщо один з операндів операції «+» є рядком, то операція сприймається як конкатенація рядків і другий операнд неявно перетвориться до цього типу. Ось відповідний приклад:

Приклад 2.3.


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace Lab2_3

{

class Program

{

///

/// Демонстрація перетворення в рядок

/// даних різного типу

///


static void Main(string[] args)

{

string name;

int age;

double salary;

name = "Василь Іванов";

age = 20;

salary = 2700;

string s = "Ім'я: " + name +

". Вік: " + age.ToString() +

". Зарплата: " + salary;

Console.WriteLine(s);

Console.ReadKey();

}

}

}


Тут для змінної age метод був викликаний явно, а для змінної salary він викликається автоматично.
^

12.5.3. Клас Convert і його методи


Для перетворень усередині арифметичного типа можна використовувати кастинг - приведення типа. Для перетворень строкового типа в скалярний тип можна використовувати метод Parse, а у зворотний бік – метод ToString.

У всіх ситуаціях, коли потрібно виконати перетворення з одного базового вбудованого типа в інший базовий тип, можна використовувати методи класу Convert бібліотеки FCL, вбудованого в простір імен System, - універсального класу, статичні методи якого спеціально спроектовані для виконання перетворень.

Серед інших методів класу Convert є загальний статичний метод ChangeType, що дозволяє перетворення об'єкту до деякого заданого типа. Існує також можливість перетворення у системний тип DateTime, який хоча і не є базисним типом мови C#, але допустимий в програмах, як і будь-який інший системний тип.

Методи класу Convert підтримують загальний спосіб виконання перетворень між типами. Клас Convert містить 15 статичних методів вигляду To (ToBoolean(),.ToUInt64()), де Type може набувати значень від Boolean до UInt64 для всіх вбудованих типів. Єдиним виключенням є тип object, – методу ToObject немає із зрозумілих причин, оскільки для всіх типів існує неявне перетворення до типа object.

Приклад 2.4.


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;


namespace Lab1_2

{

class Program

{

///

/// Тестування методів класу Convert

///



static void Main(string[] args)

{

string s;

byte b;

int n;

double x;

bool flag;

char sym;

DateTime dt;

sym = '7';

s = Convert.ToString(sym);

x = Convert.ToDouble(s);

n = Convert.ToInt32(x);

b = Convert.ToByte(n);

flag = Convert.ToBoolean(b);

x = Convert.ToDouble(flag);

s = Convert.ToString(flag);

s = "300";

n = Convert.ToInt32(s);

s = "14.09";

s = "14.09.2008";

dt = Convert.ToDateTime(s);


}

}

}

Цей приклад демонструє різні перетворення між типами. Всі ці перетворення виконуються явно з використанням методів класу Convert. Спочатку дані символьного типа перетворюються в рядок. Потім ці дані перетворюються в дійсний тип, потім проводяться перетворення усередині арифметичного типа з пониженням типа від double до byte. Перетворенням, що завершує приклад, є перетворення даних строкового типа до типа DateTime.

^

2.6. Стиль програмування. Узгодження іменування


На теперішній час Microsoft рекомендує користуватися нотацією camel для імен змінних згідно з якою перша літера повинна бути на нижньому регістрі, наприклад: sName.

Для імен методів і інших ідентифікаторів рекомендується нотація Pascal за якою перша літера повинна бути на верхньому регістрі, наприклад, MyMethod.

Ідентифікатори не повинні вступати в конфлікт з ключовими словами. Крім того, вони чутливі до регістру символів, наприклад, імена sName і Sname вважаються різними.

Висновки

Мова C# є повністю об'єктно-орієнтованою мовою програмування. Це означає, що весь програмний код повинен бути розміщений в класах. Ядро мови C# досить компактне і практично співпадає з С++. Вся потужність мови реалізована за допомогою класів. До основних понять мови можна віднести ідентифікатори, ключові слова, знаки операцій і роздільники, літерали. Важливо пам'ятати, що компілятор C# чутливий до регістру, тобто, Value i value – це різні ідентифікатори.

С# є строго типізованою мовою, тобто, кожна змінна повинна бути визначена в програмі до першого використання. Система типів С# складніша за систему C++ за своєю реалізацією. На відміну від C++ визначати змінні можна у будь якому місці програми, а не на її початку. Область дії змінної – блок коду (частина коду, обмежена фігурними дужками {}). Глобальних змінних у звичайному процедурному розумінні в С# немає.

Якщо в арифметичному виразі, який обчислюється в програмі є операнди різних типів, то перед обчисленням виконується перетворення типів (неявне, якщо воно можливе, та явне, яке задає програміст перед операндом). Для перетворення з рядкового типу в арифметичний є метод Parse.

При написанні програми важливо дотримуватися певного стилю іменування змінних. Для цього пропонуються дві нотації: camel - для імен змінних і Pascal – для імен методів і інших ідентифікаторів.
^

Питання і завдання для самостійної роботи студента


  1. Перерахуйте і опишіть лексеми мови C#.

  2. Перерахуйте і опишіть літерали мови C#.

  3. Перерахуйте вбудовані типи даних і опишіть їх.

  4. Які елементи стандартних класів .NET, відповідних вбудованим типам мови, ви знаєте?

  5. Де можна описувати змінні? Що входить в опис змінної?

  6. Що відбувається при використанні у виразі операндів різних типів? Наведіть приклади.

  7. Які методи використовуються для перетворення даних з типу string в арифметичні типи?

  8. Який метод використовується для перетворення з арифметичного типу в тип string ?

  9. Які назви слід давати іменам методів? Що означає нотація Pascal?

  10. Лабораторна робота № 2

Схожі:

Мова програмування С# І платформа ms. Net Framework iconМова програмування С# І платформа ms. Net Framework Освітньо-кваліфікаційний рівень – «Бакалавр»
Мнту, відповідно до освітньо-професійної програми, освітньо-кваліфікаційної характеристики та навчального плану підготовки бакалаврів...
Мова програмування С# І платформа ms. Net Framework iconКонспект лекцій Лекції призначені для студентів мнту денної та заочної (дистанційної) форм навчання
Мова програмування С# І платформа ms. Net Framework: Конспект лекцій. Для студентів напрямів підготовки “Комп’ютерні науки”, “Програмна...
Мова програмування С# І платформа ms. Net Framework iconЛекція Компонента модель. Net Framework
Під платформою Microsoft. Net слід розуміти інтегровану систему (інфраструктуру) засобів розробки, розгортання І виконання складних...
Мова програмування С# І платформа ms. Net Framework iconЛекція Основи технологічної платформи ms. Net Framework
Складність інтеграції існуючих рішень в рамках однієї програмної системи – відмінність апаратно-програмних платформ, пропонованих...
Мова програмування С# І платформа ms. Net Framework iconПрограмування (мова С++) Системне програмування

Мова програмування С# І платформа ms. Net Framework iconПрограма олімпіади з предмету "англійська мова"
Рівень володіння англійської Upper-Intermediate (Independent User – В2) за Європейською шкалою (Common European Framework of Reference...
Мова програмування С# І платформа ms. Net Framework iconЛабораторна робота №11: " Мова програмування Visual Basic в застосуванні до ms excel "
Мета роботи: Засвоїти основні принципи програмування та налагоджування програм. Навчитися використанню автозапису макросів для автоматизації...
Мова програмування С# І платформа ms. Net Framework iconIii курс, осінній триместр 2006 – 2007 н р
Центральне місце в курсі займає програмування систем електронної комерції як розподілених клієнт-серверних застосувань; детально...
Мова програмування С# І платформа ms. Net Framework iconТексти програми, мова програмування с++

Мова програмування С# І платформа ms. Net Framework iconТема: Програмування. Основні етапи розробки прикладних програм
Під програмуванням розуміють представлення в деякій символічній формі певного алгоритму. В якості символічної форми може використовуватися...
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи