MyBooks.club
Все категории

Симон Робинсон - C# для профессионалов. Том II

На сайте mybooks.club вы можете бесплатно читать книги онлайн без регистрации, включая Симон Робинсон - C# для профессионалов. Том II. Жанр: Программирование издательство -,. Доступна полная версия книги с кратким содержанием для предварительного ознакомления, аннотацией (предисловием), рецензиями от других читателей и их экспертным мнением.
Кроме того, на сайте mybooks.club вы найдете множество новинок, которые стоит прочитать.

Название:
C# для профессионалов. Том II
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
17 сентябрь 2019
Количество просмотров:
319
Читать онлайн
Симон Робинсон - C# для профессионалов. Том II

Симон Робинсон - C# для профессионалов. Том II краткое содержание

Симон Робинсон - C# для профессионалов. Том II - описание и краткое содержание, автор Симон Робинсон, читайте бесплатно онлайн на сайте электронной библиотеки mybooks.club
C# для профессионаловПлатформа .NET предлагает новую среду, в которой можно разрабатывать практически любое приложение, действующее под управлением Windows, а язык C# — новый язык программирования, созданный специально для работы с .NET.В этой книге представлены все основные концепции языка C# и платформы .NET. Полностью описывается синтаксис C#, приводятся примеры построения различных типов приложений с использованием C# — создание приложений и служб Windows, приложений и служб WWW при помощи ASP.NET, а также элементов управления Windows и WWW Рассматриваются общие библиотеки классов .NET, в частности, доступ к данным с помощью ADO.NET и доступ к службе Active Directory с применением классов DirectoryServices.Для кого предназначена эта книгаЭта книга предназначена для опытных разработчиков, возможно, имеющих опыт программирования на VB, C++ или Java, но не использовавших ранее в своей работе язык C# и платформу .NET. Программистам, применяющим современные технологии, книга даст полное представление о том, как писать программы на C# для платформы .NET.Основные темы книги• Все особенности языка C#• C# и объектно-ориентированное программирование• Приложения и службы Windows• Создание web-страниц и web-служб с помощью ASP NET• Сборки .NET• Доступ к данным при помощи ADO NET• Создание распределённых приложений с помощью NET Remoting• Интеграция с COM, COM+ и службой Active Directory

C# для профессионалов. Том II читать онлайн бесплатно

C# для профессионалов. Том II - читать книгу онлайн бесплатно, автор Симон Робинсон

al /keyfile:examplekey.key FiretLibrary.dll

или в VS.NET изменить атрибут [assembly: AssemblyKeyFile("")] в файле AssemblyInfo.cs. Замените просто пустую строку на строку, представляющую имя файла ключа. Сборку FirstLibrary.dll можно затем ассоциировать с ключом, меняя атрибут AssemblyKeyFile на [assembly: AssemblyKeyFile("examplekey.key")]. Какой бы метод ни использовался, конечный результат получается тот же самый. CLR будет устанавливать ключ в файл с помощью Crypto Service Provider (CSP). Работа CSP не представлена в данном приложении.

Все сборки в глобальном кэше сборок должны иметь устойчивое имя. Глобальный кэш сборок применяется для хранения сборок, специально созданных для общего использования несколькими приложениями на машине. Существует несколько способов размещения сборки в глобальном кэше сборок. Можно использовать программу установки, созданную для работы с глобальным кэшем сборок, .NET Framework SDK предоставляет программу установки с именем gacutil.exe. Чтобы поместить FirstLibrary.dll в глобальный кэш сборок, воспользуйтесь командой:

gacutil -i FirstLibrary.dll

Можно использовать Проводник Windows для перетаскивания сборок в кэш. Отметим, что необходимо иметь привилегии администратора на машине, чтобы устанавливать сборки в глобальный кэш сборок, независимо от используемого подхода.

Типы данных

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

□ Простые типы

□ Типы перечислений

□ Структуры

Давайте рассмотрим каждый из них по очереди.

Простые типы

Ранее в разделе о ключевых словах было сделано подробное сравнение между примитивными типами данных Java и их эквивалентами в C# (по размеру). Был также введен ряд типов данных значений, представленных в C#, которых Java не имеет. Это были 8-битовый без знака byte (отличный от byte в Java, который имеет знак и отображается в sbyte в C#), короткое целое без знака ushort, целое без знака uint, длинное целое без знака ulong и, наконец, высокоточное decimal.

Целые значения

Когда целое число не имеет суффикса, то тип, с которым может быть связано его значение, оценивается в порядке int, uint, long, ulong, decimal. Целые значения представляются как десятичные или шестнадцатеричные литералы. В коде ниже результат равен 52 для обоих значений:

int dec = 52;

int hex = 0x34;

