Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Desktop_1 / К лекциям / 02_Elementy_Yazyka.DOC
Скачиваний:
23
Добавлен:
10.06.2015
Размер:
222.72 Кб
Скачать
    1. Строки string

Строка является объектом типа String, значением которого является текст. Тип данных string (все буквы строчные) является псевдонимом класса String. Внутренне объект типа String хранится в коллекции объектов Char, каждый из которых представляет один символ Юникода в UTF-16.

Строка C# представляет собой группу одного или нескольких знаков, заключенных в двойные кавычки и объявленных с помощью ключевого слова string,

string greeting = "Hello, World!";

Строковые объекты являются неизменяемыми: после создания их нельзя изменить.

    1. Перечисления

C# позволяет создать собственный набор именованных констант с помощью ключевого слова enum. Эти типы данных позволяют объявить набор имен или других значений литералов, определяющих все возможные значения, которые могут быть назначены переменной.

Например, если в программе ведется работа с днями недели, может потребоваться создать новый тип с именем DayOfWeek. Затем можно объявить новую переменную типа DayOfWeek, а затем присвоить ей значение. Использование этого типа данных способствует повышению удобочитаемости кода, кроме того, снижается вероятность назначения переменной недопустимого или неожиданного значения.

public enum DayOfWeek

{

Sunday = 0,

Monday = 1,

Tuesday = 2,

Wednesday = 3,

Thursday = 4,

Friday = 5,

Saturday = 6

}

class Program

{

static void Main()

{

DayOfWeek day = DayOfWeek.Monday;

int i = (int) DayOfWeek.Monday;

System.Console.WriteLine(day); // displays Monday

System.Console.WriteLine(i); // displays 1

}

}

    1. Тип DateTime

Значения времени измеряются в 100-наносекундных единицах, называемых тактами, и точная дата представляется числом тактов с 00:00 1 января 0001 года н. э. по календарю GregorianCalendar. Например, значение тактов, равное 31241376000000000L, представляет пятницу 1 января 0100 года 00:00:00. Значение DateTime всегда выражается в контексте явно определенного или заданного по умолчанию календаря.

      1. Создание экземпляра объекта DateTime

Можно создать новое значение DateTime, используя один из следующих способов:

  • Путем вызова любой из перегруженных версий конструктора DateTime, которые позволяют указать определенные элементы значения даты и времени (например, год, месяц, день или количество интервалов). В следующей инструкции показан вызов одного из конструкторов DateTime для создания даты с определенными годом, месяцем, днем, часом, минутой и секундой.

DateTime date1 = new DateTime(2008, 5, 1, 8, 30, 52);

      1. Значения DateTime и их строковые представления

На внутреннем уровне все значения DateTime представлены как количество интервалов (1 интервалов = 100 нс), которое прошло с 00:00:00 1 января 0001 года. Фактическое значение DateTime не зависит от способа отображения значения, когда оно отображается в элементе пользовательского интерфейса или записывается в файл. Внешний вид значения DateTime — это результат операции форматирования. Форматирование — это процесс преобразования значения в его строковое представление.

Так как внешний вид значений даты и времени зависит от таких факторов, как язык и региональные параметры, международные стандарты, программные требования и личные предпочтения, структура DateTime обеспечивает большую гибкость при форматировании значений даты и времени с помощью перегруженных версий метода ToString. Метод DateTime..::.ToString()()() по умолчанию возвращает строковое представление значений даты и времени, используя формат краткой записи даты и длинной записи времени, предусмотренный в языке и региональных параметрах. В следующем примере используется метод DateTime..::.ToString()()() по умолчанию, чтобы отобразить дату и время, используя краткий формат даты и длинный формат времени для языка и региональных параметров en-US, которые являются текущими региональными параметрами на компьютере, где выполняется пример.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);

Console.WriteLine(date1.ToString());

// For en-US culture, displays 3/1/2008 7:00:00 AM

Метод DateTime..::.ToString(IFormatProvider) возвращает строковое представление значения даты и времени, используя краткий формат даты и длинный формат времени определенного языка и региональных параметров.

В примере используется метод DateTime..::.ToString(IFormatProvider), чтобы отобразить дату и время, используя краткий формат даты и длинный формат времени для языка и региональных параметров fr-FR.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);

Console.WriteLine(date1.ToString(CultureInfo.CreateSpecificCulture("fr-FR")));

// Displays 01/03/2008 07:00:00

Метод DateTime..::.ToString(String) возвращает строковое представление даты и времени в формате, который определяется стандартным или настраиваемым описателем формата; при этом используются правила форматирования, которые зависят от текущих региональных параметров и языка.

В примере используется метод DateTime..::.ToString(String), чтобы отобразить полный формат даты и времени для языка и региональных параметров en-US, которые являются текущими региональными параметрами на компьютере, где выполняется пример.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);

Console.WriteLine(date1.ToString("F"));

// Displays Saturday, March 01, 2008 7:00:00 AM

Метод DateTime..::.ToString(String, IFormatProvider) возвращает строковое представление даты и времени в формате, который определяется определенным описателем формата; при этом используются правила форматирования, которые зависят от заданных региональных параметров и языка.

