Герберт Шилдт - C# 4.0 - полное руководство

Здесь есть возможность читать онлайн «Герберт Шилдт - C# 4.0 - полное руководство» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва -- Киев, Год выпуска: 2011, ISBN: 2011, Издательство: ООО И.Д. Вильямс, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C# 4.0: полное руководство: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C# 4.0: полное руководство»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «C# 4.0: полное руководство», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Применение ограничения new() на конструктор

Ограничение new()на конструктор позволяет получать экземпляр объекта обобщенного типа. Как правило, создать экземпляр параметра обобщенного типа не удается. Но это положение изменяет ограничение new(), поскольку оно требует, чтобы аргумент типа предоставил конструктор без параметров. Им может быть конструктор, вызываемый по умолчанию и предоставляемый автоматически, если явно определяемый конструктор отсутствует или же конструктор без параметров явно объявлен пользователем. Накладывая ограничение new(), можно вызывать конструктор без параметров для создания объекта.

Ниже приведен простой пример, демонстрирующий наложение ограничения new().

// Продемонстрировать наложение ограничения new() на конструктор.

using System;

class MyClass {

public MyClass() {

// ...

}

//. . .

}

class Test where T : new() {

T obj;

public Test() {

// Этот код работоспособен благодаря

// наложению ограничения new().

obj = new T(); // создать объект типа Т

}

// ...

}

class ConsConstraintDemo {

static void Main() {

Test x = new Test();

}

}

Прежде всего обратите внимание на объявление класса Test.

class Test where T : new() {

В силу накладываемого ограничения new()любой аргумент типа должен предоставлять конструктор без параметров.

Далее проанализируем приведенный ниже конструктор класса Test.

public Test() {

// Этот код работоспособен благодаря

// наложению ограничения new().

obj = new Т(); // создать объект типа Т

}

В этом фрагменте кода создается объект типа Т, и ссылка на него присваивается переменной экземпляра obj. Такой код допустим только потому, что ограничение new()требует наличия конструктора. Для того чтобы убедиться в этом, попробуйте сначала удалить ограничение new(), а затем попытайтесь перекомпилировать программу. В итоге вы получите сообщение об ошибке во время компиляции.

В методе Main() получается экземпляр объекта типа Test, как показано ниже.

Test х = new Test();

Обратите внимание на то, что аргументом типа в данном случае является класс MyClassи что в этом классе определяется конструктор без параметров. Следовательно, этот класс допускается использовать в качестве аргумента типа для класса Test. Следует особо подчеркнуть, что в классе MyClassсовсем не обязательно определять конструктор без параметров явным образом. Его используемый по умолчанию конструктор вполне удовлетворяет накладываемому ограничению. Но если классу потребуются другие конструкторы, помимо конструктора без параметров, то придется объявить явным образом и вариант без параметров.

Что касается применения ограничения new(), то следует обратить внимание на три других важных момента. Во-первых, его можно использовать вместе с другими ограничениями, но последним по порядку. Во-вторых, ограничение new()позволяет конструировать объект, используя только конструктор без параметров, — даже если доступны другие конструкторы. Иными словами, передавать аргументы конструктору параметра типа не разрешается. И в-третьих, ограничение new()нельзя использовать одновременно с ограничением типа значения, рассматриваемым далее.

Ограничения ссылочного типа и типа значения

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

where Т : class

В этой форме с оператором whereключевое слово classуказывает на то, что аргумент Т должен быть ссылочного типа. Следовательно, всякая попытка использовать тип значения, например intили bool, вместо T приведет к ошибке во время компиляции.

Ниже приведена общая форма ограничения типа значения.

where Т : struct

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «C# 4.0: полное руководство»

Представляем Вашему вниманию похожие книги на «C# 4.0: полное руководство» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «C# 4.0: полное руководство»

Обсуждение, отзывы о книге «C# 4.0: полное руководство» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.