Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_13_14 / ЛАБ_13_C# / Лекция.doc
Скачиваний:
10
Добавлен:
02.02.2015
Размер:
454.66 Кб
Скачать

2.9 Преобразование числовых строк во внутреннее представление

Рассмотренное множество методов работы с файлами не позволяет выполнять преобразование числовых строк (типа “1000”) в двоичное значение, которое можно было бы хранить в int-переменной, что обеспечивало бы наиболее бережливый (parse) режим хранения. Решение было найдено, когда обратили внимание, что все С#-типы являются псевдонимами (одинаковыми словами) для структур, определенных в среде .NET Framework и все С#-типы значений имеют соответствующие члены .NET-имен структур (см. таблицу).

.NET-имя структуры

Метод преобразования

С#-имя

1

Decimal

static decimal Parse(string str)

decimal

2

Double

static double Parse(string str)

double

3

Single

static float Parse(string str)

float

4

Int16

static short Parse(string str)

short

5

Int32

static int Parse(string str)

int

6

Int64

static long Parse(string str)

long

7

UInt16

static ushort Parse(string str)

ushort

8

Uint32

static uint Parse(string str)

uint

9

Uint64

static ulong Parse(string str)

ulong

10

Byte

static byte Parse(string str)

byte

11

Sbyte

static sbyte Parse(string str)

sbyte

Эти структуры определены в пространстве имен System и для каждого имени .NET (например Int32) имеется составное имя для С#-типа (System.Int32), что обеспечивает полную интеграцию типов значений в С#-иерархию объектов. Как видно из таблицы эти числовые структуры определяют статические методы, которые преобразуют числовую строку в соответствующий двоичный эквивалент. Каждый метод возвращает двоичное значение, которое соответствует строке.

Методы Parse() генерируют следующие исключения:

- FormatException - параметр str не содержит числа, допустимого для тпа объекта

- ArgumentNullException - параметр str имеет null-значение

- OverflowException - параметр str превышает диапазон допустмого для типа объекта

Методы синтаксического анализа преобразуют прочитанное значение в виде строки с клавиатуры или текстового файла в соответствующий внутренний формат. Ниже приводится программа, которая определяет среднее арифметическое значение от введенных в виде списка значений. Программа выполняет: ввод чисел, считывает эти числа с помощью метода ReadLine(), с помощью метода Int32.Parse() преобразует строки в целочисленное значение, вводит значения, используя методDouble.Parse() для преобразования строк в их double-эквиваленты.

15

// Усреднение списка чисел

using System;

using System.IO;

class AvgNums

{

public static void Main()

{

string str;

int n;

double sum = 0.0;

double avg, t;

Console.Write("\n Сколько чисел будете вводить: ");

str = Console.ReadLine();

try

{

n = Int32.Parse(str);

}

catch (FormatException exc)

{ Console.WriteLine(" U1");

Console.WriteLine(" " + exc.Message);

n = 0;

}

catch (OverflowException exc)

{ Console.WriteLine(" U2");

Console.WriteLine(" " + exc.Message);

n = 0;

}

Console.WriteLine("\n Введите " + n + " чисел.");

for (int i = 0; i < n; i++)

{ Console.Write(" : ");

str = Console.ReadLine();

try {

t = Double.Parse(str);

}

catch (FormatException exc)

{ Console.WriteLine(" U3");

Console.WriteLine(" " + exc.Message);

t = 0.0;

}

catch (OverflowException exc)

{ Console.WriteLine(" U4");

Console.WriteLine(" " + exc.Message);

t = 0;

}

sum += t;

}

avg = sum / n;

Console.WriteLine(" Среднее равно " + avg);

Console.WriteLine("\n\n\n ");

}

}

Рис 15 Результаты преобразования числовых строк

во внутреннее представление

24

Соседние файлы в папке ЛАБ_13_C#