Console.WriteLine("decimal {0}, hexadecimal {1}", dec, hex);

Символьные значения

char представляет одиночный символ Unicode длиной два байта. C# расширяет гибкость присваивания символов, допуская присваивание с помощью шестнадцатеричной кодированной последовательности с префиксом х и представление Unicode с помощью u. Также нельзя неявно преобразовать символы в целые числа. Все другие обычные кодированные последовательности языка Java полностью поддерживаются.

Логические значения

bool, boolean в Java, используются для представления значений true и false непосредственно или как результат равенства, как показано ниже:

bool first_time = true;

cool second_time = (counter < 0);

Значения decimal

C# вводит тип данных decimal, который является 128-битовым типом данных, представляющим значения в диапазоне от примерно 1.0×1028 до 7.9×1028. Они предназначены прежде всего для финансовых и денежных вычислений, где точность является предельно важной. При присваивании типу decimal значения, к литеральному значению должно добавляться m, иначе компилятор считает значение типом double. Так как decimal не может неявно преобразовываться в double, то отсутствие m требует явного преобразования  типа:

decimal precise = 1.234m;

decimal precise = (decimal)1.234;

Значения с плавающей точкой

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

float f = 5.6;

Console.WriteLine(x);

Этот пример будет создавать сообщение об ошибке компиляции, показанное ниже.

C:_wroxc# for java developerscodeSuperEXClass1.cs(15): Literal of type double cannot De implicitly converted to type 'float'; use an 'F' suffix to create a literal of this type

Существует два способа решения этой проблемы. Можно преобразовать литерал во float, но сам компилятор предлагает более разумную альтернативу. Использование суффикса F говорит компилятору, что это литерал типа float, а не double. Хотя и не обязательно, но можно использовать суффикс D, чтобы указать на литерал типа Double.

Типы перечислений

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

interface Color {

 static int RED = 0;

 static int GREEN = 1;

 static int BLUE = 2;

}

Этот подход проблематичен тем, что он не является безопасным в отношении типов данных. Любое считанное или вычисленное целое используется в качестве цвета. Можно, однако, программным путем реализовать перечисление с безопасными типами в Java, используя вариант шаблона (паттерна) Singleton, который ограничивает класс предопределенным числом экземпляров. Приведенный далее код показывает, как это можно сделать:

final class Day {

 // final, поэтому нельзя создавать подклассы этого класса

 private String internal;

 private Day(String Day) {internal = Day;} // закрытый конструктор

 public static final Day MONDAY = new Day("MONDAY");

 public static final Day TUESDAY = new Day("TUESDAY");

 public static final Day WEDNESDAY = new Day("WEDNESDAY");

 public static final Day THURSDAY = new Day("THURSDAY");

 public static final Day FRIDAY = new Day("FRIDAY");

}

Как можно видеть из приведенного выше примера, перечисленные константы связаны не с примитивными типами, а с объектными ссылками. Также, поскольку класс определен как final, то нельзя создать его подклассы, следовательно, никакие другие классы не могут из него создаваться. Конструктор отмечен как закрытый, поэтому другие методы не могут использовать класс для образования новых объектов. Единственные объекты, которые будут созданы для этого класса, это статические объекты, которые класс формирует для себя при первой ссылке на класс.

Можно согласиться с тем, что хотя концепция достаточно простая, обход включает развитую технику и она может не сразу стать понятной новичку, в конце концов нам требуется только список констант; C#, в противоположность, предоставляет встроенную поддержку перечислении, которая обеспечивает также безопасность типов. Чтобы объявить в C# перечисление, используется ключевое слово enum. В своей простейшей форме enum может выглядеть как следующий код:

public enum Status {

 Working,

 Complete,

 BeforeBegin

}

В приведенном выше случае первое значение равно 0 и enum увеличивает значения. Complete будет 1 и т.д. Если по какой-то причине требуется, чтобы enum представлял другие значения, можно сделать это, присваивая такие значения следующим образом:

public enum Status {

 Working = 131,

 Complete = 129,

 BeforeBegin = 132

}

Имеется также возможность использовать другие числовые целые типы 'наследуя' от long, short или byte. int всегда является типом по умолчанию. Эта концепция проиллюстрирована ниже:

public enum Status : int {

 Working,

 Complete,

 BeforeBegin

}

public enum SmallStatus : byte {

 Working,

 Complete,

 BeforeBegin

}

public enum BigStatus : long {

 Working,

 Complete,

 BeforeBegin

}


Симон Робинсон читать все книги автора по порядку

Симон Робинсон - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mybooks.club.


C# для профессионалов. Том II отзывы

Отзывы читателей о книге C# для профессионалов. Том II, автор: Симон Робинсон. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.