Выбрать главу

intRate = Double.Parse (str);

} catch(FormatException exc) {

Console.WriteLine(exc.Message); return;

}

Console.Write("Введите количество лет: "); str = Console.ReadLine(); try {

numYears = Double.Parse(str);

} catch(FormatException exc) {

Console.WriteLine(exc.Message); return;

}

initlnvest =

futVal / (decimal) Math.Pow(intRate+1.0, numYears);

Console.WriteLine("Необходимые первоначальные капиталовложения: {0:C}", initlnvest);

}

}

Ниже приведен один из возможных результатов выполнения этой программы.

Введите будущую стоимость: 10000

Введите норму прибыли (например, 0.085): 0.07

Введите количество лет: 10

Необходимые первоначальные капиталовложения: $5,083.49

Структуры .NET, соответствующие встроенным типам значений

Структуры, соответствующие встроенным в C# типам значений, были представлены в главе 14, где они упоминались в связи с преобразованием строк, содержащих числовые значения в удобочитаемой форме, в эквивалентные двоичные значения. В этом разделе структуры .NET рассматриваются более подобно.

Имена структур .NET и соответствующие им ключевые слова, обозначающие типы значений в С#, перечислены в приведенной ниже таблице.

Имя структуры в .NET

Имя типа значения в C#

System.Boolean

bool

System.Char

char

System.Decimal

decimal

System.Double

double

System.Single

float

System.Intl6

short

System.Int32

int

System.Int64

long

System.Ulntl6

ushort

System.UInt32

uint

System.UInt64

ulong

System.Byte

byte

System.Sbyte

sbyte

Используя члены, определенные в этих структурах, можно выполнять операции над значениями простых типов данных. Все перечисленные выше структуры рассматриваются далее по порядку.

ПРИМЕЧАНИЕ

Некоторые методы, определенные в структурах, соответствующих встроенным в C# типам значений, принимают параметры типа iFormatProvider или NumberStyles. Тип

I Format Provide г вкратце описывается далее в этой главе, а тип NumberStyles представляет собой перечисление из пространства имен System.Globalization. Вопросы форматирования подробнее рассматриваются в главе 22.

Структуры целочисленных типов данных

Ниже перечислены структуры целочисленных типов данных.

Byte

SByte

I n 116

Uintl6

Int32

UInt32

Int64

Uint64

Каждая из этих структур содержит одинаковое количество членов. В табл. 21.2 для примера перечислены члены структуры Int32. Аналогичные члены в виде методов имеются и у других структур, за исключением целочисленного типа, который они представляют.

Помимо перечисленных выше методов, в структурах целочисленных типов данных определены следующие поля типа const.

MaxValue

MinValue

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

Во всех структурах целочисленных типов данных реализуются следующие интерфейсы: IComparable, IComparable<T>, IConvertible, IFormattable

и IEquatable<T>, где параметр обобщенного типа Т заменяется соответствующим типом данных. Например, в структуре Int32 вместо Т подставляется тип int.

Метод

Назначение

public int

Сравнивает числовое значение вызывающего объекта со

CompareTo(object value)

значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет меньшее значение; и, наконец, положительное значение, если вызывающий объект имеет большее значение

public int CompareTo(int

Сравнивает числовое значение вызывающего объекта со

value)

значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет меньшее значение; и, наконец, положительное значение, если вызывающий объект имеет большее значение