Главная страница

программирование. Руководство su P# a n Reference в herbert schildt полное руководство с 0 герберт шилдт


Скачать 3.32 Mb.
НазваниеРуководство su P# a n Reference в herbert schildt полное руководство с 0 герберт шилдт
Анкорпрограммирование
Дата25.01.2022
Размер3.32 Mb.
Формат файлаrtf
Имя файлаc-40-polnoe-rukovodstvo-2011.rtf
ТипРуководство
#341448
страница60 из 97
1   ...   56   57   58   59   60   61   62   63   ...   97
ГЛАВА 21 Пространство имен System

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

Кроме того, в пространство имен System входит много вложенных пространств имен, поддерживающих отдельные подсистемы, например System.Net. Некоторые из этих пространств имен рассматриваются далее в этой книге. А в этой главе речь пойдет только о членах самого пространства имен System.

Члены пространства имен System

Помимо большого количества классов исключений, в пространстве имен содержатся приведенные ниже классы.
ActivationContext
Activator
AppDomain
AppDomainManager
AppDomainSetup
Applicationld
Applicationldentity
Array
Asse m b ly Loa d Eve ntA rgs
Attribute
AttributeUsageAttribute
BitConverter
Buffer
CharEnumerator
CLSCompliantAttribute
Console
ConsoleCancelEventArgs
Co ntext Bo u n d 0 bj ect
Co ntextStat i cAttri b ute
Convert
DBNull
Delegate
Enum
Environment
EventArgs
Exception
FileStyleUriParser
FlagsAttribute
FtpStylellri Parser
GC
GenericUriParser
GopherStylellri Parser
HttpStyleUri Parser
Lazy
Lazy
LdapStyleUriParser
LoaderOptimizationAttribute
Local DataStoreSlot
Ma rsha 1 By RefO bject
Math
MTATh read Attribute
MulticastDelegate
NetPipeStylellriParser
NetTcpStylellriParser
NewsStyleUriParser
NonSerializedAttribute
Nullable
Object
ObsoleteAttribute
Ope rati ngSystem
Pa ra m Ar rayAtt r i b ute
Random
ResolveEventArgs
SerializableAttribute
STAThreadAttribute
String
StringCom parer
ThreadStaticAttribute
TimeZone
TimeZonelnfo
TimeZonelnfo.AdjustmentRule
Tuple
Tuple<...> (различные формы)
Type
Unhandled Exception EventArgs
Uri
UriBuilder
Uri Parser
UriTemplate
UriTemplateEquivalenceComparer
UriTemplateMatch
UriTemplateTable
UriTypeConverter
ValueType
Version
WeakReference
Ниже приведены структуры, определенные в пространстве имен System.
Arglterator
ArraySegment
Boolean
Byte
Char '
ConsoleKeylnfo
DateTime
DateTimeOffset
Decimal
Double
Guid
Int 16
Int32
Int64
IntPtr
ModuleHandle
Nullable
RuntimeArgumentHandle
RuntimeFieldHandle
RuntimeMethodHandle
RuntimeTypeHandle
Sbyte
Single
TimeSpan
TimeZonelnfo.TransitionTime
Typed Reference
Uint16
Ulnt32
Ulnt64
U IntPtr
Void
_AppDomain
lappDomainSetup
lAsyncResult
ICIoneable
IComparable
IComparable
IConvertible
1 Custom Formatter
IDisposable
IEquatable
IFormatProvider
IFormattable
IObservable
IObserver
IServiceProvider
Ниже приведены делегаты, определенные в пространстве имен System.
Action
Action<...> (различные формы)
AppDomainlnitializer
AssemblyLoadEventHandler
AsyncCallback
Comparison
ConsoleCancelEventHandler
Converter
CrossAppDoma in Delegate
EventHandler
EventHandler
Func<...> (различные формы)
Predicate
ResolveEventHandler
Unhandled ExceptionEventHandler
В пространстве имен System определены приведенные ниже перечисления.
ActivationContext.contextForrr
i AppDomainManagerlnitializationOptions AttributeTargets
Base64Formatting0ptions
ConsoleColor
ConsoleKey
ConsoleModifiers
ConsoleSpecialKey
DateTimeKind
DayOfWeek
Environment.SpecialFolder
Environment.SpecialFolderOption
EnvironmentVariableTarget
GCCol lection Mode
GCNotificationStatus
GenericUriParserOptions
LoaderOptimization
MidpointRounding
PlatformID
StringComparison
StringSplitOptions
TypeCode
UriComponents
UriFormat
UriHostNameType
UrildnScope
UriKind
Uri Partial
Как следует из приведенных выше таблиц, пространство имен System довольно обширно, поэтому в одной главе невозможно рассмотреть подробно все его составляющие. К тому же, некоторые члены пространства имен System, в том числе Nullable, Type, Exception и Attribute, уже рассматривались в части I или будут представлены в последующих главах части II. И наконец, класс System. String, в котором определяется тип string для символьных строк в С#, обсуждается вместе с вопросами форматирования в главе 22. В силу этих причин в настоящей главе рассматриваются только те члены данного пространства имен, которые чаще всего применяются в программировании на C# и не поясняются полностью в остальных главах книги.