В примере используется метод DateTime..::.ToString(String, IFormatProvider), чтобы отобразить дату и время в полном формате для языка и региональных параметров fr-FR.

DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);

Console.WriteLine(date1.ToString("F", new CultureInfo("fr-FR")));

// Displays samedi 1 mars 2008 07:00:00

Начиная с версии 2.0 платформы .NET Framework структура DateTime содержит 64-битовое поле, состоящее из закрытого поля Kind, сцепленного с полем Ticks. Поле Kind является 2-битовым полем, указывающим, какое время представляет структура DateTime: местное, скоординированное всеобщее (UTC) или время в незаданном часовом поясе. Поле Kind используется при выполнении преобразования значения времени между часовыми поясами, но не для сравнения значений времени или выполнения над ними арифметических операций. Значение поля Kind можно получить из свойства Kind.

В следующем примере кода метод SpecifyKind используется для демонстрации влияния свойства Kind на методы преобразования ToLocalTime и ToUniversalTime.

// This code example demonstrates the DateTime Kind, Now, and

// UtcNow properties, and the SpecifyKind(), ToLocalTime(),

// and ToUniversalTime() methods.

using System;

class Sample

{

public static void Main()

{

// Get the date and time for the current moment, adjusted

// to the local time zone.

DateTime saveNow = DateTime.Now;

// Get the date and time for the current moment expressed

// as coordinated universal time (UTC).

DateTime saveUtcNow = DateTime.UtcNow;

DateTime myDt;

// Display the value and Kind property of the current moment

// expressed as UTC and local time.

DisplayNow("UtcNow: ..........", saveUtcNow);

DisplayNow("Now: .............", saveNow);

Console.WriteLine();

// Change the Kind property of the current moment to

// DateTimeKind.Utc and display the result.

myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Utc);

Display("Utc: .............", myDt);

// Change the Kind property of the current moment to

// DateTimeKind.Local and display the result.

myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Local);

Display("Local: ...........", myDt);

// Change the Kind property of the current moment to

// DateTimeKind.Unspecified and display the result.

myDt = DateTime.SpecifyKind(saveNow, DateTimeKind.Unspecified);

Display("Unspecified: .....", myDt);

}

// Display the value and Kind property of a DateTime structure, the

// DateTime structure converted to local time, and the DateTime

// structure converted to universal time.

public static string datePatt = @"M/d/yyyy hh:mm:ss tt";

public static void Display(string title, DateTime inputDt)

{

DateTime dispDt = inputDt;

string dtString;

// Display the original DateTime.

dtString = dispDt.ToString(datePatt);

Console.WriteLine("{0} {1}, Kind = {2}",

title, dtString, dispDt.Kind);

// Convert inputDt to local time and display the result.

// If inputDt.Kind is DateTimeKind.Utc, the conversion is performed.

// If inputDt.Kind is DateTimeKind.Local, the conversion is not performed.

// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is

// performed as if inputDt was universal time.

dispDt = inputDt.ToLocalTime();

dtString = dispDt.ToString(datePatt);

Console.WriteLine(" ToLocalTime: {0}, Kind = {1}",

dtString, dispDt.Kind);

// Convert inputDt to universal time and display the result.

// If inputDt.Kind is DateTimeKind.Utc, the conversion is not performed.

// If inputDt.Kind is DateTimeKind.Local, the conversion is performed.

// If inputDt.Kind is DateTimeKind.Unspecified, the conversion is

// performed as if inputDt was local time.

dispDt = inputDt.ToUniversalTime();

dtString = dispDt.ToString(datePatt);

Console.WriteLine(" ToUniversalTime: {0}, Kind = {1}",

dtString, dispDt.Kind);

Console.WriteLine();

}

// Display the value and Kind property for DateTime.Now and DateTime.UtcNow.

public static void DisplayNow(string title, DateTime inputDt)

{

string dtString = inputDt.ToString(datePatt);

Console.WriteLine("{0} {1}, Kind = {2}",

title, dtString, inputDt.Kind);

}

}

/*

This code example produces the following results:

UtcNow: .......... 5/6/2005 09:34:42 PM, Kind = Utc

Now: ............. 5/6/2005 02:34:42 PM, Kind = Local

Utc: ............. 5/6/2005 02:34:42 PM, Kind = Utc

ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local

ToUniversalTime: 5/6/2005 02:34:42 PM, Kind = Utc

Local: ........... 5/6/2005 02:34:42 PM, Kind = Local

ToLocalTime: 5/6/2005 02:34:42 PM, Kind = Local

ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc

Unspecified: ..... 5/6/2005 02:34:42 PM, Kind = Unspecified

ToLocalTime: 5/6/2005 07:34:42 AM, Kind = Local

ToUniversalTime: 5/6/2005 09:34:42 PM, Kind = Utc

*/

Тип DateTime используется для хранения времени с выделением даты (Date) и времени суток (Time).

Для вывода объекта в удобном формате используется набор полей для хранения свойств. Внешнее представление формируется из внутреннего и форматируется по стандартам представления даты и времени.

Соседние файлы в папке К лекциям