0% found this document useful (0 votes)
27 views

Where can buy Interactive C#: Fundamentals, Core Concepts and Patterns 1st Edition Vaskaran Sarcar ebook with cheap price

Vaskaran

Uploaded by

jaekelalgius
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views

Where can buy Interactive C#: Fundamentals, Core Concepts and Patterns 1st Edition Vaskaran Sarcar ebook with cheap price

Vaskaran

Uploaded by

jaekelalgius
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 65

Experience Seamless Full Ebook Downloads for Every Genre at textbookfull.

com

Interactive C#: Fundamentals, Core Concepts and


Patterns 1st Edition Vaskaran Sarcar

https://textbookfull.com/product/interactive-c-fundamentals-
core-concepts-and-patterns-1st-edition-vaskaran-sarcar/

OR CLICK BUTTON

DOWNLOAD NOW

Explore and download more ebook at https://textbookfull.com


Recommended digital products (PDF, EPUB, MOBI) that
you can download immediately if you are interested.

Java Design Patterns A tour of 23 gang of four design


patterns in Java 1st Edition Vaskaran Sarcar

https://textbookfull.com/product/java-design-patterns-a-tour-
of-23-gang-of-four-design-patterns-in-java-1st-edition-vaskaran-
sarcar/
textboxfull.com

Java design patterns a tour of 23 gang of four design


patterns in Java 1st Edition Vaskaran Sarcar

https://textbookfull.com/product/java-design-patterns-a-tour-
of-23-gang-of-four-design-patterns-in-java-1st-edition-vaskaran-
sarcar-2/
textboxfull.com

Getting Started with Advanced C# 1st Edition Vaskaran


