Герберт Шилдт - 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: полное руководство - читать книгу онлайн бесплатно (ознакомительный отрывок), автор Герберт Шилдт
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

return whole; // возвратить целую часть числа

}

}

class UseOut {

static void Main() {

Decompose ob = new Decompose();

int i;

double f;

i = ob.GetParts(10.125, out f) ;

Console.WriteLine("Целая часть числа равна " + i);

Console.WriteLine("Дробная часть числа равна " + f);

}

}

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

Целая часть числа равна 10

Дробная часть числа равна 0.125

Метод GetParts()возвращает два фрагмента информации. Во-первых, целую часть исходного числового значения переменной n обычным образом с помощью оператора return. И во-вторых, дробную часть этого значения посредством параметра fгастипа out. Как показывает данный пример, используя модификатор параметра out, можно организовать возврат двух значений из одного и того же метода.

Разумеется, никаких ограничений на применение параметров outв одном методе не существует. С их помощью из метода можно возвратить сколько угодно фрагментов информации. Рассмотрим пример применения двух параметров out. В этом примере программы метод HasComFactor()выполняет две функции. Во-первых, он определяет общий множитель (кроме 1) для двух целых чисел, возвращая логическое значение true, если у них имеется общий множитель, а иначе — логическое значение false. И во-вторых, он возвращает посредством параметров типа outнаименьший и наибольший общий множитель двух чисел, если таковые обнаруживаются.

// Использовать два параметра типа out.

using System;

class Num {

/* Определить, имеется ли у числовых значений переменных х и v общий множитель. Если имеется, то * возвратить наименьший и наибольший множители посредством параметров типа out. */

public bool HasComFactor(int x, int y,

out int least, out int greatest) {

int i;

int max = x < у ? x : y;

bool first = true;

least = 1;

greatest = 1;

// Найти наименьший и наибольший общий множитель.

for(i=2; i <= max/2 + 1; i++) {

if( ((y%i)==0) & ((x%i)==0) ) {

if (first) {

least = i;

first = false;

}

greatest = i;

}

}

if(least != 1)

return true;

else

return false;

}

}

class DemoOut {

static void Main() {

Num ob = new Num();

int lcf, gcf;

if(ob.HasComFactor(231, 105, out lcf, out gcf)) {

Console.WriteLine("Наименьший общий множитель " +

"чисел 231 и 105 равен " + lcf) ;

Console.WriteLine("Наибольший общий множитель " +

"чисел 231 и 105 равен " + gcf);

}

else

Console.WriteLine("Общий множитель у чисел 35 и 49 отсутствует.");

if(ob.HasComFactor(35, 51, out lcf, out gcf)) {

Console.WriteLine("Наименьший общий множитель " +

"чисел 35 и 51 равен " + lcf);

Console.WriteLine("Наибольший общий множитель " +

"чисел 35 и 51 равен " + gcf);

}

else

Console.WriteLine("Общий множитель у чисел 35 и 51 отсутствует.");

}

}

Обратите внимание на то, что значения присваиваются переменным lcfи gcfв методе Main()до вызова метода HasComFactor().Если бы параметры метода HasComFactor()были типа ref, а не out, это привело бы к ошибке. Данный метод возвращает логическое значение trueили false, в зависимости от того, имеется ли общий множитель у двух целых чисел. Если он имеется, то посредством параметров типа out возвращаются наименьший и наибольший общий множитель этих чисел. Ниже приведен результат выполнения данной программы.

Наименьший общий множитель чисел 231 и 105 равен 3

Наибольший общий множитель чисел 231 и 105 равен 21

Общий множитель у чисел 35 и 51 отсутствует.

Использование модификаторов ref и out для ссылок на объекты

Применение модификаторов refи outне ограничивается только передачей значений обычных типов. С их помощью можно также передавать ссылки на объекты. Если модификатор refили outуказывает на ссылку, то сама ссылка передается по ссылке. Это позволяет изменить в методе объект, на который указывает ссылка. Рассмотрим в качестве примера следующую программу, в которой ссылочные параметры типа refслужат для смены объектов, на которые указывают ссылки.

// Поменять местами две ссылки.

using System;

class RefSwap {

int a, b;

public RefSwap(int i, int j) {

a = i;

b = j;

}

public void Show() {

Console.WriteLine("a: {0}, b: {1}", a, b);

}

// Этот метод изменяет свои аргументы.

public void Swap(ref RefSwap ob1, ref RefSwap ob2) {

RefSwap t;

t = ob1;

ob1 = ob2;

ob2 = t;

}

}

class RefSwapDemo {

static void Main() {

RefSwap x = new RefSwap(1, 2);

RefSwap у = new RefSwap(3, 4);

Console.Write("x до вызова: ") ;

x.Show();

Console.Write("у до вызова: ");

у.Show();

Console.WriteLine() ;

// Смена объектов, на которые ссылаются аргументы х и у.

x.Swap (ref x, ref у);

Console.Write("х после вызова: ");

x.Show();

Console.Write("у после вызова: ") ;

у.Show();

}

}

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

х до вызова: а: 1, b: 2

у до вызова: а: 3, b: 4

х после вызова: а: 3, b: 4

у после вызова: а: 1, b: 2

В данном примере в методе Swap()выполняется смена объектов, на которые ссылаются два его аргумента. До вызова метода Swap()аргумент х ссылается на объект, содержащий значения 1 и 2, тогда как аргумент у ссылается на объект, содержащий значения 3 и 4. А после вызова метода Swap()аргумент х ссылается на объект, содержащий значения 3 и 4, тогда как аргумент у ссылается на объект, содержащий значения 1 и 2. Если бы не параметры типа ref,то перестановка в методе Swap()не имела бы никаких последствий за пределами этого метода. Для того чтобы убедиться в этом, исключите параметры типа ref из метода Swap().

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

Интервал:

Закладка:

Сделать


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

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




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


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


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

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