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

Тут можно читать онлайн Герберт Шилдт - C# 4.0: полное руководство - бесплатно ознакомительный отрывок. Жанр: comp-programming, издательство ООО И.Д. Вильямс, год 2011. Здесь Вы можете читать ознакомительный отрывок из книги онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    C# 4.0: полное руководство
  • Автор:
  • Жанр:
  • Издательство:
    ООО И.Д. Вильямс
  • Год:
    2011
  • Город:
    Москва -- Киев
  • ISBN:
    978-5-8459-1684-6
  • Рейтинг:
    3.93/5. Голосов: 141
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

C# 4.0: полное руководство - описание и краткое содержание, автор Герберт Шилдт, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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


Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок

C# 4.0: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Timer.count = 10;

Эта форма записи подобна той, что используется для доступа к обычным переменным экземпляра посредством объекта, но в ней указывается имя класса, а не объекта. Аналогичным образом можно вызвать метод типа static, используя имя класса и оператор-точку. ,

Переменные, объявляемые как static, по существу, являются глобальными. Когда же объекты, объявляются в своем классе, то копия переменной типа staticне создается. Вместо этого все экземпляры класса совместно пользуются одной и той же переменной типа static. Такая переменная инициализируется перед ее применением в классе. Когда же ее инициализатор не указан явно, то она инициализируется нулевым значением, если относится к числовому типу данных, пустым значением, если относится к ссылочному типу, или же логическим значением false, если относится к типу bool. Таким образом, переменные типа staticвсегда имеют какое-то значение.

Метод типа staticотличается от обычного метода тем, что его можно вызывать по имени его класса, не создавая экземпляр объекта этого класса. Пример такого вызова уже приводился ранее. Это был метод Sqrt()типа static, относящийся к классу System.Mathиз стандартной библиотеки классов С#.

Ниже приведен пример программы, в которой объявляются переменная и метод типа static.

// Использовать модификатор static.

using System;

class StaticDemo {

// Переменная типа static.

public static int Val = 100;

// Метод типа static.

public static int ValDiv2() {

return Val/2;

}

}

class SDemo {

static void Main() {

Console.WriteLine("Исходное значение переменной " +

"StaticDemo.Val равно " + StaticDemo.Val);

StaticDemo.Val = 8;

Console.WriteLine("Текущее значение переменной" +

"StaticDemo.Val равно " + StaticDemo.Val);

Console.WriteLine("StaticDemo.ValDiv2(): "

+ StaticDemo.ValDiv2());

}

}

Выполнение этой программы приводит к следующему результату.

Исходное значение переменной StaticDemo.Val равно 100

Текущее значение переменной StaticDemo.Val равно 8

StaticDemo.ValDiv2(): 4

Как следует из приведенного выше результата, переменная типа staticинициализируется до создания любого объекта ее класса.

На применение методов типа staticнакладывается ряд следующих ограничений.

• В методе типа staticдолжна отсутствовать ссылка this, поскольку такой метод не выполняется относительно какого-либо объекта.

• В методе типа staticдопускается непосредственный вызов только других методов типа static, но не метода экземпляра из того самого же класса. Дело в том, что методы экземпляра оперируют конкретными объектами, а метод типа staticне вызывается для объекта. Следовательно, у такого метода отсутствуют объекты, которыми он мог бы оперировать.

• Аналогичные ограничения накладываются на данные типа static. Для метода типа staticнепосредственно доступными оказываются только другие данные типа static, определенные в его классе. Он, в частности, не может оперировать переменной экземпляра своего класса, поскольку у него отсутствуют объекты, которыми он мог бы оперировать.

Ниже приведен пример класса, в котором недопустим метод ValDivDenom()типа static.

class StaticError {

public int Denom =3; // обычная переменная экземпляра

public static int Val = 1024; // статическая переменная

/* Ошибка! Непосредственный доступ к нестатической переменной из статического метода недопустим. */

static int ValDivDenom() {

return Val/Denom; // не подлежит компиляции!

}

}

В данном примере кода Denomявляется обычной переменной, которая недоступна из метода типа static. Но в то же время в этом методе можно воспользоваться переменной Val,поскольку она объявлена как static.

Аналогичная ошибка возникает при попытке вызвать нестатический метод из статического метода того же самого класса, как в приведенном ниже примере.

using System;

class AnotherStaticError {

// Нестатический метод.

void NonStaticMeth() {

Console.WriteLine("В методе NonStaticMeth().");

}

/* Ошибка! Непосредственный вызов нестатического метода из статического метода недопустим. */

static void staticMeth() {

NonStaticMeth(); // не подлежит компиляции!

}

}

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

Следует особо подчеркнуть, что из метода типа staticнельзя вызывать методы экземпляра и получать доступ к переменным экземпляра его класса, как это обычно делается посредством объектов данного класса. И объясняется это тем, что без указания конкретного объекта переменная или метод экземпляра оказываются недоступными. Например, приведенный ниже фрагмент кода считается совершенно верным.

class MyClass {

// Нестатический метод.

void NonStaticMeth() {

Console.WriteLine("В методе NonStaticMeth().");

}

/* Нестатический метод может быть вызван из статического метода по ссылке на объект. */

public static void staticMeth(MyClass ob) {

ob.NonStaticMeth(); // все верно!

}

}

В данном примере метод NonStaticMeth()вызывается из метода staticMeth()по ссылке на объект ob типа MyClass.

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

// Использовать поле типа static для подсчета

// экземпляров существующих объектов.

using System;

class CountInst {

static int count = 0;

// Инкрементировать подсчет, когда создается объект.

public CountInst() {

count++;

}

// Декрементировать подсчет, когда уничтожается объект.

~CountInst() { count--;

}

public static int GetCount() {

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

Интервал:

Закладка:

Сделать


Герберт Шилдт читать все книги автора по порядку

Герберт Шилдт - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




C# 4.0: полное руководство отзывы


Отзывы читателей о книге C# 4.0: полное руководство, автор: Герберт Шилдт. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x