Герберт Шилдт - 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: полное руководство», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

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

Интервал:

Закладка:

Сделать

Console.WriteLine(intDel(3));

// Сконструировать делегат типа string.

SomeOp strDel = Reflect;

Console.WriteLine(strDel("Привет"));

}

}

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

6

тевирП

Рассмотрим эту программу более подробно. Прежде всего обратите внимание на следующее объявление делегата SomeOp.

delegate Т SomeOp(T v);

Как видите, тип Т может служить в качестве возвращаемого типа, несмотря на то, что параметр типа Т указывается после имени делегата SomeOp.

Далее в классе GenDelegateDemoобъявляются методы Sum()и Reflect(), как показано ниже.

static int Sum(int v) {

static string Reflect(string str) {

Метод Sum()возвращает результат суммирования целого значения, передаваемого в качестве аргумента, а метод Reflect()— символьную строку, которая получается обращенной по отношению к строке, передаваемой в качестве аргумента.

В методе Main()создается экземпляр intDelделегата, которому присваивается ссылка на метод Sum().

SomeOp intDel = Sum;

Метод Sum()принимает аргумент типа intи возвращает значение типа int, поэтому он совместим с целочисленным экземпляром делегата SomeOp.

Аналогичным образом создается экземпляр strDelделегата, которому присваивается ссылка на метод Reflect().

SomeOp strDel = Reflect;

Метод Reflect()принимает аргумент типа stringи возвращает результат типа string, поэтому он совместим со строковым экземпляром делегата SomeOp.

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

SomeOp strDel = Reflect; //Ошибка!

Ведь метод Reflect()принимает аргумент типа stringи возвращает результат типа string, а следовательно, он несовместим с целочисленным экземпляром делегата SomeOp.

Обобщенные интерфейсы

Помимо обобщенных классов и методов, в C# допускаются обобщенные интерфейсы. Такие интерфейсы указываются аналогично обобщенным классам. Ниже приведен измененный вариант примера из главы 12, демонстрирующего интерфейс ISeries. (Напомним, что ISeriesявляется интерфейсом для класса, генерирующего последовательный ряд числовых значений.) Тип данных, которым оперирует этот интерфейс, теперь определяется параметром типа.

// Продемонстрировать применение обобщенного интерфейса.

using System;

public interface ISeries {

T GetNext(); // возвратить следующее по порядку число

void Reset(); // генерировать ряд последовательных чисел с самого начала

void SetStart(T v); // задать начальное значение

}

//Реализовать интерфейс ISeries.

class ByTwos : ISeries {

T start;

T val;

// Этот делегат определяет форму метода,

// вызываемого для генерирования

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

public delegate T IncByTwo(T v);

// Этой ссылке на делегат будет присвоен метод,

// передаваемый конструктору класса ByTwos.

IncByTwo incr;

public ByTwos(IncByTwo incrMeth) {

start = default(T);

val = default(T);

incr = incrMeth;

}

public T GetNext() {

val = incr(val);

return val;

}

public void Reset() {

val = start;

}

public void SetStart(T v) {

start = v;

val = start;

}

}

class ThreeD {

public int x, y, z;

public ThreeD(int a, int b, int c) {

x = a;

y = b;

z = c;

}

}

class GenIntfDemo {

// Определить метод увеличения на два каждого

// последующего значения типа int.

static int IntPlusTwo(int v) {

return v + 2;

}

// Определить метод увеличения на два каждого

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

Интервал:

Закладка:

Сделать

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

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


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

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