Класс Math

В классе Math определен ряд стандартных математических операций, в том числе извлечение квадратного корня, вычисление синуса, косинуса и логарифмов. Класс Math является статическим, а это означает, что все методы, определенные в нем, относятся к типу static, объекты типа Math не конструируются, а сам класс Math неявно герметичен и не может наследоваться. Методы, определенные в классе Math, перечислены в табл. 21. 1, где все углы указаны в радианах.

В классе Math определены также два следующих поля:

public const double Е public const double PI

где E – значение основания натурального логарифма числа, которое обычно обозначается как е) a PI – значение числа пи.
Метод
Описание
public static double
Возвращает абсолютную величину value
Abs(double value)
public static float
Возвращает абсолютную величину value
Abs(float value)
public static decimal
Возвращает абсолютную величину value
Abs(decimal value)
public static int Abs(int
' Возвращает абсолютную величину value
value)
public static short
Возвращает абсолютную величину value
Abs(short value)
public static long Abs(long
Возвращает абсолютную величину value
value)
public static sbyte
Возвращает абсолютную величину value
Abs(sbyte value)
public static double
Возвращает арккосинус d. Значение d должно на
Acos(double d)
ходиться в пределах от ‑1 до 1
public static double
Возвращает арксинус d. Значение d должно нахо
Asin(double d)
диться в пределах от ‑1 до 1
public static double
Возвращает арктангенс d
Atan(double d)
public static double
Возвращает арктангенс частного от деления у/х
Atan2(double y, double x)
public static long
Возвращает произведение а*Ь в виде значения
BigMul(int a, int b)
типа long, исключая переполнение
public static double
Возвращает наименьшее целое, которое пред
Ceiling(double a)
ставлено в виде значения с плавающей точкой и не меньше а. Так, если а равно 1,02, метод Ceiling ( ) возвращает значение 2,0. А если а равно ‑1,02, то метод Ceiling () возвращает значение ‑1
public static double
Возвращает наименьшее целое, которое представ
Ceiling(decimal d)
лено в виде значения десятичного типа и не меньше d. Так, если d равно 1,02, метод Ceiling () возвращает значение 2,0. А если d равно ‑1,02, то метод Ceiling () возвращает значение ‑1
public static double
Возвращает косинус d
Cos(double d)
public static double
Возвращает гиперболический косинус d
Cosh(double d)
public static int DivRem(int a,
Возвращает частное от деления а / Ь, а остаток –
int b, out int result)
в виде параметра resul t типа out ‑
public static
Возвращает частное от деления а / Ь, а остаток –
long DivRem(long a,
в виде параметра result типа out
long b, out long result)
_ Продолжение табл. 21.1
Метод
Описание
public static double
Возвращает основание натурального логарифма е,
Exp (double "d)
возведенное в степень d
public static decimal
Возвращает наибольшее целое, которое представ
Floor(decimal d)
лено в виде значения десятичного типа и не больше d. Так, если d равно 1,02, метод Floor ( ) возвращает значение 1,0. А если d равно ‑1,02, метод Floor () возвращает значение ‑2
public static double
Возвращает наибольшее целое, которое представ
Floor(double d)
лено в виде значения с плавающей точкой и не больше d. Так, если d равно 1,02, метод Floor () возвращает значение 1,0. А если d равно ‑1,02, метод Floor () возвращает значение ‑2
public static double
Возвращает остаток от деления х/у
IEEERemainder(double x,
double y)
public static double
Возвращает натуральный логарифм значения d
Log(double d)
public static double'
Возвращает натуральный логарифм по основанию
Log(double d, double
newBase значения d
newBase)
public static double
Возвращает логарифм по основанию 10 значения d
LoglO(double d)
public static double
Возвращает большее из значений vail и val2
Max(double vail, double val2)
public static float
Возвращает большее из значений vail и val2
Max(float vail, float val2)
public static decimal
Возвращает большее из значений vail и val2
Max(decimal vail, decimal
val2)
public static int Max(int
Возвращает большее из значений vail и val2
vail, int val2)
public static short Max(short
Возвращает большее из значений vail и val2
vail, short val2)
public static long Max(long
Возвращает большее из значений vail и val2
vail, long val2)
public static uint Max(uint
Возвращает большее из значений vail и val2
vail, uint val2)
public static ushort
Возвращает большее из значений vail и val2
Max(ushort vail, ushort val2)
public static ulong
Возвращает большее из значений vail и val2
Max(ulong vail, ulong val2)
public static byte Max(byte
Возвращает большее из значений vail и val2
vail, byte val2)
public static sbyte Max(sbyte
Возвращает большее из значений vail и val2
vail, sbyte val2)
Метод
Описание
public static double
Возвращает меньшее из значений vail и val2
Min(double vail, double val2)
public static float
Возвращает меньшее из значений vail и val2
Min(float vail, float val2)
public static decimal
Возвращает меньшее из значений vail и val2
Min(decimal vail, decimal
val2)
public static int Min(int
Возвращает меньшее из значений vail и val2
vail, int val2)
public static short Min(short
Возвращает меньшее из значений vail и val2
vail, short val2)
public static long Min(long
Возвращает меньшее из значений vail и val2
vail, long val2)
public static uint Min(uint
Возвращает меньшее из значений vail и val2
vail, uint val2)
public static ushort
Возвращает меньшее из значений vail и val2
Min(ushort vail, ushort val2)
public static ulong Min(ulong
Возвращает меньшее из значений vail и val2
vail, ulong val2)
public static byte Min(byte
Возвращает меньшее из значений vail и val2
vail, byte val2)
public static sbyte Min(sbyte
Возвращает меньшее из значений vail и val2
vail, sbyte val2)
public static double
Возвращает значение х, возведенное в степень
Pow(double x, double y)
у(хУ)
public static double
Возвращает значение а, округленное до ближайше
Round(double a)
го целого числа
public static decimal
Возвращает значение d, округленное до ближайше
Round(decimal d)
го целого числа
public static double
Возвращает значение value , округленное до чис
Round(double value,
ла, количество цифр в дробной части которого рав
int digits)
но значению параметра digits
public static decimal
Возвращает значение d, округленное до числа, ко
Round(decimal d, int digits)
личество цифр в дробной части которого равно значению digi ts
public static double
Возвращает значение value , округленное до бли
Round(double value,
жайшего целого числа в режиме, определяемом
MidpointRounding mode)
параметром mode
public static decimal
Возвращает значение d, округленное до ближайше
Round(decimal d,
го целого числа в режиме, определяемом параме
MidpointRounding mode)
тром mode
public static double
Возвращает значение value , округленное до чис
Round(double value, int
ла, количество цифр в дробной части которого рав
digits, MidpointRounding
но значению digi ts, а параметр mode определяет
mode)
режим округления
Окончание табл. 21.1
Метод
Описание
public
static decimal
Возвращает значение d, округленное до числа,
Round(decimal d, int digits,
количество цифр в дробной части которого равно
MidpointRounding mode)
значению digits , а параметр mode определяет
режим округления
public
static int
Возвращает ‑1, если значение value меньше нуля;
Sign(double value)
0, если значение value равно нулю; и 1, если зна
чение value больше нуля
public
static int Sign(float
Возвращает ‑1, если значение value меньше нуля;
value)
0, если значение value равно нулю; и 1, если значение value больше нуля
public
static int
Возвращает ‑1, если значение value меньше нуля;
Sign(decimal value)
0, если значение value равно нулю; и 1, если зна
чение value больше нуля
public
static int Sign(int
Возвращает ‑1, если значение value меньше нуля;
value)
0, если значение value равно нулю; и 1, если значение value больше нуля
public
static int Sign(short
Возвращает ‑1, если значение value меньше нуля;
value)
0, если значение value равно нулю; и 1, если значение value больше нуля
public
static int Sign(long
Возвращает ‑1, если значение value меньше нуля;
value)
0, если значение value равно нулю; и 1, если значение value больше нуля
public
static int Sign(sbyte
Возвращает ‑1, если значение value меньше нуля;
value)
0, если значение value равно нулю; и 1, если значение value больше нуля
public
static double
Возвращает синус числа а
Sin(double a)
public
static double
Возвращает гиперболический синус числа value
Sinh(double value)
public
static double
Возвращает квадратный корень числа d
Sqrt(double d)
public
static double
Возвращает тангенс числа а
Tan(double a)
public
static double
Возвращает гиперболический тангенс числа
Tanh(double value)
value
public
static double
Возвращает целую часть числа d
Truncate(double d)
public
static decimal
Возвращает целую часть числа d
Truncate(decimal d)
В приведенном ниже примере программы метод Sqrt () служит для расчета гипотенузы по длине противоположных сторон прямоугольного треугольника согласно теореме Пифагора.

// Расчет гипотенузы по теореме Пифагора.

using System;

class Pythagorean { static void Main() { double si; double s2; double hypot; string str;

Console.WriteLine("Введите длину первой стороны треугольника: "); str = Console.ReadLine(); si = Double.Parse(str);

Console.WriteLine("Введите длину второй стороны треугольника: "); str = Console.ReadLine(); s2 = Double .'Parse (str) ;

hypot = Math.Sqrt(sl*sl + s2*s2);

Console.WriteLine("Длина гипотенузы равна " + hypot);

}

}

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

Введите длину первой стороны треугольника: 3 Введите длину второй стороны треугольника: 4 Длина гипотенузы равна: 5

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

первоначальные капиталовложения =

будущая стоимость / (1 + норма прибыли)количество лет

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

/* Рассчитать первоначальные капиталовложения, необходимые для получения заданной будущей стоимости, исходя из годовой нормы прибыли и количества лет. */

using System;

class Initiallnvestment { static void Main() {

decimal initInvest; //    первоначальные капиталовложения

decimal futVal;    //    будущая стоимость

double numYears;    //    количество лет

double intRate;    //    годовая норма прибыли

string str;

Console.Write("Введите будущую стоимость: "); str = Console.ReadLine(); try {

ftitVal = Decimal. Parse (str) ;

} catch(FormatException exc) {

Console.WriteLine(exc.Message); return;

}

Console.Write("Введите норму прибыли (например, 0.085): ") ; str = Console.ReadLine(); try {

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, IConvertible, IFormattable

и IEquatable, где параметр обобщенного типа Т заменяется соответствующим типом данных. Например, в структуре Int32 вместо Т подставляется тип int.
Метод
Назначение
public int
Сравнивает числовое значение вызывающего объекта со
CompareTo(object value)
значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет меньшее значение; и, наконец, положительное значение, если вызывающий объект имеет большее значение
public int CompareTo(int
Сравнивает числовое значение вызывающего объекта со
value)
значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное значение, если вызывающий объект имеет меньшее значение; и, наконец, положительное значение, если вызывающий объект имеет большее значение
public override bool
Возвращает логическое значение true, если значе
Equals(object obj)
ние вызывающего объекта равно значению параметра

obj
public bool Equals(int
Возвращает логическое значение true, если значе
obj)
ние вызывающего объекта равно значению параметра

obj
public override int
Возвращает хеш‑код для вызывающего объекта
GetHashCode()
public TypeCode
Возвращает значение перечисления TypeCode для экви
GetTypeCode()
валентного типа. Например, для структуры Int32 возвращается значение TypeCode. Int32
public static int
Возвращает двоичный эквивалент числа, заданного
Parse(string s)
в виде символьной строки s. Если числовое значение не представлено в строке так, как определено в структуре данного типа, то генерируется исключение
public static int
Возвращает двоичный эквивалент числа, заданного
Parse(string s,
в виде символьной строки s, с использованием фор
IformatProvider
матов данных, характерных для конкретной культурной
provi der)
среды и определяемых параметром provider. Если числовое значение не представлено в строке так, как определено в структуре данного типа, то генерируется исключение
public static int
Возвращает двоичный эквивалент числа, заданного
Parse(string s,
в виде символьной строки s, с использованием дан
NumberStyles styles)
ных о стилях, определяемых параметром styles. Если числовое значение не представлено в строке так, как определено в структуре данного типа, то генерируется исключение
Метод
Назначение
public static int
Возвращает двоичный эквивалент числа, заданного в виде
Parse(string s,
строки символьной s, с использованием данных о стилях,
NumberStyles styles,
определяемых параметром styles , а также форматов
IformatProvider
данных, характерных для конкретной культурной среды
provi der)
и определяемых параметром provider. Если числовое значение не представлено в строке так, как определено в структуре данного типа, то генерируется исключение
public override
string
Возвращает строковое представление значения вызы
ToString()
вающего объекта
public string
Возвращает строковое представление значения вызы
ToString(string
format)
вающего объекта, как указано в форматирующей строке, определяемой параметром format
public string
Возвращает строковое представление значения вызы
ToString(IformatProvider
вающего объекта с использованием форматов данных,
provi der)
характерных для конкретной культурной среды и определяемых параметром provider
public string
Возвращает строковое представление значения вызы
ToString(string
format,
вающего объекта, как указано в форматирующей строке,
IformatProvider
определяемой параметром format , но с использова
provider)
нием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider
public static bool
Предпринимает попытку преобразовать числовое значе
TryParse(string
s, out
ние, заданное в виде символьной строки s, в двоичное
int result)
значение. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse (), который генерирует исключение при неудачном исходе преобразования
public static bool
Предпринимает попытку преобразовать числовое зна
TryParse(string
s,
чение, заданное в виде символьной строки s, в двоич
NumberStyles styles,
ное значение с использованием информации о стилях,
IformatProvider
обозначаемых параметром styles , а также форматов
provider , out int
данных, характерных для конкретной культурной среды
result)
и определяемых параметром provider. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse () , который генерирует исключение при неудачном исходе преобразования

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

Типам данных с плавающей точкой соответствуют только две структуры: Double и Single. Структура Single представляет тип float. Ее методы перечислены в табл. 21.3, а поля – в табл. 21.4. Структура Double представляет тип double.

Ее методы перечислены в табл. 21.5, а поля – в табл. 21.6. Как и в структурах целочисленных типов данных, при вызове метода Parse () или ToStringO из структур типов данных с плавающей точкой можно указывать информацию, характерную для конкретной культурной среды, а также данные форматирования.

Таблица 21.3. Методы, поддерживаемые структурой Single
Метод
Назначение
public int
Сравнивает числовое значение вызывающего объекта
CompareTo(object value)
со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное число, если вызывающий объект имеет меньшее значение, и, наконец, положительное значение, если вызывающий объект имеет большее значение
public int
Сравнивает числовое значение вызывающего объекта
CompareTo(float value)
со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное число, если вызывающий объект имеет меньшее значение, и, наконец, положительное значение, если вызывающий объект имеет большее значение
public override bool
Возвращает логическое значение true, если значение
Equals(object obj)
вызывающего объекта равно значению obj
public bool Equals(float
Возвращает логическое значение true, если значение
obj)
вызывающего объекта равно значению obj
public override int
Возвращает хеш‑код для вызывающего объекта
GetHashCode()
public TypeCode
Возвращает значение из перечисления TypeCode для
GetTypeCode()
структуры Single, т.е. TypeCode . Single
public static bool
Возвращает логическое значение true, если значение
Islnfinity(float f)
f представляет плюс или минус бесконечность. В противном случае возвращает логическое значение false
public static bool
Возвращает логическое значение true, если значение f
IsNaN(float f)
не является числовым. В противном случае возвращает логическое значение false
public static bool
Возвращает логическое значение true, если значение
IsPositivelnfinity(float
f представляет плюс бесконечность. В противном случае
f)
возвращает логическое значение false
public static bool
Возвращает логическое значение true, если значение f
IsNegativelnfinity(float
представляет минус бесконечность. В противном случае
f)
возвращает логическое значение false
public static float
Возвращает двоичный эквивалент числа, заданного в виде
Parse(string s)
символьной строки s. Если в строке не представлено числовое значение типа float, то генерируется исключение
public static float
Возвращает двоичный эквивалент числа, заданного
Parse(string s,
в виде символьной строки s, с использованием фор
IformatProvider
матов данных, характерных для конкретной культурной
provider)
среды и определяемых параметром provider. Если в строке не представлено числовое значение типа float, то генерируется исключение
Метод
Назначение
public static float
Возвращает двоичный эквивалент числа, заданного в
Parse(string s,
виде символьной строки s, с использованием данных о
NumberStyles styles)
стилях, определяемых параметром styles. Если в строке не представлено числовое значение типа float, то генерируется исключение
public static float
Возвращает двоичный эквивалент числа, заданного в
Parse(string s,
виде символьной строки s, с использованием форматов
NumberStyles styles,
данных, характерных для конкретной культурной среды
IformatProvider
и определяемых параметром provider , а также сведе
provi der)
ний о стилях, обозначаемых параметром styles. Если в строке не представлено числовое значение типа float, то генерируется исключение
public override string
Возвращает строковое представление значения вызы
ToString ()
вающего объекта
public string
Возвращает строковое представление значения вызы
ToString(string format)
вающего объекта, как указано в форматирующей строке, 'определяемой параметром format
public string
Возвращает строковое представление значения вызы
ToString(IformatProvider
вающего объекта с использованием форматов данных,
provi der)
характерных для конкретной культурной среды и определяемых параметром provider
public string
Возвращает строковое представление значения вызы
ToString(string format,
вающего объекта, как указано в форматирующей строке,
IformatProvider
определяемой параметром format, но с использовани
provider)
ем форматов данных, характерных для конкретной культурной среды и определяемых параметром provider
public static bool
Предпринимает попытку преобразовать число, заданное
TryParse(string s, out
в виде символьной строки s, в значение типа float.
float result)
При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse () , который генерирует исключение при неудачном исходе преобразования
public static bool
Предпринимает попытку преобразовать числовое зна
TryParse(string s,
чение, заданное в виде символьной строки s, в значе
NumberStyles styles,
ние типа float, как указано в форматирующей строке,
IformatProvider
определяемой параметром format, но с использовани
provider, out float
ем форматов данных, характерных для конкретной куль
result)
турной среды и определяемых параметром provider, a, также сведений о стилях, обозначаемых параметром styles. При успешной попытке это значение сохраняет
ся в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse ( ), который генерирует исключение при неудачном исходе преобразования
Поле
Назначение
public const float Epsilon
Наименьшее ненулевое положительное значение
public const float
Наибольшее значение, допустимое для данных типа
MaxValue
float
public const float
Наименьшее значение, допустимое для данных типа
MinValue
float
public const float NaN
Значение, не являющееся числом
public const float
Значение, представляющее минус бесконечность
NegativeInfinity
public const float
Значение, представляющее плюс бесконечность
PositiveInfinity
Таблица 21.5. Методы, поддерживаемые структурой Double
Метод
Назначение
public
int CompareTo(object
Сравнивает числовое значение вызывающего объек
value)
та со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное число, если вызывающий объект имеет меньшее значение, и, наконец, положительное значение, если вызывающий объект имеет большее значение
public
int CompareTo(double
Сравнивает числовое значение вызывающего объек
value)
та со значением value. Возвращает нуль, если сравниваемые значения равны; отрицательное число, если вызывающий объект имеет меньшее значение, и, наконец, положительное значение, если вызывающий объект имеет большее значение
public
override bool
Возвращает логическое значение true, если значе
Equals(object obj)
ние вызывающего объекта равно значению obj
public
bool Equals(double
Возвращает логическое значение true, если значе
obj)
ние вызывающего объекта равно значению obj
public
override int
Возвращает хеш‑код для вызывающего объекта
GetHashCode()
public
TypeCode
Возвращает значение из перечисления TypeCode
GetTypeCode()
для структуры Double, т.е. TypeCode . Double
public
static bool
Возвращает логическое значение true, если значе
Islnfinity(double d)
ние d представляет плюс или минус бесконечность.
В противном случае возвращает логическое значе
ние false
public
static bool
Возвращает логическое значение true, если зна
IsNaN(double d)
чение d не является числовым. В противном случае
возвращает логическое значение false
public
static bool
Возвращает логическое значение true, если значе
IsPositivelnfinity(double
ние d представляет плюс бесконечность. В противном
d)
случае возвращает логическое значение false
Метод
Назначение
public static bool
Возвращает логическое значение true, если значе
IsNegativelnfinity(double
ние d представляет минус бесконечность. В против
d)
ном случае возвращает логическое значение false
public static double
Возвращает двоичный эквивалент числа, заданного
Parse(string s)
в виде символьной строки s. Если в строке не представлено числовое значение типа double, то генерируется исключение
public static double
Возвращает двоичный эквивалент числа, заданного в
Parse(string s,
виде символьной строки s, с использованием форма
IFormatProvider provider)
тов данных, характерных для конкретной культурной среды и определяемых параметром provider. Если в строке не представлено числовое значение типа double, то генерируется исключение
public static double
Возвращает двоичный эквивалент числа, заданного в
Parse (string s,
виде символьной строки s, с использованием данных
NumberStyles styles)
о стилях, определяемых параметром styles. Если в строке не представлено числовое значение типа double, то генерируется исключение
public static double
Возвращает двоичный эквивалент числа, заданного
Parse(string s,
в виде символьной строки s, с использованием фор
NumberStyles styles,
матов данных, характерных для конкретной культур
IFormatProvider provider)
ной среды и определяемых параметром provider , а также данных о стилях, обозначаемых параметром styles. Если в строке не представлено числовое
1
значение типа double, то генерируется исключение
public override string
Возвращает строковое представление значения вы
ToString()
зывающего объекта
public string
Возвращает строковое представление значения вы
ToString(string format)
зывающего объекта, как указано в форматирующей строке, определяемой параметром format
public string
Возвращает строковое представление значения вы
ToString(IformatProvider
зывающего объекта с использованием форматов
provi der)
данных, характерных для конкретной культурной среды и определяемых параметром provider
public string
Возвращает строковое представление значения вызы
ToString(string format,
вающего объекта, как указано в форматирующей строке,
IformatProvider provider)
определяемой параметром format , но с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider
public static bool
Предпринимает попытку преобразовать число, заданное
TryParse(string s, out
в виде символьной строки s, в значение типа double.
double result)
При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse (), который генерирует исключение при неудачном исходе преобразования
Окончание табл. 21.5
Метод
Назначение
public static bool TryParse(string s, NumberStyles styles, IFormatProvider provider, out double result)
Предпринимает попытку преобразовать числовое значение, заданное в виде символьной строки s, в значение типа double, как указано в форматирующей строке, определяемой параметром format , но с использованием форматов данных, характерных для конкретной культурной среды и определяемых параметром provider , а также сведений о стилях, обозначаемых параметром styles. При успешной попытке это значение сохраняется в параметре result и возвращается логическое значение true, а иначе возвращается логическое значение false, в отличие от метода Parse () , который генерирует исключение при неудачном исходе преобразования
Таблица 21.6. Поля, поддерживаемые структурой Double
Поле
Назначение
public const double public const double MaxValue

public const double MinValue

public const double public const double NegativeInfinity public const double PositiveInfinity
Epsilon

NaN
Наименьшее ненулевое положительное значение Наибольшее значение, допустимое для данных типа

double

Наименьшее значение, допустимое для данных типа

double

Значение, не являющееся числом

Значение, представляющее минус бесконечность

Значение, представляющее плюс бесконечность
Структура Decimal

Структура Decimal немного сложнее, чем ее аналоги для целочисленных типов данных, а также типов данных с плавающей точкой. Она содержит немало конструкторов, полей, методов и операторов, способствующих использованию типа decimal вместе с другими числовыми типами, поддерживаемыми в С#. Так, целый ряд методов из этой структуры обеспечивает преобразование типа decimal в другие числовые типы.

В структуре Decimal определено восемь открытых конструкторов. Ниже приведены шесть наиболее часто используемых из них.

public Decimal(int значение) public Decimal(uint значение) public Decimal(long значение) public Decimal(ulong значение) public Decimal(float значение) public Decimal(double значение)

Каждый из этих конструкторов создает объект типа Decimal из значения указанного типа.

Кроме того, объект типа Decimal может быть создан из отдельно указываемых составляющих с помощью следующего конструктора.

public Decimal(int lo, int mid, int hi, bool IsNegative, byte scale)

Десятичное значение состоит из трех частей. Первую часть составляет 96‑разрядное целое значение, вторую – флаг знака, третью – масштабный коэффициент. В частности, 96‑разрядное целое значение передается конструктору тремя 32‑разрядными фрагментами с помощью параметров lo, mid и hi; знак флага – с помощью параметра IsNegative, причем логическое значение false этого параметра обозначает положительное число, тогда как логическое значение true обозначает отрицательное число; а масштабный коэффициент – с помощью параметра scale , принимающего значения от 0 до 28. Этот коэффициент обозначает степень числа 10 (т.е. 10scaJe), на которую делится число для получения его дробной части.

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

public Decimal(int[] bits)

Три первых элемента типа int в массиве bits содержат 96‑разрядное целое значение; 31‑й разряд содержимого элемента bits [3] обозначает флаг знака (0 – положительное число, 1 – отрицательное число); а в разрядах 16‑23 содержится масштабный коэффициент.

В структуре Decimal реализуются следующие интерфейсы: IComparable, IComparable, IConvertible, IFormattable, IEquatable, а также IDeserializationCallback.

В приведенном ниже примере программы значение типа decimal формируется вручную.

// Сформировать десятичное число вручную.

using System;

class CreateDec {

static void Main() {

decimal d = new decimal(12345, 0, 0, false, 2);

Console.WriteLine(d);

}

}

Эта программа дает следующий результат.

123.45

В данном примере значение 96‑разрядного целого числа равно 12345. У него положительный знак и два десятичных разряда в дробной части.

Методы, определенные в структуре Decimal, приведены в табл._21.7, а поля – в табл. 21.8. Кроме того, в структуре Decimal определяется обширный ряд операторов и преобразований, позволяющих использовать десятичные значения вместе со значениями других типов в выражениях. Правила, устанавливающие порядок присваивания десятичных значений и их применения в выражениях, представлены в главе 3.

1   ...   56   57   58   59   60   61   62   63   ...   97


написать администратору сайта