Чтение онлайн

на главную - закладки

Жанры

Полное руководство. С# 4.0
Шрифт:

csc /r:Asm1=test1.dll /r:Asm2=test2.dll test3.cs Обратите внимание на применение параметра /r, уведомляющего компилятор о том, что ссылка на метаданные находится в соответствующем файле. В данном слу чае псевдоним Asm1 связывается с файлом test1.dll, а псевдоним Asm2 — с файлом test2.dll. В самой программе псевдонимы указываются в приведенных ниже операторах с модификатором extern, которые располагаются в самом начале файла.

extern alias Asm1; extern alias Asm2; А в методе Main псевдонимы используются для разрешения неоднозначности ссылок на класс MyClass. Обратите внимание на следующее применение псевдонима для обращения к классу MyClass.

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

Конструирование из файла MyClass1.dll. Конструирование из файла MyClass2.dll. ```

ГЛАВА 21. Пространство имен System

В этой главе речь пойдет о пространстве имен System. Это пространство имен самого верхнего уровня в би блиотеке классов для среды .NET Framework. В нем непосредственно находятся

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

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

Помимо большого количества классов исключений, в пространстве имен содержат ся приведенные ниже классы. ActivationContext Activator AppDomain AppDomainManager AppDomainSetup Applicationld Applicationldentity Array AssemblyLoadEventArgs Attribute AttributeUsageAttribute BitConverter Buffer CharEnumerator CLSCompliantAttribute Console ConsoleCancelEventArgs ContextBoundObject ContextStaticAttribute Convert DBNull Delegate Enum Environment EventArgs Exception FileStyleUriParser FlagsAttribute FtpStyleUriParser GC GenericUriParser GopherStyleUriParser HttpStyleUriParser Lazy<T> Lazy<T, TMetadata> LdapStyleUriParser LoaderOptimizationAttribute LocalDataStoreSlot MarshalByRefObject Math MTAThreadAttribute MulticastDelegate NetPipeStyleUriParser NetTcpStyleUriParser NewsStyleUriParser NonSerializedAttribute Nullable Object ObsoleteAttribute OperatingSystem ParamArrayAttribute Random ResolveEventArgs SerializableAttribute STAThreadAttribute String StringComparer Th rea dStaticAttri bute TimeZone TimeZonelnfo TimeZonelnfo AdjustmentRule Tuple Tuple<...> (различные формы) Type Unhandled ExceptionEventArgs Uri UriBuilder Uri Parser UriTemplate UriTemplateEquivalenceComparer UriTemplateMatch UriTemplateTable UriTypeConverter ValueType Version WeakReference

Ниже приведены структуры, определенные в пространстве имен System. Arglterator ArraySegment<T> Boolean Byte Char ConsoleKeylnfo DateTime DateTimeOffset Decimal Double Guid Int16 Int32 Int64 IntPtr ModuleFlandle Nullable<T> RuntimeArgumentFlandle RuntimeFieldFlandle RuntimeMethodHandle RuntimeTypeHandle Sbyte Single TimeSpan TimeZonelnfo TransitionTime TypedReference Ulnt16 Ulnt32 Ulnt64 UIntPtr Void

В пространстве имен System определены приведенные ниже интерфейсы. _AppDomain lappDomainSetup lAsyncResult lCloneable IComparable IComparable<T> IConvertible ICustomFormatter IDisposable IEquatable<T> IFormatProvider IFormattable IObservable<T> IObserver<T> IServiceProvider

Ниже приведены делегаты, определенные в пространстве имен System. Action Action<...> (различные формы) AppDomainlnitializer AssemblyLoadEventHandler AsyncCallback Comparison<T> ConsoleCancelEventHandler Converter<Tlnput, VOutput> CrossAppDomainDelegate EventHandler EventHandler<TEventArgs> Func<...> (различные формы) Predicate<T> ResolveEventHandler UnhandledExceptionEventHandler

В пространстве имен System определены приведенные ниже перечисления. ActivationContext.contextForm AppDomainManagerlnitializationOptions AttributeTargets Base64Formatting0ptions ConsoleColor ConsoleKey ConsoleModifiers ConsoleSpecialKey DateTimeKind DayOfWeek Environment.SpecialFolder Environment SpecialFolderOption EnvironmentVariableTarget GCCollectionMode GCNotificationStatus GenericUriParserOptions LoaderOptimization MidpointRounding PlatformID StringComparison StringSplitOptions TypeCode UriComponents UriFormat UriHostNameType UrildnScope UriKind UriPartial

Как следует из приведенных выше таблиц, пространство имен 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 — значение числа пи.

Таблица 21.1. Методы, определенные в классе Math Метод Описание public static double Abs(double value) Возвращает абсолютную величину value public static float Abs(float value) Возвращает абсолютную величину value public static decimal Abs(decimal value) Возвращает абсолютную величину value public static int Abs(int value) Возвращает абсолютную величину value public static short Abs(short value) Возвращает абсолютную величину value public static long Abs(long value) Возвращает абсолютную величину value public static sbyte Abs(sbyte value) Возвращает абсолютную величину value public static double Acos(double d) Возвращает арккосинус d. Значение d должно находиться в пределах от -1 до 1 public static double Asin(double d) Возвращает арксинус d. Значение d должно находиться в пределах от -1 до 1 public static double Atan(double d) Возвращает арктангенс d public static double Atan2(double y, double x) Возвращает арктангенс частного от деления у/ х public static long BigMulfint a, int b) Возвращает произведение а*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 Cos (double d) Возвращает косинус d public static double Cosh(double d) Возвращает гиперболический косинус d public static int DivRem(int a, int b, out int result) Возвращает частное от деления а/b, а остаток — в виде параметра result типа out public static long DivRem(long a, long b, out long result) Возвращает частное от деления а/b, а остаток — в виде параметра result типа out 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 Log(double d) Возвращает натуральный логарифм значения d public static double Log(double d, double newBase) Возвращает натуральный логарифм по основанию newBase значения d public static double Log10(double d) Возвращает логарифм по основанию 10 значения d public static double Max(double val1, double val2) Возвращает большее из значений val1 и val2 public static float Max(float val1, float val2) Возвращает большее из значений val1 и val2 public static decimal Max(decimal val1, decimal val2) Возвращает большее из значений val1 и val2 public static int Max(int val1, int val2) Возвращает большее из значений val1 и val2 public static short Max(short val1, short val2) Возвращает большее из значений val1 и val2 public static long Max (long val1, long val2) Возвращает большее из значений val1 и val2 public static uint Max (uint val1, uint val2) Возвращает большее из значений val1 и val2 public static ushort Max(ushort val1, ushort val2) Возвращает большее из значений val1 и val2 public static ulong Max(ulong val1, ulong val2) Возвращает большее из значений val1 и val2 public static byte Max(byte val1, byte val2) Возвращает большее из значений val1 и val2 public static sbyte Max(sbyte val1, sbyte val2) Возвращает большее из значений val1 и val2 public static double Min(double val1, double val2) Возвращает меньшее из значений val1 и val2 public static float Min(float val1, float val2) Возвращает меньшее из значений val1 и val2 public static decimal Min(decimal val1, decimal val2) Возвращает меньшее из значений val1 и val2 public static int Min(int val1, int val2) Возвращает меньшее из значений val1 и val2 public static short Min(short val1, short val2) Возвращает меньшее из значений val1 и val2 public static long Min(long val1, long val2) Возвращает меньшее из значений val1 и val2 public static uint Min(uint val1, uint val2) Возвращает меньшее из значений val1 и val2 public static ushort Min(ushort val1, ushort val2) Возвращает меньшее из значений val1 и val2 public static ulong Min(ulong val1, ulong val2) Возвращает меньшее из значений val1 и val2 public static byte Min(byte val1, byte val2) Возвращает меньшее из значений val1 и val2 public static sbyte Min(sbyte val1, sbyte val2) Возвращает меньшее из значений val1 и val2 public static double Pow(double x, double y) Возвращает значение х, возведенное в степень у(xy) public static double Round(double a) Возвращает значение а, округленное до ближайшего целого числа public static decimal Round(decimal d) Возвращает значение d, округленное до ближайшего целого числа public static double Round(double value, int digits) Возвращает значение value, округленное до числа, количество цифр в дробной части которого равно значению параметра digits public static decimal Round(decimal d, int digits) Возвращает значение d, округленное до числа, количество цифр в дробной части которого равно значению digits public static double Round(double value, MidpointRounding mode) Возвращает значение value, округленное до ближайшего целого числа в режиме, определяемом параметром mode public static decimal Round(decimal d, MidpointRounding mode) Возвращает значение d, округленное до ближайшего целого числа в режиме, определяемом параметром mode public static double Round(double value, int digits, MidpointRounding mode) Возвращает значение value, округленное до числа, количество цифр в дробной части которого равно значению digits, а параметр mode определяет режим округления public static decimal Round(decimal d, int digits, MidpointRounding mode) Возвращает значение d, округленное до числа, количество цифр в дробной части которого равно значению digits, а параметр mode определяет режим округления public static int Sign(double value) Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля public static int Sign(float value) Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля public static int Sign(decimal value) Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля public static int Sign(int value) Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля public static int Sign(short value) Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля public static int Sign (long value) Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля public static int Sign(sbyte value) Возвращает -1, если значение value меньше нуля; 0, если значение value равно нулю; и 1, если значение value больше нуля public static double Sin(double a) Возвращает синус числа а public static double Sinh(double value) Возвращает гиперболический синус числа value public static double Sqrt(double d) Возвращает квадратный корень числа d public static double Tan(double a) Возвращает тангенс числа а public static double Tanh(double value) Возвращает гиперболический тангенс числа value public static double Truncate(double d) Возвращает целую часть числа d public static decimal Truncate(decimal d) Возвращает целую часть числа d

В приведенном ниже примере программы метод Sqrt служит для расчета ги потенузы по длине противоположных сторон прямоугольного треугольника согласно теореме Пифагора. // Расчет гипотенузы по теореме Пифагора. using System; class Pythagorean { static void Main { double s1; double s2; double hypot; string str; Console.WriteLine("Введите длину первой стороны треугольника: "); str = Console.ReadLine; s1 = Double.Parse(str); Console.WriteLine("Введите длину второй стороны треугольника: "); str = Console.ReadLine; s2 = Double.Parse(str); hypot = Math.Sqrt(s1*s1 + s2*s2); Console.WriteLine("Длина гипотенузы равна " + hypot); } }

Поделиться:
Популярные книги

Законы Рода. Том 10

Андрей Мельник
10. Граф Берестьев
Фантастика:
юмористическая фантастика
аниме
фэнтези
5.00
рейтинг книги
Законы Рода. Том 10

Соль этого лета

Рам Янка
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Соль этого лета

Доверься мне

Кажанова Юлия
Любовные романы:
любовно-фантастические романы
эро литература
5.00
рейтинг книги
Доверься мне

Зауряд-врач

Дроздов Анатолий Федорович
1. Зауряд-врач
Фантастика:
альтернативная история
8.64
рейтинг книги
Зауряд-врач

Идеальный мир для Лекаря 29

Сапфир Олег
29. Лекарь
Фантастика:
юмористическое фэнтези
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 29

В погоне за женой, или Как укротить попаданку

Орлова Алёна
Фантастика:
фэнтези
6.62
рейтинг книги
В погоне за женой, или Как укротить попаданку

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я

Достигая Вершин

ZerKo
1. Достигая Вершин
Фантастика:
фэнтези
5.00
рейтинг книги
Достигая Вершин

Охота на попаданку. Бракованная жена

Герр Ольга
Любовные романы:
любовно-фантастические романы
5.60
рейтинг книги
Охота на попаданку. Бракованная жена

Идеальный мир для Лекаря 12

Сапфир Олег
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12

Лейтенант космического флота

Борчанинов Геннадий
1. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
фэнтези
фантастика: прочее
5.00
рейтинг книги
Лейтенант космического флота

Громовая поступь. Трилогия

Мазуров Дмитрий
Громовая поступь
Фантастика:
фэнтези
рпг
4.50
рейтинг книги
Громовая поступь. Трилогия

Часовое имя

Щерба Наталья Васильевна
4. Часодеи
Детские:
детская фантастика
9.56
рейтинг книги
Часовое имя

Командир Красной Армии

Поселягин Владимир Геннадьевич
1. Командир Красной Армии
Фантастика:
попаданцы
8.72
рейтинг книги
Командир Красной Армии