Кратко съдържание


Директиви на предпроцесора



страница22/73
Дата21.07.2018
Размер9.03 Mb.
#76887
1   ...   18   19   20   21   22   23   24   25   ...   73

Директиви на предпроцесора


Нека сега разгледаме някои по-важни директиви на т. нар. предпроцесор. Преди компилация C# програмите преминават през процес на обработка, който идентифицира кода, който трябва да бъде компилиран при условна ком­пилация. Този процес се изпълнява от предпроцесора. Програмно върху предпроцесора можем да указваме влияние чрез т.нар. директиви – запазени думи, започващи със символа #.

Директиви за форматиране на сорс кода


В С# са въведени директиви за форматиране на сорс кода - #region и #endregion, които ограждат блок от кода, който се "свива" от редактора на Visual Studio .NET:

#region Windows Form Designer generated code

///

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

///

private void InitializeComponent()

{

// ...


}

#endregion



Visual Studio .NET редакторът много често слага региони, за да отдели автоматично-генерирания код от сорс кода, писан от програмиста. Дирек­тивите #region и #endregion се игнорират от C# компилатора и се използват единствено от средите за разработка.

Директиви за условна компилация


Директивите #define и #ifdef служат за условна компилация. Чрез тях може да се укаже на компилатора да компилира кода по различен начин според процесора, платформата и въобще средата, в която се извършва компилацията. Чрез #if, #else, #elif, #endif се задават границите на блоковете за условна компилация и съответните условия (знаци) за ком­пилиране. Директивите #define и #undef дефинират знаци за услов­на компилация, според които се определя кой от блоковете за условна компилация да се разглежда.

Условна компилация – пример


Следният пример показва как могат да се използват директивите на предпроцесора за условна компилация:

#define DEBUG

#define VC_V7


using System;

public class MyClass

{

public static void Main()



{

#if (DEBUG && !VC_V7)

Console.WriteLine("Only DEBUG is defined");

#elif (!DEBUG && VC_V7)

Console.WriteLine("Only VC_V7 is defined");

#elif (DEBUG && VC_V7)

Console.WriteLine("DEBUG and VC_V7 are defined");

#else


Console.WriteLine("DEBUG and VC_V7 are not defined");

#endif


}

}


Ето и резултата от изпълнението на примера:


Директиви за контрол над компилатора


Директивите #warning и #error предизвикват предупреждения и грешки по време на компилация. Например следната програма на C# се компи­лира успешно, но с предупреждение:

#define DEBUG

public class MyClass

{

public static void Main()



{

#if DEBUG

#warning DEBUG symbol is defined

#endif


}

}

Документацията на .NET Framework


Програмирането с .NET Framework е немислимо без неговата документа­ция. Затова нека сега разгледаме какво представлява тя и как можем да я използваме при търсене на помощна информация по време на разработ­ката на .NET приложения.

MSDN Library


Документацията на .NET Framework се съдържа в "Microsoft MSDN Library".

MSDN Library е система, която предоставя пълен набор от технически до­кументи, описващи продуктите, инструментите и технологиите за разра­ботка на Microsoft (в частност .NET Framework и C#), както и средства за навигация и търсене в тях. MSDN Library съдържа технически ръковод­ства, справочна информация, статии, при­мери и други ресурси за софту­ерни разработчици.

MSDN Library е достъпен безплатно в on-line вариант от Интернет сайта за разработчици на Microsoft – http://msdn.microsoft.com/library/. Продуктът се разпростра­нява и за локална инсталация заедно с партньорските прог­рами на Microsoft.

MSDN Library – пример


За пример ще покажем как можем да намерим подробна информация за форматиращите низове в .NET Framework и тяхното използване. За целта стартираме MSDN Library и търсим "composite formatting":


.NET Framework и MSDN Library


Документацията на .NET Framework е част от MSDN Library и се разпро­странява заедно с VS.NET и .NET Framework SDK.

Когато бъде инсталирана, документацията за .NET Framework, тя се инте­грира във VS.NET и може да се използва директно от него. Напри­мер, ако се нуждаем от помощна информация за метода WriteLine(…) на класа Console, натискаме [F1] във Visual Studio .NET докато курсорът е върху този метод. Отваря се нов прозорец, в който са описани параметрите, типа на връщаната стойност, типовете изключения, които може да предиз­вика описвания метод, в кое пространство от имена се намира и др.



Ето как изглежда описанието на метода WriteLine(…) на класа Console:


Упражнения


  1. Съставете програма на C#, която въвежда от конзолата име на студент и го поздравява в стил "Здравей, <име>!".

  2. Съставете програма на C#, която въвежда коефициентите на квад­ратно уравнение и пресмята реалните му корени.

  3. Напишете програма, която намира всички символни низове, които се състоят от точно 5 малки латински букви и са симетрични спрямо сре­дата си.

  4. Проследете работата на програмата от задача 3 с дебъгера на Visual Studio .NET.

  5. Променете програмата от задача 3, така че да намира само тези низове, които съдържат четен брой гласни букви. Колко са тези низове?

  6. Добавете XML документация в програмата от задача 5 и генерирайте HTML документация от Visual Studio .NET.

  7. Напишете програма, която намира сумарната стойност на група фактури. Програмата трябва да въвежда последователно от конзолата сумите на фактурите (реални числа със знак) докато стигне до празен ред. Сумарната стойност на фактурите трябва да се отпечата в 10-символно поле, дясно подравнена, с точност 2 знака след десетичната запетая (потърсете в документацията подходящ форматиращ стринг).

  8. Напишете програма, която прочита прост числен израз, състоящ се от реални числа, свързани с операциите "+" и "-", и изчислява и отпе­чатва стойността му.



Сподели с приятели:
1   ...   18   19   20   21   22   23   24   25   ...   73




©obuch.info 2024
отнасят до администрацията

    Начална страница