Sarcar [Sarcar

https://textbookfull.com/product/getting-started-with-advanced-c-1st-
edition-vaskaran-sarcar-sarcar/

textboxfull.com

Design Patterns in C#: A Hands-on Guide with Real-world


Examples 2nd Edition Vaskaran Sarcar

https://textbookfull.com/product/design-patterns-in-c-a-hands-on-
guide-with-real-world-examples-2nd-edition-vaskaran-sarcar/

textboxfull.com
Java Design Patterns: A Hands-On Experience with Real-
World Examples 2nd Edition Vaskaran Sarcar

https://textbookfull.com/product/java-design-patterns-a-hands-on-
experience-with-real-world-examples-2nd-edition-vaskaran-sarcar/

textboxfull.com

Biota Grow 2C gather 2C cook Loucas

https://textbookfull.com/product/biota-grow-2c-gather-2c-cook-loucas/

textboxfull.com

Functional and Concurrent Programming Core Concepts and


Features 1st Edition Charpentier

https://textbookfull.com/product/functional-and-concurrent-
programming-core-concepts-and-features-1st-edition-charpentier/

textboxfull.com

Psychology: Core Concepts Philip G. Zimbardo

https://textbookfull.com/product/psychology-core-concepts-philip-g-
zimbardo/

textboxfull.com

Design Patterns in .NET Core 3: Reusable Approaches in C#


and F# for Object-Oriented Software Design 2nd Edition
Dmitri Nesteruk
https://textbookfull.com/product/design-patterns-in-net-
core-3-reusable-approaches-in-c-and-f-for-object-oriented-software-
design-2nd-edition-dmitri-nesteruk/
textboxfull.com
Interactive
C#
Fundamentals, Core Concepts and Patterns

Vaskaran Sarcar
Foreword by A. Rajendram and S. Ghosh
Interactive C#
Fundamentals, Core Concepts
and Patterns

Vaskaran Sarcar
Foreword by A. Rajendram and S. Ghosh
Interactive C#
Vaskaran Sarcar
560066, Karnataka, India

ISBN-13 (pbk): 978-1-4842-3338-2 ISBN-13 (electronic): 978-1-4842-3339-9


https://doi.org/10.1007/978-1-4842-3339-9
Library of Congress Control Number: 2017962428

Copyright © 2018 by Vaskaran Sarcar


This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the
material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation,
broadcasting, reproduction on microfilms or in any other physical way, and transmission or information
storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now
known or hereafter developed.
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with
every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an
editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the
trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not
identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to
proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication,
neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or
omissions that may be made. The publisher makes no warranty, express or implied, with respect to the
material contained herein.
Cover image designed by Freepik (www.freepik.com)
Managing Director: Welmoed Spahr
Editorial Director: Todd Green
Acquisitions Editor: Celestin Suresh John
Development Editor: Matthew Moodie
Technical Reviewer: Shekhar Kumar Maravi
Coordinating Editor: Sanchita Mandal
Copy Editor: Kim Burton-Weisman
Compositor: SPi Global
Indexer: SPi Global
Artist: SPi Global
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street,
6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-
sbm.com, or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member
(owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a
Delaware corporation.
For information on translations, please e-mail [email protected], or visit http://www.apress.com/
rights-permissions.
Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and
licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales
web page at http://www.apress.com/bulk-sales.
Any source code or other supplementary material referenced by the author in this book is available to
readers on GitHub via the book’s product page, located at www.apress.com/978-1-4842-3338-2. For more
detailed information, please visit http://www.apress.com/source-code.
Printed on acid-free paper
Table of Contents
Foreword by Ambrose Rajendram������������������������������������������������������������������������xxiii

Foreword by Siddhartha Ghosh�����������������������������������������������������������������������������xxv


About the Author�������������������������������������������������������������������������������������������������xxvii

About the Technical Reviewers����������������������������������������������������������������������������xxix

Acknowledgements����������������������������������������������������������������������������������������������xxxi

Preface���������������������������������������������������������������������������������������������������������������xxxiii

Guidelines for Using the Book���������������������������������������������������������������������������xxxvii

Part I: Enter into the World of OOP�������������������������������������������������������� 1


Chapter 1: Object-Oriented Programming Concepts������������������������������������������������ 3
Class and Objects������������������������������������������������������������������������������������������������������������������������� 5
Encapsulation������������������������������������������������������������������������������������������������������������������������������� 6
Abstraction������������������������������������������������������������������������������������������������������������������������������������ 6
Inheritance������������������������������������������������������������������������������������������������������������������������������������ 7
Polymorphism������������������������������������������������������������������������������������������������������������������������������� 7
Summary�������������������������������������������������������������������������������������������������������������������������������������� 9

Chapter 2: The Building Blocks: Class and Objects������������������������������������������������ 11


Class������������������������������������������������������������������������������������������������������������������������������������������� 11
Object������������������������������������������������������������������������������������������������������������������������������������������ 11
Class Demonstrations����������������������������������������������������������������������������������������������������������������� 15
Demonstration 1������������������������������������������������������������������������������������������������������������������������� 16
Output������������������������������������������������������������������������������������������������������������������������������������ 17
Additional Comments������������������������������������������������������������������������������������������������������������ 17

iii
Table of Contents

Demonstration 2������������������������������������������������������������������������������������������������������������������������� 19
Output������������������������������������������������������������������������������������������������������������������������������������ 20
Analysis��������������������������������������������������������������������������������������������������������������������������������� 20
Additional Comments������������������������������������������������������������������������������������������������������������ 21
Quiz��������������������������������������������������������������������������������������������������������������������������������������� 23
Output������������������������������������������������������������������������������������������������������������������������������������ 23
Explanation���������������������������������������������������������������������������������������������������������������������������� 24
Demonstration 3������������������������������������������������������������������������������������������������������������������������� 27
Output������������������������������������������������������������������������������������������������������������������������������������ 28
Explanation���������������������������������������������������������������������������������������������������������������������������� 28
Demonstration 4������������������������������������������������������������������������������������������������������������������������� 30
Output������������������������������������������������������������������������������������������������������������������������������������ 31
Additional Comments������������������������������������������������������������������������������������������������������������ 31
Demonstration 5������������������������������������������������������������������������������������������������������������������������� 31
Output������������������������������������������������������������������������������������������������������������������������������������ 32
Object Initializers������������������������������������������������������������������������������������������������������������������������ 33
Demonstration 6������������������������������������������������������������������������������������������������������������������������� 33
Output������������������������������������������������������������������������������������������������������������������������������������ 34
Analysis��������������������������������������������������������������������������������������������������������������������������������� 35
Optional Parameters������������������������������������������������������������������������������������������������������������������� 35
Demonstration 7������������������������������������������������������������������������������������������������������������������������� 36
Output������������������������������������������������������������������������������������������������������������������������������������ 37
Analysis��������������������������������������������������������������������������������������������������������������������������������� 37
Summary������������������������������������������������������������������������������������������������������������������������������������ 39

Chapter 3: The Concept of Inheritance������������������������������������������������������������������� 41


Types������������������������������������������������������������������������������������������������������������������������������������������� 41
Demonstration 1������������������������������������������������������������������������������������������������������������������������� 44
Output������������������������������������������������������������������������������������������������������������������������������������ 44
Additional Comments������������������������������������������������������������������������������������������������������������ 45

iv
Table of Contents

Demonstration 2������������������������������������������������������������������������������������������������������������������������� 46
Output������������������������������������������������������������������������������������������������������������������������������������ 46
Analysis��������������������������������������������������������������������������������������������������������������������������������� 47
Demonstration 3������������������������������������������������������������������������������������������������������������������������� 47
Demonstration 4������������������������������������������������������������������������������������������������������������������������� 50
Output������������������������������������������������������������������������������������������������������������������������������������ 51
Explanation���������������������������������������������������������������������������������������������������������������������������� 51
A Special Keyword: base������������������������������������������������������������������������������������������������������������� 52
Demonstration 5������������������������������������������������������������������������������������������������������������������������� 52
Output������������������������������������������������������������������������������������������������������������������������������������ 53
Analysis��������������������������������������������������������������������������������������������������������������������������������� 54
Quiz��������������������������������������������������������������������������������������������������������������������������������������� 55
Output������������������������������������������������������������������������������������������������������������������������������������ 55
Analysis��������������������������������������������������������������������������������������������������������������������������������� 56
Demonstration 6������������������������������������������������������������������������������������������������������������������������� 56
Output������������������������������������������������������������������������������������������������������������������������������������ 57
Demonstration 7������������������������������������������������������������������������������������������������������������������������� 58
Output������������������������������������������������������������������������������������������������������������������������������������ 59
Analysis��������������������������������������������������������������������������������������������������������������������������������� 59
Summary������������������������������������������������������������������������������������������������������������������������������������ 62

Chapter 4: Get Familiar with Polymorphism����������������������������������������������������������� 63


Method Overloading�������������������������������������������������������������������������������������������������������������������� 63
Demonstration 1������������������������������������������������������������������������������������������������������������������������� 64
Output������������������������������������������������������������������������������������������������������������������������������������ 65
Analysis��������������������������������������������������������������������������������������������������������������������������������� 65
Quiz��������������������������������������������������������������������������������������������������������������������������������������� 65
Answer���������������������������������������������������������������������������������������������������������������������������������� 66
Quiz��������������������������������������������������������������������������������������������������������������������������������������� 66
Answer���������������������������������������������������������������������������������������������������������������������������������� 66

v
Table of Contents

Demonstration 2������������������������������������������������������������������������������������������������������������������������� 67
Output������������������������������������������������������������������������������������������������������������������������������������ 68
Analysis��������������������������������������������������������������������������������������������������������������������������������� 68
Demonstration 3������������������������������������������������������������������������������������������������������������������������� 68
Output������������������������������������������������������������������������������������������������������������������������������������ 69
Demonstration 4������������������������������������������������������������������������������������������������������������������������� 69
Output������������������������������������������������������������������������������������������������������������������������������������ 70
Analysis��������������������������������������������������������������������������������������������������������������������������������� 70
Quiz��������������������������������������������������������������������������������������������������������������������������������������� 72
Demonstration 5������������������������������������������������������������������������������������������������������������������������� 72
A Suggestion/Good Programming Practice��������������������������������������������������������������������������� 73
Operator Overloading������������������������������������������������������������������������������������������������������������������ 74
Demonstration 6������������������������������������������������������������������������������������������������������������������������� 75
Output������������������������������������������������������������������������������������������������������������������������������������ 76
Demonstration 7������������������������������������������������������������������������������������������������������������������������� 77
Output������������������������������������������������������������������������������������������������������������������������������������ 78
Analysis��������������������������������������������������������������������������������������������������������������������������������� 79
Method Overriding���������������������������������������������������������������������������������������������������������������������� 80
Demonstration 8������������������������������������������������������������������������������������������������������������������������� 80
Output������������������������������������������������������������������������������������������������������������������������������������ 81
Analysis��������������������������������������������������������������������������������������������������������������������������������� 81
Demonstration 9������������������������������������������������������������������������������������������������������������������������� 83
Output������������������������������������������������������������������������������������������������������������������������������������ 84
Demonstration 10����������������������������������������������������������������������������������������������������������������������� 85
Output������������������������������������������������������������������������������������������������������������������������������������ 86
Experiment with Polymorphism�������������������������������������������������������������������������������������������������� 86
Demonstration 11����������������������������������������������������������������������������������������������������������������������� 86
Output������������������������������������������������������������������������������������������������������������������������������������ 88
Analysis��������������������������������������������������������������������������������������������������������������������������������� 88

vi
Table of Contents

Demonstration 12����������������������������������������������������������������������������������������������������������������������� 89
Output������������������������������������������������������������������������������������������������������������������������������������ 90
Analysis��������������������������������������������������������������������������������������������������������������������������������� 90
Demonstration 13����������������������������������������������������������������������������������������������������������������������� 92
Output������������������������������������������������������������������������������������������������������������������������������������ 94
Explanation���������������������������������������������������������������������������������������������������������������������������� 94
Demonstration 14����������������������������������������������������������������������������������������������������������������������� 95
Output������������������������������������������������������������������������������������������������������������������������������������ 95
Demonstration 15����������������������������������������������������������������������������������������������������������������������� 95
Output������������������������������������������������������������������������������������������������������������������������������������ 96
Demonstration 16����������������������������������������������������������������������������������������������������������������������� 97
Output������������������������������������������������������������������������������������������������������������������������������������ 97
Quiz��������������������������������������������������������������������������������������������������������������������������������������� 97
Demonstration 17����������������������������������������������������������������������������������������������������������������������� 98
Output������������������������������������������������������������������������������������������������������������������������������������ 99
Explanation���������������������������������������������������������������������������������������������������������������������������� 99
Quiz������������������������������������������������������������������������������������������������������������������������������������� 100
Answer�������������������������������������������������������������������������������������������������������������������������������� 100
Quiz������������������������������������������������������������������������������������������������������������������������������������� 100
Answer�������������������������������������������������������������������������������������������������������������������������������� 100
Demonstration 18��������������������������������������������������������������������������������������������������������������������� 101
Output���������������������������������������������������������������������������������������������������������������������������������� 102
Analysis������������������������������������������������������������������������������������������������������������������������������� 103
Demonstration 19��������������������������������������������������������������������������������������������������������������������� 103
Output���������������������������������������������������������������������������������������������������������������������������������� 105
Demonstration 20��������������������������������������������������������������������������������������������������������������������� 106
Output���������������������������������������������������������������������������������������������������������������������������������� 107
Analysis������������������������������������������������������������������������������������������������������������������������������� 107
Demonstration 21��������������������������������������������������������������������������������������������������������������������� 108
Output���������������������������������������������������������������������������������������������������������������������������������� 109
Analysis������������������������������������������������������������������������������������������������������������������������������� 109

vii
Table of Contents

Abstract Class��������������������������������������������������������������������������������������������������������������������������� 110


Demonstration 22��������������������������������������������������������������������������������������������������������������������� 110
Output���������������������������������������������������������������������������������������������������������������������������������� 111
Demonstration 23��������������������������������������������������������������������������������������������������������������������� 112
Output���������������������������������������������������������������������������������������������������������������������������������� 113
Explanation�������������������������������������������������������������������������������������������������������������������������� 114
Quiz������������������������������������������������������������������������������������������������������������������������������������� 115
Answer�������������������������������������������������������������������������������������������������������������������������������� 115
Quiz������������������������������������������������������������������������������������������������������������������������������������� 118
Output���������������������������������������������������������������������������������������������������������������������������������� 119
Quiz������������������������������������������������������������������������������������������������������������������������������������� 119
Output���������������������������������������������������������������������������������������������������������������������������������� 120
Summary���������������������������������������������������������������������������������������������������������������������������������� 122

Chapter 5: Interfaces: An Art in OOP�������������������������������������������������������������������� 123


Introduction to Interfaces���������������������������������������������������������������������������������������������������������� 123
Demonstration 1����������������������������������������������������������������������������������������������������������������������� 124
Output���������������������������������������������������������������������������������������������������������������������������������� 125
Analysis������������������������������������������������������������������������������������������������������������������������������� 126
Demonstration 2����������������������������������������������������������������������������������������������������������������������� 126
Output���������������������������������������������������������������������������������������������������������������������������������� 128
Demonstration 3����������������������������������������������������������������������������������������������������������������������� 128
Output���������������������������������������������������������������������������������������������������������������������������������� 129
Demonstration 4����������������������������������������������������������������������������������������������������������������������� 130
Output���������������������������������������������������������������������������������������������������������������������������������� 131
Demonstration 5����������������������������������������������������������������������������������������������������������������������� 132
Output���������������������������������������������������������������������������������������������������������������������������������� 134
Quiz������������������������������������������������������������������������������������������������������������������������������������� 134
Output���������������������������������������������������������������������������������������������������������������������������������� 135
Analysis������������������������������������������������������������������������������������������������������������������������������� 135
Tag/Tagging/Marker Interface��������������������������������������������������������������������������������������������������� 136

viii
Table of Contents

Demonstration 6����������������������������������������������������������������������������������������������������������������������� 140


Output���������������������������������������������������������������������������������������������������������������������������������� 140
Demonstration 7����������������������������������������������������������������������������������������������������������������������� 141
Output���������������������������������������������������������������������������������������������������������������������������������� 141
Summary���������������������������������������������������������������������������������������������������������������������������������� 144

Chapter 6: Encapsulation with Properties and Indexers�������������������������������������� 145


Overview of Properties�������������������������������������������������������������������������������������������������������������� 145
Demonstration 1����������������������������������������������������������������������������������������������������������������������� 145
Output���������������������������������������������������������������������������������������������������������������������������������� 147
Analysis������������������������������������������������������������������������������������������������������������������������������� 147
Reduce the Code Size���������������������������������������������������������������������������������������������������������� 150
Demonstration 2����������������������������������������������������������������������������������������������������������������������� 151
IL Code��������������������������������������������������������������������������������������������������������������������������������� 152
Virtual Property������������������������������������������������������������������������������������������������������������������������� 155
Demonstration 3����������������������������������������������������������������������������������������������������������������������� 155
Output���������������������������������������������������������������������������������������������������������������������������������� 156
Abstract Property���������������������������������������������������������������������������������������������������������������������� 157
Quiz������������������������������������������������������������������������������������������������������������������������������������� 157
Output���������������������������������������������������������������������������������������������������������������������������������� 158
Analysis������������������������������������������������������������������������������������������������������������������������������� 158
Quiz������������������������������������������������������������������������������������������������������������������������������������� 158
Output���������������������������������������������������������������������������������������������������������������������������������� 159
Analysis������������������������������������������������������������������������������������������������������������������������������� 159
Indexers������������������������������������������������������������������������������������������������������������������������������������ 160
Demonstration 4����������������������������������������������������������������������������������������������������������������������� 160
Output���������������������������������������������������������������������������������������������������������������������������������� 161
Analysis������������������������������������������������������������������������������������������������������������������������������� 161
Demonstration 5����������������������������������������������������������������������������������������������������������������������� 163
Output���������������������������������������������������������������������������������������������������������������������������������� 165
Analysis������������������������������������������������������������������������������������������������������������������������������� 166
Interface Indexer����������������������������������������������������������������������������������������������������������������������� 166

ix
Table of Contents

Demonstration 6����������������������������������������������������������������������������������������������������������������������� 167


Output���������������������������������������������������������������������������������������������������������������������������������� 168
Quiz������������������������������������������������������������������������������������������������������������������������������������� 168
Answer�������������������������������������������������������������������������������������������������������������������������������� 170
Analysis������������������������������������������������������������������������������������������������������������������������������� 170
Summary���������������������������������������������������������������������������������������������������������������������������������� 172

Chapter 7: Understanding Class Variables����������������������������������������������������������� 173


Class Variables�������������������������������������������������������������������������������������������������������������������������� 173
Demonstration 1����������������������������������������������������������������������������������������������������������������������� 173
Output���������������������������������������������������������������������������������������������������������������������������������� 174
Analysis������������������������������������������������������������������������������������������������������������������������������� 174
Discussions on Static Methods������������������������������������������������������������������������������������������������� 178
Demonstration 2����������������������������������������������������������������������������������������������������������������������� 178
Output���������������������������������������������������������������������������������������������������������������������������������� 179
Demonstration 3����������������������������������������������������������������������������������������������������������������������� 180
Output���������������������������������������������������������������������������������������������������������������������������������� 181
Analysis������������������������������������������������������������������������������������������������������������������������������� 182
Discussions on Static Constructors������������������������������������������������������������������������������������������ 182
Demonstration 4����������������������������������������������������������������������������������������������������������������������� 183
Output���������������������������������������������������������������������������������������������������������������������������������� 184
Analysis������������������������������������������������������������������������������������������������������������������������������� 184
Summary���������������������������������������������������������������������������������������������������������������������������������� 186

Chapter 8: Analysis of Some Key Comparisons in C#������������������������������������������� 187


Implicit Casting vs. Explicit Casting������������������������������������������������������������������������������������������ 187
Boxing vs. UnBoxing����������������������������������������������������������������������������������������������������������������� 188
Demonstration 1����������������������������������������������������������������������������������������������������������������������� 190
Output���������������������������������������������������������������������������������������������������������������������������������� 191
Analysis������������������������������������������������������������������������������������������������������������������������������� 191

x
Table of Contents

Demonstration 2����������������������������������������������������������������������������������������������������������������������� 191


Output���������������������������������������������������������������������������������������������������������������������������������� 192
Analysis������������������������������������������������������������������������������������������������������������������������������� 193
Demonstration 3����������������������������������������������������������������������������������������������������������������������� 193
Analysis������������������������������������������������������������������������������������������������������������������������������� 194
Output���������������������������������������������������������������������������������������������������������������������������������� 194
Upcasting vs. Downcasting������������������������������������������������������������������������������������������������������� 195
Demonstration 4����������������������������������������������������������������������������������������������������������������������� 195
Output���������������������������������������������������������������������������������������������������������������������������������� 197
Analysis������������������������������������������������������������������������������������������������������������������������������� 197
Quiz������������������������������������������������������������������������������������������������������������������������������������� 198
Output���������������������������������������������������������������������������������������������������������������������������������� 198
Analysis������������������������������������������������������������������������������������������������������������������������������� 198
is vs. as������������������������������������������������������������������������������������������������������������������������������������� 199
Demonstration 5: The Use of the “is” Keyword������������������������������������������������������������������������� 199
Output���������������������������������������������������������������������������������������������������������������������������������� 201
Analysis������������������������������������������������������������������������������������������������������������������������������� 202
Output���������������������������������������������������������������������������������������������������������������������������������� 203
Demonstration 6: The Use of the “as” Keyword������������������������������������������������������������������������ 203
Output���������������������������������������������������������������������������������������������������������������������������������� 205
Analysis������������������������������������������������������������������������������������������������������������������������������� 205
Passing Value Types by Value vs. Passing Value Types by Reference (with ref vs. out)������������ 205
Demonstration 7: Passing Value Type by Value������������������������������������������������������������������������� 206
Output���������������������������������������������������������������������������������������������������������������������������������� 206
Analysis������������������������������������������������������������������������������������������������������������������������������� 207
The ref Parameter vs. the out Parameter���������������������������������������������������������������������������������� 207
Demonstration 8����������������������������������������������������������������������������������������������������������������������� 207
Output���������������������������������������������������������������������������������������������������������������������������������� 207
Analysis������������������������������������������������������������������������������������������������������������������������������� 208

xi
Table of Contents

Demonstration 9 : The Use of the “out” Parameter������������������������������������������������������������������� 208


Output���������������������������������������������������������������������������������������������������������������������������������� 209
Analysis������������������������������������������������������������������������������������������������������������������������������� 209
Quiz������������������������������������������������������������������������������������������������������������������������������������� 210
Answer�������������������������������������������������������������������������������������������������������������������������������� 210
Analysis������������������������������������������������������������������������������������������������������������������������������� 210
Demonstration 10: Passing a Reference Type as Value������������������������������������������������������������ 211
Output���������������������������������������������������������������������������������������������������������������������������������� 211
Demonstration 11: A Case Study with Array Elements�������������������������������������������������������������� 212
Output���������������������������������������������������������������������������������������������������������������������������������� 213
Analysis������������������������������������������������������������������������������������������������������������������������������� 213
Quiz������������������������������������������������������������������������������������������������������������������������������������� 214
Output���������������������������������������������������������������������������������������������������������������������������������� 215
Analysis������������������������������������������������������������������������������������������������������������������������������� 215
Demonstration 12: A Method Returning Multiple Values����������������������������������������������������������� 215
Output���������������������������������������������������������������������������������������������������������������������������������� 216
A Brief Comparison of C# Types������������������������������������������������������������������������������������������������ 216
Value Types and Reference Types��������������������������������������������������������������������������������������������� 217
Demonstration 13: Value Types vs. Reference Types���������������������������������������������������������������� 218
Output���������������������������������������������������������������������������������������������������������������������������������� 219
Analysis������������������������������������������������������������������������������������������������������������������������������� 219
Pointer Types����������������������������������������������������������������������������������������������������������������������������� 220
Note������������������������������������������������������������������������������������������������������������������������������������� 220
Demonstration 14: Pointer Types���������������������������������������������������������������������������������������������� 221
Output���������������������������������������������������������������������������������������������������������������������������������� 222
Analysis������������������������������������������������������������������������������������������������������������������������������� 222
const vs. readonly��������������������������������������������������������������������������������������������������������������������� 223
Demonstration 15: The Use of the “const” Keyword����������������������������������������������������������������� 224
Output���������������������������������������������������������������������������������������������������������������������������������� 224
Quiz������������������������������������������������������������������������������������������������������������������������������������� 225
Answer�������������������������������������������������������������������������������������������������������������������������������� 225

xii
Table of Contents

Quiz������������������������������������������������������������������������������������������������������������������������������������� 225
Answer�������������������������������������������������������������������������������������������������������������������������������� 225
Quiz������������������������������������������������������������������������������������������������������������������������������������� 226
Answer�������������������������������������������������������������������������������������������������������������������������������� 226
Quiz������������������������������������������������������������������������������������������������������������������������������������� 226
Answer�������������������������������������������������������������������������������������������������������������������������������� 227
Quiz������������������������������������������������������������������������������������������������������������������������������������� 227
Answer�������������������������������������������������������������������������������������������������������������������������������� 227
Summary���������������������������������������������������������������������������������������������������������������������������������� 229

Chapter 9: A Quick Recap of OOP Principles in C#����������������������������������������������� 231


Quiz������������������������������������������������������������������������������������������������������������������������������������������� 231
Answers������������������������������������������������������������������������������������������������������������������������������������ 231
Note������������������������������������������������������������������������������������������������������������������������������������������ 234
Demonstration 1: Composition to Handle the Preceding Problem�������������������������������������������� 236
Output���������������������������������������������������������������������������������������������������������������������������������� 238
Analysis������������������������������������������������������������������������������������������������������������������������������� 238
Demonstration 2: An Aggregation Example������������������������������������������������������������������������������� 238
Output���������������������������������������������������������������������������������������������������������������������������������� 240
Analysis������������������������������������������������������������������������������������������������������������������������������� 241
Note������������������������������������������������������������������������������������������������������������������������������������� 241
Summary���������������������������������������������������������������������������������������������������������������������������������� 242

Part II: Get Familiar with Some Advanced Concepts������������������������� 243


Chapter 10: Delegates and Events������������������������������������������������������������������������ 245
Introduction to Delegates���������������������������������������������������������������������������������������������������������� 245
A Formal Definition�������������������������������������������������������������������������������������������������������������� 246
Demonstration 1����������������������������������������������������������������������������������������������������������������������� 246
Output���������������������������������������������������������������������������������������������������������������������������������� 247
Make Your Code Size Short������������������������������������������������������������������������������������������������� 247

xiii
Table of Contents

Demonstration 2����������������������������������������������������������������������������������������������������������������������� 248


Output���������������������������������������������������������������������������������������������������������������������������������� 249
Analysis������������������������������������������������������������������������������������������������������������������������������� 250
Quiz������������������������������������������������������������������������������������������������������������������������������������� 250
Answer�������������������������������������������������������������������������������������������������������������������������������� 251
Multicast Delegates/Chaining Delegates���������������������������������������������������������������������������������� 251
Demonstration 3����������������������������������������������������������������������������������������������������������������������� 251
Output���������������������������������������������������������������������������������������������������������������������������������� 252
Quiz������������������������������������������������������������������������������������������������������������������������������������� 253
Output���������������������������������������������������������������������������������������������������������������������������������� 254
Analysis������������������������������������������������������������������������������������������������������������������������������� 254
Covariance and Contravariance in Delegates��������������������������������������������������������������������������� 255
Covariance in Delegates/Method Group Variance���������������������������������������������������������������� 256
Demonstration 4����������������������������������������������������������������������������������������������������������������������� 256
Output���������������������������������������������������������������������������������������������������������������������������������� 257
Analysis������������������������������������������������������������������������������������������������������������������������������� 257
Contravariance in Delegates������������������������������������������������������������������������������������������������ 257
Demonstration 5����������������������������������������������������������������������������������������������������������������������� 258
Output���������������������������������������������������������������������������������������������������������������������������������� 259
Analysis������������������������������������������������������������������������������������������������������������������������������� 259
Events��������������������������������������������������������������������������������������������������������������������������������������� 260
Steps to Implement a Simple Event in C#��������������������������������������������������������������������������� 261
Demonstration 6����������������������������������������������������������������������������������������������������������������������� 262
Output���������������������������������������������������������������������������������������������������������������������������������� 263
Passing Data with Event Arguments����������������������������������������������������������������������������������������� 264
Demonstration 7����������������������������������������������������������������������������������������������������������������������� 265
Output���������������������������������������������������������������������������������������������������������������������������������� 267
Analysis������������������������������������������������������������������������������������������������������������������������������� 267
Event Accessors������������������������������������������������������������������������������������������������������������������������ 267

xiv
Table of Contents

Demonstration 8����������������������������������������������������������������������������������������������������������������������� 270


Output���������������������������������������������������������������������������������������������������������������������������������� 273
Summary���������������������������������������������������������������������������������������������������������������������������������� 274

Chapter 11: Flexibilities with Anonymous Functions������������������������������������������� 275


Anonymous Methods and Lamda Expressions�������������������������������������������������������������������������� 275
Demonstration 1����������������������������������������������������������������������������������������������������������������������� 276
Output���������������������������������������������������������������������������������������������������������������������������������� 277
Analysis������������������������������������������������������������������������������������������������������������������������������� 277
Func, Action, and Predicate Delegates�������������������������������������������������������������������������������������� 279
Func Delegates�������������������������������������������������������������������������������������������������������������������� 279
Action Delegates����������������������������������������������������������������������������������������������������������������� 281
Predicate Delegates������������������������������������������������������������������������������������������������������������ 281
Demonstration 2����������������������������������������������������������������������������������������������������������������������� 282
Output���������������������������������������������������������������������������������������������������������������������������������� 283
Summary���������������������������������������������������������������������������������������������������������������������������������� 284

Chapter 12: Generics�������������������������������������������������������������������������������������������� 285


Comparison between Generic and Non-Generic Programs������������������������������������������������������� 285
Demonstration 1: A Non-Generic Program�������������������������������������������������������������������������������� 285
Output���������������������������������������������������������������������������������������������������������������������������������� 286
Demonstration 2: A Generic Program���������������������������������������������������������������������������������������� 287
Output���������������������������������������������������������������������������������������������������������������������������������� 288
Analysis������������������������������������������������������������������������������������������������������������������������������� 288
Further Analysis������������������������������������������������������������������������������������������������������������������� 289
Note������������������������������������������������������������������������������������������������������������������������������������� 289
Demonstration 3����������������������������������������������������������������������������������������������������������������������� 290
Output���������������������������������������������������������������������������������������������������������������������������������� 290
Analysis ������������������������������������������������������������������������������������������������������������������������������ 291
Demonstration 4����������������������������������������������������������������������������������������������������������������������� 291
Output���������������������������������������������������������������������������������������������������������������������������������� 292
Analysis������������������������������������������������������������������������������������������������������������������������������� 292

xv
Table of Contents

Demonstration 5: Exercise on Self-Referenced Generic Types������������������������������������������������� 293


Output���������������������������������������������������������������������������������������������������������������������������������� 295
Analysis������������������������������������������������������������������������������������������������������������������������������� 295
A Special Keyword Default�������������������������������������������������������������������������������������������������������� 295
Demonstration 6����������������������������������������������������������������������������������������������������������������������� 295
Output���������������������������������������������������������������������������������������������������������������������������������� 296
Analysis������������������������������������������������������������������������������������������������������������������������������� 296
Demonstration 7: Assignment��������������������������������������������������������������������������������������������������� 296
Output���������������������������������������������������������������������������������������������������������������������������������� 299
Generic Constraints������������������������������������������������������������������������������������������������������������������� 299
Demonstration 8����������������������������������������������������������������������������������������������������������������������� 299
Output���������������������������������������������������������������������������������������������������������������������������������� 301
Note������������������������������������������������������������������������������������������������������������������������������������� 302
Quiz������������������������������������������������������������������������������������������������������������������������������������� 303
Answer�������������������������������������������������������������������������������������������������������������������������������� 303
Covariance and Contravariance������������������������������������������������������������������������������������������������ 303
Demonstration 9: Covariance with Generic Interfaces�������������������������������������������������������������� 307
Output���������������������������������������������������������������������������������������������������������������������������������� 309
Analysis������������������������������������������������������������������������������������������������������������������������������� 309
Demonstration 10: Contravariance with Generic Delegates������������������������������������������������������ 309
Output���������������������������������������������������������������������������������������������������������������������������������� 311
Analysis������������������������������������������������������������������������������������������������������������������������������� 311
Summary���������������������������������������������������������������������������������������������������������������������������������� 312

Chapter 13: Exception Handling��������������������������������������������������������������������������� 313


Discussions on Exception Handling������������������������������������������������������������������������������������������ 313
Definition����������������������������������������������������������������������������������������������������������������������������������� 313
Demonstration 1����������������������������������������������������������������������������������������������������������������������� 314
Output���������������������������������������������������������������������������������������������������������������������������������� 315
Demonstration 2����������������������������������������������������������������������������������������������������������������������� 316
Output���������������������������������������������������������������������������������������������������������������������������������� 317
Analysis������������������������������������������������������������������������������������������������������������������������������� 317
xvi
Table of Contents

Demonstration 3����������������������������������������������������������������������������������������������������������������������� 321


Output���������������������������������������������������������������������������������������������������������������������������������� 324
Analysis������������������������������������������������������������������������������������������������������������������������������� 325
Quiz������������������������������������������������������������������������������������������������������������������������������������� 325
Demonstration 4����������������������������������������������������������������������������������������������������������������������� 325
Output���������������������������������������������������������������������������������������������������������������������������������� 326
Analysis������������������������������������������������������������������������������������������������������������������������������� 326
Other Variations of the catch Clause����������������������������������������������������������������������������������� 327
Quiz������������������������������������������������������������������������������������������������������������������������������������� 327
Answer�������������������������������������������������������������������������������������������������������������������������������� 328
Quiz������������������������������������������������������������������������������������������������������������������������������������� 328
Answer�������������������������������������������������������������������������������������������������������������������������������� 328
Explanation�������������������������������������������������������������������������������������������������������������������������� 328
Demonstration 5����������������������������������������������������������������������������������������������������������������������� 330
Output���������������������������������������������������������������������������������������������������������������������������������� 331
Demonstration 6����������������������������������������������������������������������������������������������������������������������� 332
Output���������������������������������������������������������������������������������������������������������������������������������� 334
Analysis������������������������������������������������������������������������������������������������������������������������������� 334
Creating a Custom Exception���������������������������������������������������������������������������������������������������� 335
Demonstration 7����������������������������������������������������������������������������������������������������������������������� 336
Output���������������������������������������������������������������������������������������������������������������������������������� 338
Analysis������������������������������������������������������������������������������������������������������������������������������� 338
Summary���������������������������������������������������������������������������������������������������������������������������������� 339

Chapter 14: Memory Cleanup������������������������������������������������������������������������������� 341


How the Garbage Collector Works�������������������������������������������������������������������������������������������� 342
Three Phases of Garbage Collection������������������������������������������������������������������������������������ 342
Three Cases to invoke the Garbage Collector���������������������������������������������������������������������� 343
Demonstration 1����������������������������������������������������������������������������������������������������������������������� 343
Output���������������������������������������������������������������������������������������������������������������������������������� 347
Analysis������������������������������������������������������������������������������������������������������������������������������� 347

xvii
Table of Contents

Memory Leak Analysis�������������������������������������������������������������������������������������������������������������� 351


Demonstration 2����������������������������������������������������������������������������������������������������������������������� 352
Snapshots from Diagnostic Tool������������������������������������������������������������������������������������������ 354
Demonstration 3����������������������������������������������������������������������������������������������������������������������� 355
Snapshots from CLR Profiler����������������������������������������������������������������������������������������������� 357
Analysis������������������������������������������������������������������������������������������������������������������������������� 357
Let us modify the program�������������������������������������������������������������������������������������������������� 359
Analysis������������������������������������������������������������������������������������������������������������������������������� 361
Demonstration 4����������������������������������������������������������������������������������������������������������������������� 363
Output���������������������������������������������������������������������������������������������������������������������������������� 364
Demonstration 5����������������������������������������������������������������������������������������������������������������������� 365
Output���������������������������������������������������������������������������������������������������������������������������������� 366
Demonstration 6����������������������������������������������������������������������������������������������������������������������� 366
Output���������������������������������������������������������������������������������������������������������������������������������� 367
Quiz������������������������������������������������������������������������������������������������������������������������������������� 368
Output���������������������������������������������������������������������������������������������������������������������������������� 370
Quiz������������������������������������������������������������������������������������������������������������������������������������� 370
Answer�������������������������������������������������������������������������������������������������������������������������������� 370
Analysis������������������������������������������������������������������������������������������������������������������������������� 370
Summary���������������������������������������������������������������������������������������������������������������������������������� 371

Part III: Become a Hero in the Real World����������������������������������������� 373


Chapter 15: An Introduction to Design Patterns��������������������������������������������������� 375
Introduction������������������������������������������������������������������������������������������������������������������������������� 375
Key Points��������������������������������������������������������������������������������������������������������������������������������� 376
Singleton Pattern���������������������������������������������������������������������������������������������������������������������� 379
GoF Definition���������������������������������������������������������������������������������������������������������������������� 379
Concept������������������������������������������������������������������������������������������������������������������������������� 379
A Real-life Example������������������������������������������������������������������������������������������������������������� 379
A Computer-World Example������������������������������������������������������������������������������������������������� 379
Illustration��������������������������������������������������������������������������������������������������������������������������� 379

xviii
Table of Contents

Class Diagram��������������������������������������������������������������������������������������������������������������������� 380


Solution Explorer View��������������������������������������������������������������������������������������������������������� 380
Discussion��������������������������������������������������������������������������������������������������������������������������� 381
Implementation������������������������������������������������������������������������������������������������������������������� 381
Challenges��������������������������������������������������������������������������������������������������������������������������� 383
Q&A Session������������������������������������������������������������������������������������������������������������������������ 384
Adapter Pattern������������������������������������������������������������������������������������������������������������������������� 387
GoF Definition���������������������������������������������������������������������������������������������������������������������� 387
Concept������������������������������������������������������������������������������������������������������������������������������� 387
A Real-Life Example������������������������������������������������������������������������������������������������������������ 387
A Computer-World Example������������������������������������������������������������������������������������������������� 388
Illustration��������������������������������������������������������������������������������������������������������������������������� 388
Class Diagram��������������������������������������������������������������������������������������������������������������������� 389
Directed Graph Document��������������������������������������������������������������������������������������������������� 389
Solution Explorer View��������������������������������������������������������������������������������������������������������� 390
Implementation������������������������������������������������������������������������������������������������������������������� 390
Solution Explorer View��������������������������������������������������������������������������������������������������������� 394
Implementation������������������������������������������������������������������������������������������������������������������� 394
Q&A Session������������������������������������������������������������������������������������������������������������������������ 399
Visitor Pattern��������������������������������������������������������������������������������������������������������������������������� 400
GoF Definition���������������������������������������������������������������������������������������������������������������������� 400
Concept������������������������������������������������������������������������������������������������������������������������������� 400
A Real-Life Example������������������������������������������������������������������������������������������������������������ 400
A Computer-World Example������������������������������������������������������������������������������������������������� 400
Illustration��������������������������������������������������������������������������������������������������������������������������� 401
Class Diagram��������������������������������������������������������������������������������������������������������������������� 402
Solution Explorer View��������������������������������������������������������������������������������������������������������� 403
Implementation������������������������������������������������������������������������������������������������������������������� 403
Q&A Session������������������������������������������������������������������������������������������������������������������������ 405
Summary���������������������������������������������������������������������������������������������������������������������������������� 406

xix
Table of Contents

Chapter 16: Winning Notes and the Road Ahead�������������������������������������������������� 407

Appendix A: Collect the Raw Materials���������������������������������������������������������������� 409


F undamentals��������������������������������������������������������������������������������������������������������������������������� 409
Theory��������������������������������������������������������������������������������������������������������������������������������� 409
Selection Statements���������������������������������������������������������������������������������������������������������������� 416
Types of Selection��������������������������������������������������������������������������������������������������������������� 416
An Example of if-else���������������������������������������������������������������������������������������������������������� 416
An Example of switch Statements��������������������������������������������������������������������������������������� 418
Iteration Statements����������������������������������������������������������������������������������������������������������������� 423
Demonstration��������������������������������������������������������������������������������������������������������������������� 424
Demonstration��������������������������������������������������������������������������������������������������������������������� 425
Jump Statements���������������������������������������������������������������������������������������������������������������������� 431
Demonstration��������������������������������������������������������������������������������������������������������������������� 431
Miscellaneous��������������������������������������������������������������������������������������������������������������������������� 435
Strings��������������������������������������������������������������������������������������������������������������������������������������� 437
Questions/Answers with code segments���������������������������������������������������������������������������� 437
Arrays���������������������������������������������������������������������������������������������������������������������������������������� 449
Single Dimensional Arrays��������������������������������������������������������������������������������������������������� 449
Demonstration��������������������������������������������������������������������������������������������������������������������� 449
Demonstration��������������������������������������������������������������������������������������������������������������������� 451
Demonstration��������������������������������������������������������������������������������������������������������������������� 453
Enumerations���������������������������������������������������������������������������������������������������������������������������� 460
Demonstration��������������������������������������������������������������������������������������������������������������������� 460
Demonstration��������������������������������������������������������������������������������������������������������������������� 462
Demonstration��������������������������������������������������������������������������������������������������������������������� 466
Structures��������������������������������������������������������������������������������������������������������������������������������� 471
Demonstration��������������������������������������������������������������������������������������������������������������������� 471
Demonstration��������������������������������������������������������������������������������������������������������������������� 472

xx
Table of Contents

Appendix B: FAQ��������������������������������������������������������������������������������������������������� 481

Appendix C: References���������������������������������������������������������������������������������������� 487

Index��������������������������������������������������������������������������������������������������������������������� 489

xxi
Foreword by Ambrose Rajendram
I have spent most of my career working in R&D and related
activities. During this time, I have come in contact with
many engineers across many disciplines and of differing
caliber and attitudes. As a rule, engineers spend most of
their life acquiring knowledge, which is even truer in today’s
fast-changing technological landscape. Vaskaran is one such
engineer who is on an eternal quest to try new boundaries.
What makes Vaskaran different, though, is that he has an
unbridled passion to share his knowledge and make it
available to the world. It is an honor and a privilege to write
this foreword.
In the connected world we live in, there is an abundance of knowledge. It sometimes
seems that textbooks are superfluous, as this information is available free on the Internet.
However, what this book does is take the reader through a set of logical steps from the basics
to advanced concepts. This flow is very important to understand the fundamental building
blocks. Once the reader has a grasp of this, it will be relatively easy to advance further.
This book concentrates on what is required to understand the subject and leaves
out unnecessary things. Each chapter introduces a new concept and the author has
anticipated questions that the reader may have and preempts this through simple Q&A
analogies as would happen in a classroom. This provides insights that lead to a deeper
understanding of the concepts.
Object-oriented programming is the most essential concept in software engineering
today and understanding this is crucial to good programming. The author has done
a phenomenal job of presenting this in a simple way that is easy to understand. Use
this book as a companion guide on your journey through the complex world of object-­
oriented programming. I hope that this book will be as useful to you as it was to me.
—Ambrose Rajendram

xxiii
Foreword by Ambrose Rajendram

About Ambrose Rajendram


Ambrose is a Master Technologist at Hewlett-Packard’s R&D Centre in India. He is an
electronics engineer by education but his passion for technology has led him to different
areas, from mechanical engineering to robotics and machine learning. He is presently
working on applying machine learning to robotics to solve everyday problems.

xxiv
Foreword by Siddhartha Ghosh
There is no dearth of books on any programming language,
particularly on a programming language as popular as C#.
There are definitive textbooks by authors who are active
contributors to the development of the language. Most of
the time, however, these books prove too challenging for a
normal reader to understand. On the other hand, there are
books that are very easy to read, but they compromise the
accuracy of the concepts covered. Vaskaran, having been a
teacher himself in the initial phase of his career, understands
the challenges faced by the students in developing a solid foundation in programming.
His unique student-teacher dialog approach provides the reader a strong foundation on
fundamental concepts without making matters overly complex. In addition to the strong
fundamentals, Vaskaran has also included some crucial pieces of information from his
professional life. The chapter on memory cleanup is an example of this. I am very sure
that this book is going to provide the readers a good understanding of the topics in a
clear and interesting way.
—Siddhartha Ghosh

About Siddhartha Ghosh


Siddhartha is postgraduate in statistics and information technology. He is working as
a Solutions Architect in enterprise print domain at Hewlett-Packard’s R&D division in
Bangalore. He has more than 18 years of experience in the IT industry in various roles and
capacities. He obtained his MBA in quality management and he always tries to discover
ways in which he can apply his acquired skills set at work.

xxv
About the Author
Vaskaran Sarcar, ME (software engineering), MCA, is
a Senior Software Engineer and Team Lead in Hewlett-
Packard’s R&D Centre in India. He has more than 12
years of experience in education and the IT industry. He
is an alumnus of prestigious institutions in India, such as
Jadavpur University, Vidyasagar University, and Presidency
University (formerly Presidency College). He started his
teaching career in 2005; later he entered the software
industry. Reading and learning new things are his passion.
You can connect with him at [email protected] or
find him on LinkedIn at https://www.linkedin.com/in/
vaskaransarcar
Other books by the author include Java Design Patterns (Apress, 2016), Interactive
Object-Oriented Programming in Java (Apress, 2016), Design Patterns in C# (CreateSpace,
2015), C# Basics: Test Your Skill (CreateSpace, 2015), and Operating System: Computer
Science Interview Series (CreateSpace, 2014).

xxvii
About the Technical Reviewers
Shekhar Kumar Maravi is a System Software Engineer,
whose main interest and expertise are programming
languages, algorithms, and data structures. He obtained his
M.Tech degree from Indian Institute of Technology, Bombay
in computer science and engineering.
After his graduation, he joined Hewlett-Packard’s
R&D hub in India to work on printer firmware. Currently,
he is working as a technical lead in Siemens Healthcare
India, Strategy and Innovation Division, on automated lab
diagnostic device firmware and software.
He can be reached by email at [email protected] or find him on LinkedIn
at https://www.linkedin.com/in/shekharmaravi

Ravindra T. Bharamoji is a Tech Lead whose main interests


and expertise are programming languages and testing. He
obtained his BE degree in electronics and communication
engineering from Karnataka University. After graduation,
he joined Wipro Technologies. Currently, he is working
as a technical lead at HP. He can be reached by email at
[email protected] or find him on LinkedIn at
­https://www.linkedin.com/in/ravindrabharamoji

xxix
Acknowledgements
First, I thank the Almighty. I sincerely believe that with His blessings only, I could
complete this book.
I extend my deepest gratitude and thanks to
Ratanlal Sarkar and Manikuntala Sarkar, my parents. With your blessings only, could
I complete the work.
Indrani, my wife, and Ambika, my daughter. Sweethearts, without your love, I could
not proceed at all. I know that we needed to limit many social gatherings and invitations
to complete this work on time.
Sambaran, my brother. Thank you for your constant encouragement.
Shekhar, Anupam, Ravindra, Idris, and Naveen, my best friends and technical
advisors. I know that whenever I was in need, your support was there. Thank you one
more time.
Ambrose Rajendram and Siddhartha Ghosh, my colleagues cum seniors. A special
thanks to you for investing your time to write a foreword for my book. When experts like
you agreed to write for me, I get additional motivation to enhance the quality of my work.
Lastly, I extend my deepest gratitude to my publisher, the editorial board members,
and everyone who directly or indirectly supported this book.

xxxi
Preface
The successful completion of a work brings relief. But if you are working to fulfill your
heart’s desire, that feeling of relief is transformed into a feeling of satisfaction. And if your
desire is to help others, the completion of that task gives you tremendous satisfaction.
The same kind of feeling is applicable here.
In 2015, I wrote C# Basics: Test your Skill, which covered some fundamental
concepts in C#. In 2017, the book was enhanced and Interactive Object-Oriented
Programming in C# was born. Immediately after its release, it became the “No.1 New
Release” in C# and object-oriented programming categories on Amazon.com. Based on
readers’ feedback, the work was further fine-tuned and this book was born. Since the
book covers more than pure object-oriented programming, the words object-oriented
and programming were removed from the title.
As an author, my initial goal was to complete this book successfully. But during the
process, my aim became higher. I wanted to make this book interactive. I did not want
to explain only in an informative way. I also wanted you to take this journey with me.
You must agree that you can complete a journey along an unknown path if you have
a partner who is not only knowledgeable but also loving and caring. Learning a new
programming language through a book is a journey, which was always on my mind.
So, in this book, I present a loving teacher to assist you throughout your journey. You
can ask him questions. He will try to answer them in a simple way. He may ask you
some questions also, so that you can think about and analyze them yourself. In most
of the cases, he will write full programs and then display the corresponding output as
screenshots, so that you get maximum benefits through the visualization process.
If you are curious to know about the most important and unique characteristics
of this book, I would say that it is interactive and very simple. The goal was not to
demonstrate how good a programmer I am by including typical and tough programs
using all the latest features of C#. On the contrary, the true goal is to fuel your creativity
by illustrating the core programming concepts of C#. The word core is more important
than the latest when you are learning a new technology. Whatever is the latest today, will
be outdated tomorrow. But “core concepts” are evergreen.

xxxiii
Exploring the Variety of Random
Documents with Different Content
— Hyvästi!

— Hyvästi!…

Kmicic astui ovea kohti, mutta kääntyi äkisti ympäri, riensi Oleńkan
luo, tarttui hänen kumpaankin käteensä ja sanoi:

— Kristuksen nimessä! Tahdotko, että minä kuolleena syöksyisin


hevoseltani maahan?

Oleńka hyrskähti itkuun. Andrzej kiersi käsivartensa tytön ympäri


ja syleili tuota hytkähtelevää vartaloa hokien hampaittensa välistä:

— Lyö minua, lyö, älä sääli!… Herkeä jo itkemästä, rakas Oleńka!


Minä teen mitä vain haluat. Minä lähetän ne pois… sovitan Upitan
asian… minä alan elää toisin… sillä minä rakastan sinua… Hyvä
Jumala, sydämeni on haljeta… minä teen kaikki, kunhan et vain
itke… ja rakastat minua edelleen…

Näin hän neitoaan rauhoitteli ja lohdutti. Oleńka pyyhki kyynelensä


ja sanoi:

— Lähtekää nyt. Kyllä Jumala sovittaa välimme. Sydämessäni ei


ole vihaa… vaan tuskaa…

Kuu kumotti jo korkealla yli valkoisten kenttien, kun herra Andrzej


ajoi joukkonsa etunenässä Lubicziin. Hänen joukkonsa kiemurteli
kuin käärme leveätä tietä pitkin. He ajoivat ensin Wolmontowiczeen,
mutta sieltä jäätyneitten soitten yli oikotietä pitkin.

Vääpeli Soroka lähestyi herra Andrzejta ja kysyi:

— Herra ratsumestari, mihin me majoitumme Lubiczissa?


— Pois tieltä! — vastasi Kmicic ja ajoi edelle sanomatta
kenellekään mitään. Hänen sydämessään kamppailivat suru ja viha;
toisinaan hän tunsi suuttumusta omaa itseään kohtaan. Tämä oli
ensimmäinen yö hänen elämässään, jolloin hän teki tiliä
omantuntonsa kanssa, ja tämä painosti häntä kovemmin kuin
raskain haarniska. Maine tahrattuna hän oli saapunut näille maille, ja
mitä hän oli tehnyt korjatakseen sitä? Jo ensimmäisenä päivänä hän
oli antanut ammuskella ja viettää irstasta elämää Lubiczissa. Sitten:
sotilaat olivat tehneet vääryyttä Vielä pahempaa: hän oli hyökännyt
Poniewieźin viranomaisten kimppuun, kaatanut miehet, ajanut
upseereita alastomina pakkasessa… Häntä vastaan tullaan tästä
nostamaan oikeusjuttu, ja hän häviää. Eikä hän voi nyt, kuten
ennen, haalia kokoon asestettua roskajoukkoa ja nauraa korkealle
oikeudelle, sillä hän aikoo naida, asettua Wodoktyyn asumaan ja
ottaa vastaan viran vakituisessa armeijassa. Ja vaikkapa hän
välttäisikin tuomion, niin kaikki nämä ilkityöt, jotka eivät ole
arvokkaalle soturille sopivia, tuottaisivat hänelle kuitenkin
rangaistuksen. Ehkä pahat työt voitaisiinkin sovittaa, mutta muisto
niistä tulisi kuitenkin elämään ihmisten mielissä, hänen
omassatunnossaan ja Oleńkan sydämessä…

Hän muisteli, ettei Oleńka ollut kuitenkaan ajanut häntä luotaan,


vaan olipa tytön silmistä saattanut lukea anteeksiantamusta, ja
Oleńka oli hänestä hyvä kuin enkeli. Hänen teki silloin mielensä
kääntyä ympäri, ajaa minkä hevosesta lähtee, heittäytyä Oleńkan
jalkain juureen, pyytää anteeksi ja suudella niitä suloisia silmiä,
joitten kyynelet olivat tänään hänenkin kasvojaan kostuttaneet.

Eipä puuttunut paljoa, ettei hän purskahtanut itkemään, ja hän


tunsi, ettei ollut eläessään rakastanut ketään niin kovasti kuin tuota
tyttöä. »Vannon kautta Pyhän Neitsyen», — ajatteli hän, — »että
teen kaikki, mitä hän tahtoo. Minä annan kumppaneilleni runsaat
lahjat ja lähetän heidät sitten maailman ääriin, sillä totta on, että he
johdattavat minut pahaan.» Juolahtipa miehen mieleen, että
Lubiczissa hän varmaan tapaa heidät humalassa tai rehkimässä
tyttöjen kanssa, ja hänet valtasi sellainen viha, että hän olisi
hakannut maahan omat soturinsakin.

— Kyllä minä heille näytän! — mutisi hän. — Vielä eivät ole minua
tällaisena nähneet…

Ja hän kannusti hevostaan vimmatusti ja kiskoi ohjaksista. Soroka,


joka äkkäsi sen, huomautti sotilaille:

— Nyt on ratsumestari ärjyllä päällä. Jumala varjelkoon


joutumasta hänen kynsiinsä!

Herra Andrzej oli todella raivoissaan. Ympärillä vallitsi syvä


hiljaisuus. Kuu kumotti kirkkaasti, tuhannet tähdet tuikkivat, tuulen
henki ei hievahduttanut puitten oksia — mutta ritarin sydämessä
raivosi myrsky. Matka Lubicziin tuntui hänestä pitemmältä kuin
koskaan. Synkät metsät ja valkeat kentät herättivät hänessä pelkoa,
jollaista hän ei ollut vielä tuntenut. Sitäpaitsi painosti häntä
väsymyskin, sillä koko edellisen yön hän oli viettänyt Upitassa
helussa ja melussa. Mutta hän päätti voittaa sekä väsymyksen että
mielenapeuden ja kääntyi joukkoon päin huutaen:

— Täyttä vauhtia!

Hän singahti lentoon kuin nuoli, ja koko joukko seurasi hänen


kintereillään. He kiitivät halki metsien ja tasankojen kuin lauma
kummittelevia ristiritareja, joita samogitialaisten sanojen mukaan
saattaa nähdä lentävän ilmassa kirkkaina, kuutamoisina öinä
ennustaen sotaa ja onnettomuutta. Kavioitten kopse kiiri heidän
edellään ja jäljessään, ja hevoset alkoivat höyrytä. Vasta kun
Lubiczin lumiset katot alkoivat häämöttää, he hiljensivät vauhtia.

Kartanon portti oli selkoisen selällään. Kmicic ihmetteli, ettei


kukaan tullut ulos katsomaan tulijoita, vaikka koko pihamaa täyttyi
hevosista ja miehistä. Hän oli odottanut näkevänsä ikkunat
valaistuina ja kuulevansa Uhlikin tshekanikan säveleitä ja hurjaa
humua. Mutta ainoastaan ruokasalin kahden ikkunan läpi tuikahteli
himmeä tuli; muuten oli aivan pimeätä, hiljaista, kolkkoa. Vääpeli
Soroka hyppäsi ensimmäisenä hevosen selästä ja astui ratsumestarin
luo pitämään jalustinta.

— Menkää nukkumaan! — sanoi Kmicic. — Väentupa täyteen,


loput tallinvajaan! Hevoset talliin; heiniä on ladossa!

— Ymmärrän! — vastasi vääpeli.

Kmicic astui hevosen selästä alas. Eteisen ovi oli aivan auki ja
eteisessä kylmä kuin pihalla.

— Hoi! Onko siellä ketään? — huusi Kmicic. Ei vastausta.

— Hoi! — huusi hän vielä kovemmin. Hiljaista.

— Tukkihumalassa ovat! — murahti Andrzej. Ja hänet valtasi


sellainen kiukku, että hän alkoi purra hammasta. Matkalla Lubicziin
hän oli vavissut vihasta ajatellessaan tapaavansa kumppanit
juomassa ja irstailemassa, mutta nyt tämä hiljaisuus kiusoitti häntä
vieläkin enemmän.

Hän astui ruokasaliin. Suurella pöydällä paloi savuava talikynttilä


levittäen ympärilleen punertavaa hohdetta. Ilma, joka tulvahti
avatusta ovesta, sai kynttilän liekin lepattamaan, niin ettei herra
Andrzej ensinnä nähnyt mitään. Vasta kun lepatus oli laannut,
huomasi hän seinän vieressä jonon makaavia ihmisiä.

— Ovatko he juoneet itsensä kuoliaiksi, vai mitä? — mutisi hän


rauhattomasti.

Hän astui lähimmän makaavan luo. Kasvoja hän ei voinut nähdä,


ne olivat varjossa, mutta valkoisesta vyöstä ja valkoisesta
tshekanikan kotelosta hän tunsi, että se oli herra Uhlik, ja alkoi
kursailematta potkia häntä jalallaan.

— Ylös, naudat! Ylös!…

Mutta herra Uhlik makasi liikkumatta, kädet kylkiä pitkin, ja yhtä


liikkumatta olivat muutkin. Kukaan ei haukotellut, ei ojennellut, ei
herännyt, ei huutanut. Herra Kmicic pani merkille, että kaikki
makasivat selällään samassa asennossa, ja kauhea aavistus juolahti
hänen mieleensä.

Hän syöksyi pöydän luo, otti vapisevin käsin talikynttilän ja valaisi


sillä makaavien kasvoja.

Hänen hiuksensa nousivat pystyyn, sillä näky oli kerrassaan


hirvittävä… Uhlikin saattoi tuntea vain valkoisesta vyöstään, sillä
kasvot ja pää olivat yhtenä muodottomana, verisenä massana ilman
silmiä, nenää ja suuta; pitkät viikset vain pistivät esiin tästä
hirvittävästä läjästä. Herra Kmicic valaisi seuraavia… Toisena rivissä
makasi Zend hampaat purtuina yhteen ja silmät, joissa vieläkin
kuvastui kuoleman kammo, pullistuneina ulos kuopistaan.
Kolmannen, Ranickin, silmät olivat ummessa, ja kasvot täynnä
valkoisia, punaisia ja mustia täpliä. Herra Kmicic valaisi edelleen…
Neljäntenä oli herra Kokosinski, rakkain Kmicicin kumppaneista, sillä
olivathan he vanhoja naapureita. Hän näytti nukkuvan rauhallisesti,
mutta kaulassa oli ammottava haava. Viidentenä virui
jättiläiskasvuinen Kulwiec-Hippocentaurus, nuttu rinnan kohdalta
avattuna ja pää muodottomaksi ruhjottuna. Herra Kmicic vei
kynttilän kunkin kasvoille, ja kun hän vihdoin katseli kuudetta,
Rekucia, näytti hänestä kuin onnettoman silmäluomet olisivat hiukan
liikahtaneet.

Hän laski talikynttilän lattialle ja ravisti haavoitettua hiukan.

— Rekuc, Rekuc! — huusi hän. — Se olen minä, Kmicic!…

Haavoittuneen kasvot alkoivat liikkua, silmät ja huulet avautuivat,


mutta sulkeutuivat kohta jälleen.

— Se olen minä! — toisti Kmicic. Rekucin silmät avautuivat nyt


kokonaan. Hän tunsi ystävänsä ja voihki hiljaa:

— Jendrus!… Pappia!…

— Kuka on murhannut teidät?! — huusi Kmicic tarttuen tukkaansa.

— Bu-try-mit… — voihki Rekuc tuskin kuuluvasti.

Sitten hän ojensi itseään, jäykistyi, silmät sammuivat — ja hän oli


kuollut.

Kmicic meni ääneti pöydän luo, laski sille kynttilän, istuutui tuolille
ja alkoi käsillään hieroa kasvojaan kuin herännyt, joka ei vielä
itsekään tiedä, onko hän valveilla vai näkeekö unta.
Sitten hän katsoi taas ruumiita, jotka makasivat lattialla
hämärässä. Kylmä hiki pusertui hänen otsalleen, hiukset nousivat
pystyyn, ja hän huusi yht'äkkiä niin julmasti, että ikkunaruudut
helisivät kehyksissään:

— Tänne! Miehet! Tänne!

Väentuvassa nukkuvat sotilaat kuulivat huudon ja karkasivat saliin.


Kmicic osoitti ruumiita seinän vieressä.

— Murhatut! Murhatut! — sanoi hän käheällä äänellä.

Sotilaat juoksivat katsomaan ruumiita; toiset heistä sytyttivät


päreen, jolla valaisivat vainajain kasvoja. Ensimmäistä
hämmästyksen hetkeä seurasi melua ja huutoja. Tulivatpa jo nekin,
jotka olivat joutuneet talliin nukkumaan. Koko talo oli valaistu,
miehiä kuhisi, ja tässä huutojen, kysymysten ja liikkeitten
sekamelskassa makasivat vain murhatut — vastoin tapaansa —
rauhallisina ja välinpitämättöminä kaikesta. Heidän sielunsa olivat
kaikonneet kauaksi pois; ei sotatorvi eikä maljojen kilinä olisi saanut
enää heidän ruumiitaan liikkeelle.

Sotilaitten laumasta kuului yhä useammin uhkauksia ja kirouksia.


Kmicic, joka tähän saakka oli ollut kuin tajuton, ryntäsi yht'äkkiä
pystyyn ja ärjäisi:

— Hevosille!

Kaikki hyökkäsivät ovea kohti. Tuskin oli puolta tuntia kulunut, kun
satakunta ratsumiestä kiiti täyttä laukkaa leveätä, lumista tietä
pitkin, ja heidän etunenässään herra Andrzej kuin paholaisen
riivaamana, lakitta ja paljastettu miekka kädessä. Yön hiljaisuudessa
kajahteli villejä huudahduksia:

— Lyökää! Surmatkaa!…

Kuu oli juuri kohonnut öisellä taipalellaan korkeimmilleen, kun sen


hohde alkoi sulautua punertavaan valoon, joka näytti nousevan kuin
maasta. Vähitellen muuttui taivas yhä punaisemmaksi, ja vihdoin
näkyi koko seutu punertavassa valaistuksessa. Koko Butrymien
asuma laaja kylä oli yhtenä tulimerenä, ja Kmicicin villit soturit
kiitivät ympäri halki savupilvien, savuavien raunioitten ja murhasivat
kauhun turruttamaa kansaa…

Läheisten kylien asukkaat heräsivät unestaan. Missä suurempina,


missä pienempinä joukkoina kokoontui kansaa teille ja talojen
edustoille katsomaan kohti palopaikkaa ja vaihtamaan tuskallisia
huomautuksia: »Vihollinen on kai tunkeutunut Volmontowiczeen ja
polttaa kylää… Tuo ei ole mikään tavallinen tulipalo!»

Laukaukset, jotka silloin tällöin kajahtelivat palopaikalta päin,


vahvistivat tällaisia otaksumisia.

— Lähtekäämme auttamaan! — kehoittivat rohkeammat. —


Älkäämme antako veljiemme sortua!…

Kun vanhemmat näin haastelivat, olivat nuoremmat jo nousseet


hevosten selkään. Krakinowissa ja Upitassa soitettiin kirkonkelloja.

Wodoktyssa heräsi Aleksandra-neiti siihen, että joku koputti hiljaa


oveen.

— Oleńka! Nouse! — sanoi neiti Franciszka Kulwiec.


— Tule sisälle, täti! Mitä on tapahtunut?

— Wolmontowicze palaa! Kuuluu laukauksia ihan tänne saakka!


Siellä taistellaan! Jumala, ole meille armollinen!

Oleńkalta pääsi kauhun huudahdus. Hän hyppäsi vuoteestaan ja


alkoi pukeutua kiireisesti. Hänen ruumiinsa vapisi kuin kuumeessa.
Hän yksin aavisti heti, mikä vihollinen oli hyökännyt onnettomien
Butrymien kimppuun.

Hetkisen kuluttua tulivat unesta säikähtyneet tytöt itkien sisään.


Oleńka polvistui pyhimyksen kuvan eteen, ja muut seurasivat hänen
esimerkkiään. Kaikki alkoivat lukea rukousta kuolevain puolesta.

He olivat ehtineet tuskin puoliväliin rukousta, kun eteisen ovelta


kuului kovaa kolkutusta. Tytöt hypähtivät pystyyn, ja pelokas
huudahdus nousi heidän rinnoistaan.

— Älkää avatko! Älkää avatko!

Kolkutus kuului kahta kovemmin, ja saattoi jo odottaa, että ovi


tuossa tuokiossa romahtaa sisään. Ajopoika Kostek syöksyi
huoneeseen keskelle tyttöjen parvea.

— Armollinen neiti! — huusi hän. — Joku kolkuttaa oveen!


Avaanko?

— Onko hän yksin?

— Yksin on.

— Mene avaamaan!
Poika riensi ulos. Oleńka otti kynttilän ja meni ruokasaliin. Neiti
Kulwiec ja tytöt seurasivat häntä.

Hän oli tuskin ennättänyt laskea kynttilän pöydälle, kun eteisestä


kuului aseitten kalinaa, ovi narahti, ja naisten eteen ilmaantui herra
Kmicic kauhean näköisenä, verisenä, savun mustaamana,
huohottaen ja silmissä mieletön ilme.

— Hevoseni kaatui metsässä!… — huusi hän. — He ajavat minua


takaa!…

Aleksandra-neiti katsoi häntä suoraan silmiin ja kysyi:

— Oletteko polttaneet Wolmontowiczen?

— Olemme!…

Hän aikoi sanoa vielä jotakin, mutta ulkoa kuului samassa huutoa
ja kavioiden kapsetta, mikä lähestyi nopeasti.

— Paholaiset tulevat ottamaan sieluani!… Hyvä on! — huusi Kmicic


kuin pyörryksissä.

Aleksandra-neiti kääntyi tyttöjen puoleen sanoen:

— Jos kysytään, niin sanokaa, ettei täällä ole ketään. Menkää nyt
tupaan!

Sitten hän kääntyi Kmiciciin päin ja sanoi osoittaen viereistä


huonetta:

— Menkää tuonne!
Ja melkein väkisin Oleńka työnsi hänet ulos avatusta ovesta, jonka
hän heti sulki.

Sillävälin oli koko piha täyttynyt asestetuista miehistä, ja kohta


senjälkeen astuivat Butrymit, Gosciewiczit, Domaszewiczit ynnä muut
taloon. Huomattuaan emännän he pysähtyivät ruokasaliin. Oleńka,
seisoen kynttilä kädessä, sulki heiltä tien muihin huoneisiin.

— Mitä on tekeillä? Mitä asiaa? — sanoi hän silmäänsä


räpäyttämättä hurjien katseitten ja paljastettujen miekkojen edessä.

— Kmicic on sytyttänyt Wolmontowiczen tuleen! — huusivat tulijat


kuorossa. — Hän on surmannut miehiä, naisia, lapsia!…

— Me olemme tappaneet hänen kumppaninsa! — kuului Jozwa


Butrymin ääni.
— Nyt tahdomme hänen päänsä!…

— Hänen päänsä!… Verta! Surma rosvolle!

— Ottakaa hänet kiinni! — huusi neiti. — Mitä siinä seisotte!


Ottakaa kiinni!

— Eikö hän ole piiloutunut tänne? Me löysimme hänen hevosensa


metsästä…

— Täällä häntä ei ole… Ovi oli lukittu! Etsikää tallista ja vajoista!

— Hän on piiloutunut metsään! — huusi joku.

— Suu kiinni! — jyrisi Jozwa Butrymin mahtava ääni. — Oleńka


hyvä! — sanoi hän, — älä piilota häntä meiltä! Se on kirottu mies!

Oleńka kohotti molemmat kätensä ylös.


— Minä kiroan hänet, kuten tekin!

— Amen! — huudettiin. — Ensin talliin ja vajoihin, sitten metsään!


Kyllä me hänet löydämme! Surma roistolle!

— Surma! Surma!

Kuului taas aseitten kalinaa ja nopeita askelia. Takaa-ajajat


syöksyivät ulos ja nousivat hevosten selkään. Osa heistä tarkasti
tallin, navetan ja vajat — sitten alkoivat huudot hävitä metsään päin.

Aleksandra-neiti odotti, kunnes kaikkialla oli taas hiljaista. Sitten


hän koputti kuumeisesti sen huoneen oveen, jonka taakse oli
piilottanut Kmicicin.

— Täällä ei ole ketään! Tulkaa!

Herra Kmicic hoiperteli huoneesta kuin humalainen.

— Oleńka… — alkoi hän.

Oleńka ravisti hajalla olevaa tukkaansa, joka peitti viittana hänen


olkapäänsä.

— En tahdo nähdä teitä silmieni edessä! Ottakaa hevonen ja


ajakaa matkoihinne!

— Oleńka!… — voihki Kmicic ojentaen kätensä.

— Teidän kätenne ovat veriset kuin Kainin kädet! — huusi Oleńka


peräytyen, ikäänkuin hän olisi nähnyt käärmeen. — Pois! Iäksi!
KUUDES LUKU.

Harmaa aamu valkeni ja valaisi Wolmontowiczen raunioita, kyteviä


rakennusrykelmiä ja palaneita tai miekoilla silvotuita ihmisten ja
hevosten ruumiita. Kalpeita kyläläisiä oli etsimässä sammuvain hiilten
seasta rakkaitten vainajain ruumiita tai jäännöksiä omaisuudesta. Se
päivä oli murheen ja tuskan päivä koko Laudalle. Olivathan
laudalaiset kyllä voittaneet Kmicicin joukon, mutta se voitto oli
raskas ja verinen. Paitsi Butrymeja, jotka olivat menettäneet eniten,
ei ollut kylää, jossa leskivaimot eivät olisi itkeneet miehiään,
vanhemmat lapsiaan tai lapset isiään. Vaikea oli laudalaisten ollut
kukistaa hyökkääjiä, sillä sotakuntoisimmat miehet olivat poissa, ja
ukot ja pojat vain olivat ottaneet osaa taisteluun. Kmicicin joukosta
ei ollut yksikään päässyt pakoon. Toiset olivat kaatuneet
Wolmontowiczessa puolustautuessaan viimeiseen saakka, toiset
tavattiin seuraavana päivänä metsistä ja tapettiin armotta. Mutta
Kmicic itse oli kadonnut jäljettömiin. Kyllä koetettiin arvata minne
hän oli joutunut, mutta turhaan.

Jäljelläolevat Butrymit siirtyivät Wodoktyyn ja asettuivat siellä kuin


leiriin. Talo oli täynnä naisia ja lapsia. Ne, joille tilaa ei ollut, jatkoivat
matkaa Mitrunyyn, jonka Aleksandra-neiti oli luovuttanut palosta
kärsineitten käytettäväksi. Asestetut miehet vartioivat Wodoktya
sekä päivin että öin; pelättiin näet, että herra Kmicic ei pidä itseään
vielä voitettuna ja jonakin päivänä saattaa hyökätä asevoimin
ryöstämään kihlattunsa. Paikkakunnan huomatuimmat kartanot
lähettivät sinne kasakoita ja heitukoita. Wodokty näytti piiritykseen
varustautuvalta kaupungilta.

Keskellä asestettujen miesten ja puuhaavain naisten parvea kulki


surupukuinen Aleksandra-neiti kalpeana ja surullisena, kuunnellen
ihmisten valituksia ja Kmiciciin kohdistettuja kirouksia, jotka pistivät
hänen sydämeensä kuin miekanterä, sillä olihan hän tavallaan syynä
kaikkiin näihin onnettomuuksiin. Hänen tähtensähän oli
paikkakunnalle saapunut tuo mieletön mies, joka häiritsi järjestystä,
jätti jälkeensä verisiä muistoja ja hävitti kuin turkkilainen kyliä tulella
ja miekalla. Olipa ihmeellistä, että yksi ainoa mies oli voinut tehdä
niin paljon pahaa niin lyhyessä ajassa, mies, joka ei ollut varsin paha
eikä pilaantunutkaan. Aleksandra-neiti, joka parhaiten tunsi miehen,
käsitti tämän paremmin kuin muut. Herra Kmicicin ja hänen
tekojensa välillä oli kuin syvä kuilu. Mutta Aleksandra-neiti tunsi
sydämessään kipua juuri siksi, että tuo mies, johon hän oli
rakastunut nuoren sydämensä koko hehkulla, olisi voinut olla niin
toisenlainen: hänellä oli edellytykset olla mallikelpoinen ritari, sotilas
ja kansalainen, ja hän olisi voinut voittaa ihmisten rakkauden ja
siunauksen — inhon ja kirousten sijaan.

Toisinaan Aleksandra-neidistä tuntui, että jokin paha voima ajoi


Kmiciciä väkivaltaisiin tekoihin, ja silloin hänen tuli kovasti sääli
onnetonta miestä, ja rakkaus leimahti taas hänen sydämessään.

Sillävälin sateli haasteita herra Kmicicille piirikaupungissa, ja


Storöstä Hlebowicz lähetti sotilaita etsimään rikoksentekijää.

Laki oli häntä rankaiseva.


Mutta oikeuden tuomioista oli vielä pitkä matka niitten
toimeenpanoon, sillä epäjärjestys kasvoi valtakunnassa
kasvamistaan. Hirvittävä sota uhkasi maata ja lähestyi verisin askelin
Samogitiaa. Mahtava Radziwill Birźesta, joka yksin olisi pystynyt
tekemään viholliselle vastarintaa, oli kokonaan hukkumaisillaan
yleisiin poliittisiin asioihin ja vielä enemmän omaa sukuaan koskeviin
suuriin suunnitelmiin, joilla hän koetti kohota muita ylemmäksi,
vaikkapa yleisen hyvän kustannuksella. Muut magnaatit ajattelivat
myös enemmän omaa itseään kuin isänmaataan. Aina kasakkasotain
alkupuolelta saakka oli valtakunnan mahtava valtiorakennus
ruvennut liitoksissaan liikkumaan.

Rikkaasta, tiheäänasutusta maasta, jossa asui ritarillista kansaa,


oli tullut vihollisten ryöstöjen esine, ja itsevaltaisuus ja väkivalta
nostivat päätään yhä korkeammalle välittämättä laista.

Sorretujen paras ja ainoa turva sortajia vastaan oli miekka. Tästä


syystä oli koko Laudakin yhä aseissa valmiina väkivoimalla torjumaan
Kmicicin väkivallan.

Kului kuukausi ilman että Kmicicistä saatiin mitään tietoja. Alettiin


hengittää vapaammin. Varakkaat tilanomistajat kutsuivat pois
Wodoktyyn lähettämänsä väen. Pikkueläjät alkoivat myös ikävöidä
työhön kotoisille konnuilleen ja läksivät toinen toisensa jälkeen pois.
Ajan kuluessa laimeni sotaisa innostus, ja köyhä maalaisaatelisto
halusi yhä enemmän rangaista karkuria oikeuden voimalla ja saada
korvausta rauhallisin keinoin. Itse Kmiciciä ei rangaistus voinut
kohdata, mutta olihan Lubicz jäljellä, suuri ja komea maatila, joka
hyvin riitti korvaamaan kaikki vauriot. Aleksandra-neiti kannatti
muuten laudalaisten naapurien päätöstä ryhtyä käymään oikeutta.
Pari kertaa saapui laudalaisia hänen luokseen neuvottelemaan, eikä
hän ainoastaan ottanut näihin neuvotteluihin osaa, vaan vieläpä johti
niitä hämmästyttäen kaikkia terävällä älyllään, jota oikeusoppinutkin
olisi voinut kadehtia. Laudalaiset tahtoivat vallata Lubiczin ja antaa
sen Butrymeille, mutta neiti oli jyrkästi sitä vastaan.

— Älkää maksako väkivaltaa väkivallalla, — sanoi hän, — sillä siten


kääntyisi teidänkin asianne pahaksi. Tulkoon oikeus ja totuus
olemaan kokonaan teidän puolellanne. Hän on mahtava mies, jolla
on paljon suhteita, ja hän löytää oikeudessa varmasti puolustajan,
joka ottaa ajaakseen hänen asiaansa, jos te annatte siihen
vähintäkään syytä, laittakaa niin, että asianne on päivänselvä ja ettei
oikeus voi muuta kuin tuomita teidän hyväksenne, vaikka se olisi
kokoonpantu vain hänen veljistään. Sanokaa Butrymeille, etteivät he
ota karjaa eikä viljelyksiä, vaan jättävät Lubiczin aivan
koskemattomaksi. Minä luovutan heille Mitrunysta mitä ikänä
tarvitsevat; siellä on kaikkea hyvää enemmän kuin milloinkaan
Wolmontowiczessa. Ja jos herra Kmicickin sattuisi palaamaan
paikkakunnalle, niin jättäkää hänet rauhaan, kunnes oikeus on
ratkaissut hänen asiansa. Muistakaa, että vain niin kauan kuin hän
on elossa, teillä on oikeus vaatia häneltä korvausta.

Näin puhui viisas ja selväjärkinen Aleksandra-neiti, ja laudalaiset


ylistivät hänen älyään ajattelematta, että asian lykkääminen saattaa
myös hyödyttää herra Andrzejta, ainakin pelastaa hänen henkensä.
Kukaties Oleńka tahtoikin pelastaa onnettoman uhkaavasta
hengenvaarasta? Oli miten hyvänsä, laudalaiset seurasivat Oleńkan
neuvoa, sillä he olivat jo ammoisista ajoista saakka tottuneet
pitämään pyhinä Billewiczien sanoja. Lubicz jäi koskemattomaksi, ja
herra Andrzej, jos hän olisi palannut, olisi saanut olla ainakin jonkin
aikaa rauhassa maatilallaan.
Mutta Kmiciciä ei vain kuulunut. Sensijaan sai Aleksandra-neiti
puolitoista kuukautta myöhemmin kirjeen, jonka toi tuntematon
mies. Kirje oli Kmiciciltä ja kuului:

»Rakastettu, kallein, kaivattu Oleńka! Jokaiselle luodulle, etenkin


ihmiselle, vieläpä kaikkein kurjimmallekin on synnynnäistä halu
saada kostaa kärsimänsä vääryys. Ja jos minä kaadoin sen kehnon
maalaisaateliston, niin — kautta Jumalani! — se ei tapahtunut
verenhimosta, vaan siksi, että he, vastoin Jumalan ja ihmisten
lakia, murhasivat minun toverini välittämättä heidän nuoruudestaan
ja jalosta syntyperästään, murhasivat julmemmin kuin kasakat ja
tataarit konsanaan. En kiellä, että yli-inhimillinen viha valtasi minut
silloin, mutta kukapa ei ymmärtäisi veljesveren sytyttämää vihaa?
Elämänsä kukoistuksessa syyttömästi murhattujen herrojen
Kokosinskin, Ranickin, Uhlikin, Rekucin, Kulwiecin ja Zendin henki
nosti minun käteni juuri sillä hetkellä, kun minä — sen Jumala
todistaa! — ajattelin rauhaa ja ystävyyttä koko Laudan aateliston
kanssa aikoen sinun suloisten neuvojesi mukaan ruveta elämään
uutta elämää. Kun kuulet minua soimattavan, niin kuule myös
minun puolustukseni ja tuomitse oikeudenmukaisesti! Minun tulee
nyt sääli noita ihmisiä Wolmontowiczessa, jossa mahdollisesti
syyttömätkin saivat kärsiä, mutta kun soturi kostaa veljensä veren,
niin hän ei erota syyllisiä ja syyttömiä eikä säästä ketään. Jumala
suokoon, ettei tämä pahentaisi minua sinun silmissäsi! Se olisi
suurin rangaistus minulle muitten syntien ja oikeutetun vihan
tähden, sillä luotasi lähdettyäni minä epätoivoisena käyn
nukkumaan ja epätoivoisena herään voimatta unohtaa sinua ja
rakkauttani. Tuomitkoon oikeus minut, onnettoman, vahvistakoot
valtiopäivät tuomion, julistakoot minut kunniattomaksi, auetkoon
maa jalkojeni alla, kaikki minä kärsin, kaikki kestän, kun sinä väin
et karkoita minua sydämestäsi. Minä teen kaikki, mitä he haluavat,
luovutan Lubiczin ja vihollisen poistuttua maasta myös maatilani
Orszassa. Minulla on rahaa maahan kaivettuna metsässä, ja he
saavat ottaa senkin, kunhan sinä vain sanot olevasi minun, kuten
isoisäsi toivoi. Sinä olet pelastanut henkeni, pelasta myöskin sieluni,
sillä minä näen, että jos sinä minut hylkäät, niin hylkää minut
Jumalakin, ja epätoivo yllyttää minua vielä pahempiin tekoihin…»

Kuka voi ymmärtää, kuka kertoa, kuinka monta myötätuntoista


ääntä Oleńkan sielussa heräsi Andrzejta puolustamaan! Rakkaus
lentää kevyesti kuin siemen tuulen mukana, mutta kun siemen on
sydämessä kasvanut puuksi, niin voi sen temmata irti vain samalla
kuin sydämenkin. Neiti Billewicz oli niitä, jotka rakastavat sydämensä
koko voimalla, ja siksipä hän kostuttikin kirjeen kyynelillään. Mutta
hän ei voinut kuitenkaan ensimmäisestä sanasta unohtaa kaikkea,
antaa kaikkea anteeksi. Kmicicin katumus oli varmaan vilpitön, mutta
hänen villi luonteensa ei ollut näitten tapahtumain tähden
muuttunut, niin että tulevaisuutta täytyi vieläkin ajatella pelolla.
Herra Andrzejlta ei olisi pitänyt vaatia sanoja, vaan tekoja. Muuten,
kuinka Oleńka olisi voinut sanoa miehelle, joka oli ollut
hukuttamaisillaan koko seudun vereen ja jota kaikki Raudassa
kirosivat: »Tule, murhista ja murhapoltoista, verestä ja kyynelistä
minä annan rakkauteni ja käteni.»

Niinpä hän vastasikin tähän tapaan:

»Olen sanonut, etten tahdo teitä tuntea ja nähdä, ja pidän


sanani, vaikka sydämeni murtuisi. Sellaisia rikoksia ja vahinkoja
kuin täällä tekemänne ei voi korvata rahalla eikä maatiloilla, koska
kuolleita ei voi herättää henkiin. Te ette myöskään menetä
ainoastaan omaisuuttanne, vaan kunnianne. Jos ne henkilöt, joitten
kodit olette polttanut ja heidät itsensä surmannut, antavat
anteeksi, niin annan minäkin. Mutta koska tätä ei milloinkaan tule
tapahtumaan, niin etsikää onneanne jostakin muualta, mutta
ennen kaikkea Jumalan anteeksiantamusta, sillä se on teille
ihmisten anteeksiantoa välttämättömämpi…»

Aleksandra-neiti kostutti joka sanan kyynelillään. Sitten hän sinetöi


kirjeen ja vei sen itse lähetille.

— Mistäpäin olet? — kysyi hän katsellen miestä, joka oli puettu


puoleksi talonpojan, puoleksi renkimiehen tavoin.

— Metsistä olen, armollinen neiti.

— Entä missä on isäntäsi?

— Sitä en saa sanoa… Mutta hän on kaukana täältä. Olen ajanut


viisi päivää ja hevoseni melkein kuoliaaksi.

— Tuossa saat taalerin, — sanoi Oleńka. — Onko isäntäsi terve?

— Terve on kuin metsähärkä.

— Eikö hän kärsi puutetta?

— Hän on rikas herra.

— Jumalan haltuun! Sano terveisiä isännällesi… odotapas… sano,


että toivon Jumalan häntä auttavan.

Mies meni — ja taas kului päiviä ja viikkoja ilman että Kmicicistä


mitään kuului. Sensijaan saapui toinen toistaan surullisempia
valtakunnan yleisiä asioita koskevia sanomia. Chowanskin johtamat
moskovalaiset joukot levisivät yhä laajemmalle yli maan. Paitsi
Ukrainaa oli jo suuri osa Suur-Puolan vojevodakuntia vihollisen
hallussa. Vain Samogitia ja muutamat muut seudut hengittivät vielä
vapaina, mutta nekin odottivat noita kutsumattomia vieraita joka
päivä. Valtakunta oli heikontunut äärimmilleen, koskei se enää
kyennyt vastustamaan vihollista, jota oli tähän saakka vähäksynyt ja
jonka kanssa oli helposti tullut aikoihin. Totta kyllä, tällä vihollisella
oli tuntuvaa apua Chmielnickin kapinasta, jota ei vieläkään ollut
saatu kukistetuksi. Mutta huolimatta kapinasta ja siitä, että maan
voimat olivat kovin uuvuksissa edellisistä sodista, sekä valtiomiehet
että sotapäälliköt vakuuttivat, että Suur-Puola yksin kykeni ei
ainoastaan vastustamaan vihollista, vaan vieläpä voitokkaasti
viemään lippunsa maan rajojen yli. Pahaksi onneksi teki tämän
mahdottomaksi sisäinen eripuraisuus, joka lamautti uhrauksiin
valmiina olevien kansalaisten voimia. Sillävälin tulvi tuhansia
kansalaisia, sekä ylhäisiä että alhaisia, niille seuduille, jotka vielä
olivat vihollisesta vapaat. Samogitian kaupungit ja kylät olivat täynnä
ihmisiä, jotka sota oli syössyt kurjuuteen. Paikkakuntain asukkaat
eivät voineet antaa heille riittävästi suojaa asunnoissaan,
puhumattakaan ravinnosta — ja monet kuolivat nälkään. Usein he
väkivalloin ottivat sellaista, joka heiltä kiellettiin, ja tästä syystä
olivatkin murhat, tappelut ja muut kahakat tavallisia.

Talvi oli tuima. Vielä huhtikuussa oli lunta syvälti ei ainoastaan


metsissä, vaan tasangoillakin. Kun edellisen vuoden viljavarat olivat
huvenneet eikä uusia vielä ollut, alkoi nälänhätä, sodan veli, raivota
levittäen valtaansa yhä laajemmalle. Teitten varsilla ja pelloilla
saattoi tavata laihtuneita ihmisruumiita, joita sudet olivat syöneet.
Susia oli sinä vuonna runsaasti, ja ne lähestyivät kyliä suurina
laumoina. Niitten ulvonta yhtyi ihmisten valitushuutoihin. Pelloilla ja
metsissä paloi öisin tuhansia nuotioita, joitten ääressä onnettomat
vaeltajat lämmittelivät paleltuneita jäseniään. Jos joku sattui
ajamaan ohi, juoksivat nämä heti pyytämään rahaa tai leipää milloin
kiroten, milloin nyyhkyttäen.

Taikauskoinen pelko painosti ihmisten mieliä. Useat vakuuttivat,


että kaikki nämä sodat ja onnettomuudet olivat yhteydessä
kuninkaan nimen kanssa. Selitettiin, että rahoissa olevat kirjaimet
I.C.R. eivät merkinneet ainoastaan Ioannes Casimirus Rex (Kuningas
Jan Kasimir) vaan myöskin Initium Calamitatis Regni
(Kuningaskunnan onnettomuuksien alku).

Jos moinen pelko ja epäjärjestys vallitsi niissä maakunnissa, joihin


sota ei vielä ollut levinnyt, niin saattaa helposti käsittää, mitä
tapahtuikaan niissä, joihin vihollinen jo oli astunut. Koko valtakunta
oli hajoamaisillaan, puoluetaistelujen runtelema ja kuumeessa, kuten
sairas ennen kuolemaa. Ennustettiin uusia sotia, sekä ulkonaisia että
sisäisiä, eikä syytä puuttunutkaan. Useat mahtavat suvut, jotka olivat
joutuneet eripuraisuuden pyörteisiin, pitivät toisiaan ihan
vihollisvaltoina, ja esimerkkiä seuraten koko maa jakautui eri
leireihin. Niin oli asian laita Liettuassakin, missä vanha viha
suurhetmani Janusz Radziwillin ja sotahetmani ja valtiovarainhoitaja
Gosiewskin värillä oli muuttunut ilmeiseksi sodaksi. Gosiewskin
puolella olivat mahtavat Sapiehat, joille Radziwill-suvun mahti oli jo
aikoja sitten ollut kuin tikku silmässä. Raskaita olivat ne syytökset,
joita Sapiehat kohdistivat suurhetmaniin: tämä oli omaa kunniaansa
tavoitellen johtanut joukot Szklowin luona häviölle, jättänyt maan
alttiiksi vihollisen ryöstöille, hankkinut itselleen oikeuden saada ottaa
osaa Saksan keisarikunnan maapäiviin vahingoittaen maan etua,
ruvennut haaveilemaan omaa valtakuntaa ja vainonnut katolilaisia…

Useammin kuin kerran olivat eri puolueitten kannattajat


hyökänneet toistensa kimppuun ja puolueitten johtajat valittaneet
siitä Varsovaan. Heidän vaikutuksensa tuntui valtiopäivilläkin. Tämä
tällainen edisti yhä hillittömämpää mielivaltaa ja Kmicicin tapaisten
miesten toimia.. Tarvitsi vain ilmoittaa kuuluvansa johonkin
puolueeseen, niin sai siltä turvaa.

Mutta sillävälin vihollinen yhä eteni, vain paikka paikoin vastarintaa


kohdaten, kuten linnojen luona.

Tällaisten olosuhteitten vallitessa laudalaisten täytyi elää valmiina


taistelemaan, etenkin kun hetmanit eivät olleet lähitienoilla. He olivat
nimittäin lähteneet vihollista vastaan ja taistelivat siellä ilman
erikoista menestystä, tosin kyllä häiriten vielä vapaitten maakuntain
valtaamista. Pawel Sapieha taisteli omien joukkojensa etunenässä
aika kunniakkaasti. Mainehikas sotaherra Janusz Radziwill, jonka
pelkkä nimi oli Szklowin taisteluun saakka täyttänyt vihollisen pelolla,
sai muutamia melko huomattavia voittoja. Gosiewski milloin kävi
sotaa, milloin neuvotteluja; molemmat päälliköt kokosivat yhä
suurempia joukkoja tietäen, että keväällä sota leimahtaa uudelleen.
Mutta miehistä oli puute, valtiovarat olivat lopussa ja yleistä
kutsuntaa oli melkein mahdoton toimittaa vihollisen valtaamilla
seuduilla. »Tätä olisi pitänyt harkita jo ennen Szklowia», — sanoivat
gosiewskilaiset. — »Nyt on jo myöhäistä.» Ja olipa todellakin
myöhäistä. Kruunun joukot eivät voineet tulla avuksi, koska olivat
kaikki Ukrainassa ankarassa työssä Chmielnickia, Szeremetowia ja
Buturlinia vastaan.

Vain viestit Ukrainassa tapahtuneista sankarillisista taisteluista,


valloitetuista kaupungeista ja ennenkuulumattomista sotaretkistä
jossakin määrin kohottivat painunutta mielialaa ja rohkaisivat
puolustukseen. Kruununhetmanien nimet kajahtivat kunniaa, ja
niitten rinnalla mainittiin Stefan Czarnecki yhä useammin. Mutta
kunnia ei voinut yksinään korvata sotajoukkoja, ja liettualaiset
hetmanit peräytyivät hitaasti kantaen keskinäistä vihaa.

Vihdoin oli Radziwill Samogitiassa. Hänen kanssaan palasi rauha


Laudan seuduille. Mutta kalvinilaiset kaupungeissa nousivat, kun
tiesivät päämiehensä olevan lähellä, ja alkoivat harjoittaa väkivaltaa
katolilaisia ja heidän kirkkojaan kohtaan. Sitävastoin ne rosvojoukot,
jotka Radziwillien, Gosiewskien ja Sapiehojen värejä käyttäen olivat
hävittäneet seutua, katosivat, ja kansalta pääsi helpotuksen
huokaus.

Kun epätoivo saattaa helposti kääntyä toivoksi, niin alkoi mieliala


Laudassakin nousta. Aleksandra-neiti asusti kaikessa rauhassa
Wodoktyssa. Herra Wolodyjowski, joka yhä asui Pacunelessa toipuen
vähitellen, tiesi kertoa, että kuningas keväällä asettuisi uuden
sotajoukon johtoon, jolloin sota tulisi tekemään käänteen. Lumi suli,
ja koivut puhkesivat hiirenkorvalle. Laudalaiset alkoivat kyntää
peltojaan. Laudan joki tulvi yli äyräittensä. Taivas kirkastui. Ihmiset
tulivat toivehikkaammiksi.

Silloin tapahtui jotakin, joka taas karkoitti hiljaisuuden Laudasta ja


sai asukkaat vaihtamaan auran miekkaan.
SEITSEMÄS LUKU.

Herra Wolodyjowski, tuo kuuluisa, vaikkakin vielä nuori soturi, asui,


kuten sanottu, yhä Pacunelessa Pakosz Gasztowtin luona, jota
pidettiin paikkakunnan rikkaimpana miehenä. Kolme tytärtään herra
Gasztowt oli naittanut Butrymeille ja antanut heille niin runsaat
myötäjäiset, että moni jalosukuinen neiti olisi voinut heitä kadehtia.
Kolme muuta tytärtä oli vielä kotona, ja nämä hoitivat herra
Wolodyjowskia, jonka käsivarsi oli milloin parempi, milloin pahempi,
riippuen ilmoista. Kaikki laudalaiset olivat hyvin huolissaan tästä
käsivarresta, sillä he olivat nähneet sen työssä Szklowin ja
Sepielowin luona, ja yleinen mielipide oli, että parempaa oli vaikea
löytää koko Liettuasta. Siksipä kaikki kunnioittivat ja suosivat nuorta
everstiä. Gasztowtit, Domaszewiczit, Gosciewiczit ja Stakjanowit
ynnä muut lähettivät säännöllisesti Pacuneleen kaloja, sieniä,
metsänriistaa ja heiniä hevosille, jottei ritarin ja hänen väkensä
tarvitsisi kärsiä minkäänlaista puutetta. Heti kun hän tunsi itsensä
heikommaksi, he ajoivat minkä jaksoivat lähintä välskäriä
noutamaan, sanalla sanoen, kilpailivat kohteliaisuudessa.

Ja herra Wolodyjowski viihtyikin siellä niin hyvin, että vaikka


Kiejdanyssa olisi ollut mukavampi ja lääkärinhoito parempaa, hän
kuitenkin jäi Pacuneleen. Vanha Gasztowt oli mielissään eikä
säästänyt hänen tähtensä mitään, sillä hänen arvonsa kohosi koko
Laudassa, kun hän sai pitää luonaan vierasta, josta itse Radziwill olisi
voinut ylpeillä.

Kmicicin tappion ja paon jälkeen Wolodyjowskiin ihastuneet


tilanomistajat päättivät naittaa Aleksandra-neidin hänelle. »Miksi
etsiä hänelle miestä pitkin maailmaa?» — sanoivat vanhimmat
eräässä kokouksessa, jossa pohdittiin vain mainittua kysymystä. —
Kun Kmicic on tahrannut kunniansa niin katalilla teoilla, että hänet
olisi jätettävä pyövelille, jos hän vielä hengissä on, niin on neidin
heitettävä hänet sydämestään, kuten testamentissakin oli määrätty.
Ottakoon herra Wolodyjowski hänet! Holhoojina voimme siihen
suostua, ja siten hän saa kelpo miehen ja me oivallisen naapurin ja
päällikön.

Kun yksimielinen päätös oli tehty, läksivät vanhimmat ensin herra


Wolodyjowskin luo, joka sen pitempään harkitsematta suostui, ja
sitten
Aleksandra-neidin luo, joka vielä lyhyemmin kielsi jyrkästi:

— Lubicziin nähden, — sanoi Oleńka, — saattoi ainoastaan isoisä-


vainaja määrätä, eikä maatilaa voida ottaa pois Kmiciciltä muuten
kuin oikeuden tuomiolla. Mitä tulee minun naimisiinmenooni, niin
älkää sitä edes ajatelko. Minulla on liian paljon suruja voidakseni
ajatella mitään sellaista… Sen toisen olen sydämestäni karkoittanut
enkä tälle mene, vaikkapa hän olisi vielä kunniakkaampikin.

Näin päättäväiseen kieltoon ei voitu mitään vastata, ja


tilanomistajat palasivat kotiin julman pettyneinä. Vähemmän pettynyt
oli herra Wolodyjowski ja vähimmin kaikista nuoret Gasztowtin
neitoset: Terka, Maryska ja Zonia. Nämä olivat punaposkisia,
pellavatukkaisia, sinisilmäisiä, leveäharteisia tyttöjä. Vanha Gasztowt
ei ollut säästänyt varojaan antaessaan heille kasvatuksen. Mitrunyn
kanttori oli opettanut heitä lukemaan ja laulamaan virsiä ja vanhinta,
Terkaa, luuttuakin soittamaan. Hyväsydämisiä kun olivat, he pitivät
herra Wolodyjowskista hellää huolta kilpaillen keskenään
huolenpidossa ja auliudessa. Maryskan sanottiin rakastuneen
nuoreen ritariin; tässä ei ollut kuitenkaan koko totuutta, sillä he
olivat kaikki kolme julman rakastuneita häneen. Myöskin herra
Wolodyjowski rakasti heitä kovasti, etenkin Maryskaa ja Zoniaa, sillä
Terkalla oli ruma tapa alituisesti hokea miesten petollisuudesta.

Usein pitkinä talvi-iltoina, kun ukko Gasztowt jo oli mennyt levolle,


tyttäret ja herra Wolodyjowski jäivät lieden ääreen istumaan.
Viehättävä Terka kehräsi, lempeä Maryska puhdisti höyheniä, ja
Zonia vyyhti kehrätyitä lankoja. Mutta kun herra Wolodyjowski alkoi
kertoa sodista, joihin hän oli ottanut osaa, tai merkillisyyksistä, joita
oli nähnyt mahtavien magnaattien palatseissa, niin silloin työ taukosi,
ja sisarukset katsoivat haltioissaan kertojaan. Myöhään eräänä
iltana, kun Wolodyjowski oli kertonut kuninkaan linnan
merkillisyyksistä Varsovassa ja puhe senjälkeen oli kääntynyt
Kmiciciin, jonka arveltiin ainaiseksi kadonneen paikkakunnalta, kuului
yht'äkkiä eteisestä jyskettä, ja ääni ulkoa! huusi vihlovasti:

— Hei, kuulkaa! Avatkaa ovi pian, pian!… Tytöt säikähtivät kovasti.


Herra Wolodyjowski juoksi kamariinsa miekkaa hakemaan, mutta
ennätti tuskin takaisin, kun tuntematon mies syöksyi huoneeseen ja
lankesi hänen jalkojensa juureen.

— Auttakaa, herra eversti!… Neiti on ryöstetty!…

— Kuka neiti?

— Wodoktyssa…
— Kmicic! — huudahti herra Wolodyjowski.

— Kmicic! — huusivat tytöt.

— Kmicic! — toisti sanantuoja.

— Kuka sinä olet? — kysyi herra Wolodyjowski.

— Wodoktyn vouti.

— Me tunnemme hänet kyllä! — virkkoi Terka.

Uninen ukko Gasztowt kömpi esille uunin takaa, ja ovelle ilmaantui


kaksi herra Wolodyjowskin sotamiestä, jotka melu oli houkutellut
tupaan.

- Satuloikaa hevoset! — huusi herra Wolodyjowski. — Toinen teistä


ajakoon heti Butrymeille, toinen tuokoon hevosen minulle!

— Minä olin jo Butrymeilla, — sanoi vouti, - sillä heille on meiltä


lyhyin matka. Mutta he lähettivät minut teidän armonne luo.

— Milloin teidän neitinne ryöstettiin? — kysyi Wolodyjowski.

— Äsken juuri… Siellä talonväkeä vielä tapetaan… Pääsin töin


tuskin lähtemään… Ukko Gasztowt hieroi silmiään. — Mitä nyt? Onko
kartanon neiti ryöstetty?

— On. Kmicic on ryöstänyt! — sanoi herra Wolodyjowski. —


Täytyy rientää apuun!

Hän kääntyi sanantuojan puoleen: — Aja Domaszewiczeille ja


sano, että rientävät heti tänne ottaen aseita mukaan!
— Kuulkaahan, tyttäret! — huusi ukko yht'äkkiä. — Nyt sukkelasti
kylään herättämään väkeä! Varustautukoon jokainen aseilla. Vai on
Kmicic ryöstänyt neidin? Sitä lurjusta, roistoa!

Hetken kuluttua ajoi herra Wolodyjowski muutaman muun miehen


seurassa kylään. Talojen ohi ajaessa he löivät oviin ja ikkunoihin
huutaen:

— Aseihin! Aseihin! Neiti Billewicz on ryöstetty! Kmicic on


paikkakunnalla!

Huudot kuultuaan moni tuli tuvastaan ulos katsomaan, mitä


tapahtui, ja saatuaan asiasta selon alkoi huutaa: — Kmicic on
paikkakunnalla! Neiti Billewicz on ryöstetty! — ja juoksi sitten
kiireimmän kautta talliin satuloimaan hevosta tai tupaan aseita
ottamaan. Yhä useammat äänet huusivat: »Kmicic on
paikkakunnalla!» Tulia sytytettiin, kuului naisten itkua ja koirien
haukuntaa. Vihdoin lähdettiin liikkeelle, osaksi ratsain, osaksi
jalkaisin. Päitten yläpuolella kimmelsi yössä miekkoja, pistimiä,
keihäitä, vieläpä rautahankoja.

Herra Wolodyjowski silmäili joukkoaan, lähetti muutamia miehiä eri


suuntiin ja jatkoi muitten kanssa matkaa eteenpäin.

Ratsumiehet ajoivat etupäässä, heidän jäljessään seurasivat


jalkamiehet, ja matka suunnattiin Wolmontowiczeen, jossa aiottiin
yhtyä Butrymeihin. Kello oli kymmenen, yö oli valoisa, vaikk'ei kuu
ollut vielä noussut. Suurhetmanin luota sotapalveluksesta palanneet
maalaisaateliset asettuivat heti riveihin, mutta muut, etenkin
jalkamiehet, kulkivat epäjärjestyksessä kalistaen aseitaan, jutellen ja
kiroten Kmiciciä, joka oli häirinnyt heidän yörauhaansa. Vihdoin he
saapuivat Wolmontowiczeen, jossa kohtasivat toisen joukon.
— Seis! Keitä siellä on? — huusivat useat.

— Gasztowteja täällä on!

— Me olemme Butrymeja. Domaszewiczit ovat myöskin jo täällä.

— Kuka teitä johtaa? — kysyi herra Wolodyjowski.

— Jozwa Jalaton, herra eversti.

— Mitä tiedätte asiasta?

— Kmicic on vienyt neidin Lubicziin. Yli soitten he ovat ajaneet


kiertääkseen Wolmontowiczen.

— Lubicziin?! — ihmetteli herra Wolodyjowski. — Miten hän siellä


aikonee puolustautua? Eihän Lubicz ole mikään linna.

— Hän luottaa joukkoonsa. Pari sataa miestä kuuluu hänellä


olevan. He aikovat viedä sieltä omaisuutta mukanaan, koska heillä
on rattaat ja hevoset. Nähtävästi hän ei tiedä meidän palanneen
sotaväestä, koska noin rohkeasti toimii.

— Sitä parempi! — sanoi siihen herra Wolodyjowski. — Nyt hän ei


pääse käsistämme. Montako pyssyä teillä on?

— Meillä butrymilaisilla on noin kolmekymmentä, Domaszewiczeilla


puolta enemmän.

— Hyvä on! Viisikymmentä pyssymiestä ajakoon heti soille tietä


vartioimaan! Loput seuratkoot minua! Älkää unohtako kirveitä!

Lähdettiin uudelleen liikkeelle. Pieni osasto ajoi täyttä laukkaa


Jozwa Jalattoman johdolla soita kohti. Samalla saapui heidän
tilalleen kymmenkunta Butrymia, jotka olivat ajelleet ympäriinsä
hälyyttämässä muita liikkeelle.

— Ettekö ole nähneet Gosciewiczeja? — kysyi herra Wolodyjowski.

— Kyllä, herra eversti! — huusivat äsken saapuneet. —


Gosciewiczit ovat jo tulossa… tuolla metsässä! Tietääkö herra
eversti, että hän on vienyt neidin Lubicziin?

— Kyllä. Mutta siellä hän ei kauan saa rauhassa olla.

Kmiciciltä oli todellakin jäänyt eräs seikka huomioon ottamatta,


kun hän lähti tätä uhkarohkeata yritystään täyttämään; hän ei näet
tietänyt, että suuri osa kyläläisiä oli saapunut kotiin
sotapalveluksesta, vaan luuli kylän olevan yhtä tyhjän kuin silloin,
kun hän ensikertaa oli Lubiczissa. Herra Wolodyjowski voi asettaa
häntä vastaan noin kolmesataa harjaantunutta, sotakelpoista soturia.

Yhä enemmän saapui Wolmontowiczeen väkeä. Saapuivatpa


vihdoin Gosciewiczitkin. Herra Wolodyjowski komensi riveihin, ja
hänen sydämensä ihan sykähti ilosta nähdessään, kuinka sujuvasti
hänen komentonsa suoritettiin. Jo ensi silmäyksellä saattoi huomata,
että siinä oli oikeita sotureita eikä mielivaltaisia aatelisrosvoja. Herra
Wolodyjowski oli iloissaan siitäkin, että lähimmässä tulevaisuudessa
saisi johtaa tätä joukkoa oikeissa taisteluissa.

Niinpä lähdettiin Lubicziin ja saman metsän halki, josta Kmicickin


oli äskettäin kulkenut. Sydänyö oli kulumassa. Kuu kumotti jo
taivaalta valaisten metsän, tien ja soturit, ja sen valo välähteli
keihäitten kärjissä ja miekkain terissä. Laudalaiset juttelivat matalalla
äänellä harvinaisesta tapahtumasta, joka oli saanut heidät liikkeelle
näin keskellä yötä.
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

textbookfull.com

You might also like