100% found this document useful (1 vote)
16 views

C 5 0 in a Nutshell 5th Edition The Definitive Reference Joseph Albahari 2024 Scribd Download

The document provides links to various ebooks related to C# programming and other topics, including 'C# 5.0 in a Nutshell' and 'C# 4.0 in a Nutshell', both by Joseph Albahari. It offers instant downloads in multiple formats and includes detailed information about the contents of the C# 5.0 book, covering language basics, advanced features, and frameworks. Additional titles on technology management, climate change, and language learning are also available for download.

Uploaded by

emilylepowwh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
16 views

C 5 0 in a Nutshell 5th Edition The Definitive Reference Joseph Albahari 2024 Scribd Download

The document provides links to various ebooks related to C# programming and other topics, including 'C# 5.0 in a Nutshell' and 'C# 4.0 in a Nutshell', both by Joseph Albahari. It offers instant downloads in multiple formats and includes detailed information about the contents of the C# 5.0 book, covering language basics, advanced features, and frameworks. Additional titles on technology management, climate change, and language learning are also available for download.

Uploaded by

emilylepowwh
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

Download the Full Version of the Ebook with Added Features ebookname.

com

C 5 0 in a Nutshell 5th Edition The Definitive


Reference Joseph Albahari

https://ebookname.com/product/c-5-0-in-a-nutshell-5th-
edition-the-definitive-reference-joseph-albahari/

OR CLICK HERE

DOWLOAD NOW

Download more ebook instantly today at https://ebookname.com


Instant digital products (PDF, ePub, MOBI) available
Download now and explore formats that suit you...

C 4 0 in a Nutshell The Definitive Reference Fourth


Edition Joseph Albahari

https://ebookname.com/product/c-4-0-in-a-nutshell-the-definitive-
reference-fourth-edition-joseph-albahari/

ebookname.com

Linq Pocket Reference Pocket Reference O Reilly 1st


Edition Joseph Albahari

https://ebookname.com/product/linq-pocket-reference-pocket-reference-
o-reilly-1st-edition-joseph-albahari/

ebookname.com

C 5 0 Programmer s Reference 1st Edition Rod Stephens

https://ebookname.com/product/c-5-0-programmer-s-reference-1st-
edition-rod-stephens/

ebookname.com

Why We Play An Anthropological Study Roberte Hamayon

https://ebookname.com/product/why-we-play-an-anthropological-study-
roberte-hamayon/

ebookname.com
Selected Readings on Information Technology Management
Contemporary Issues Premier Reference Source 1st Edition
George Kelley
https://ebookname.com/product/selected-readings-on-information-
technology-management-contemporary-issues-premier-reference-
source-1st-edition-george-kelley/
ebookname.com

The Rapidly Transforming Chinese High Technology Industry


and Market Institutions Ingredients Mechanisms and Modus
Operandi 1st Edition Nir Kshetri (Auth.)
https://ebookname.com/product/the-rapidly-transforming-chinese-high-
technology-industry-and-market-institutions-ingredients-mechanisms-
and-modus-operandi-1st-edition-nir-kshetri-auth/
ebookname.com

Climate Change and Human Rights An International and


Comparative Law Perspective 1st Edition Ottavio Quirico

https://ebookname.com/product/climate-change-and-human-rights-an-
international-and-comparative-law-perspective-1st-edition-ottavio-
quirico/
ebookname.com

Aggregation Induced Emission Fundamentals and Applications


2 Volume Set 1st Edition Anjun Qin

https://ebookname.com/product/aggregation-induced-emission-
fundamentals-and-applications-2-volume-set-1st-edition-anjun-qin/

ebookname.com

Colloquial Vietnamese The Complete Course for Beginners


2nd Edition Bac Hoai Tran

https://ebookname.com/product/colloquial-vietnamese-the-complete-
course-for-beginners-2nd-edition-bac-hoai-tran/

ebookname.com
Designing for Older Adults Principles and Creative Human
Factors Approaches Second Edition Arthur D. Fisk (Author)

https://ebookname.com/product/designing-for-older-adults-principles-
and-creative-human-factors-approaches-second-edition-arthur-d-fisk-
author/
ebookname.com
www.it-ebooks.info
www.it-ebooks.info
C# 5.0
IN A NUTSHELL
Fifth Edition

Joseph Albahari and Ben Albahari

Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo

www.it-ebooks.info
C# 5.0 in a Nutshell, Fifth Edition
by Joseph Albahari and Ben Albahari

Copyright © 2012 Joseph Albahari and Ben Albahari. All rights reserved.
Printed in the United States of America.

Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472.

O’Reilly books may be purchased for educational, business, or sales promotional use. Online
editions are also available for most titles (http://my.safaribooksonline.com). For more infor-
mation, contact our corporate/institutional sales department: 800-998-9938 or
[email protected].

Editor: Rachel Roumeliotis Indexer: Jay Marchand


Production Editor: Melanie Yarbrough Cover Designer: Karen Montgomery
Copyeditor: Nancy Reinhardt Interior Designer: David Futato
Proofreader: Jennifer Knight Illustrator: Robert Romano

June 2012: Fifth Edition.

Revision History for the Fifth Edition:


2012-06-08 First release
See http://oreilly.com/catalog/errata.csp?isbn=9781449320102 for release details.

Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trade-
marks of O’Reilly Media, Inc. C# 5.0 in a Nutshell, the cover image of a numidian crane, and
related trade dress are trademarks of O’Reilly Media, Inc.
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in this book, and O’Reilly Media,
Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps.

While every precaution has been taken in the preparation of this book, the publisher and
authors assume no responsibility for errors or omissions, or for damages resulting from the
use of the information contained herein.

ISBN: 978-1-449-32010-2

[M]

1340210346

www.it-ebooks.info
Table of Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

1. Introducing C# and the .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1


Object Orientation 1
Type Safety 2
Memory Management 2
Platform Support 3
C#’s Relationship with the CLR 3
The CLR and .NET Framework 3
C# and Windows Runtime 5
What’s New in C# 5.0 6
What’s New in C# 4.0 6
What’s New in C# 3.0 7

2. C# Language Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
A First C# Program 9
Syntax 12
Type Basics 15
Numeric Types 23
Boolean Type and Operators 30
Strings and Characters 32
Arrays 34
Variables and Parameters 38
Expressions and Operators 47
Statements 51
Namespaces 59

iii

www.it-ebooks.info
3. Creating Types in C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Classes 67
Inheritance 80
The object Type 89
Structs 93
Access Modifiers 94
Interfaces 96
Enums 102
Nested Types 105
Generics 106

4. Advanced C# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Delegates 119
Events 128
Lambda Expressions 135
Anonymous Methods 139
try Statements and Exceptions 140
Enumeration and Iterators 148
Nullable Types 153
Operator Overloading 158
Extension Methods 162
Anonymous Types 164
Dynamic Binding 165
Attributes 173
Caller Info Attributes (C# 5) 175
Unsafe Code and Pointers 177
Preprocessor Directives 180
XML Documentation 182

5. Framework Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187


The CLR and Core Framework 189
Applied Technologies 194

6. Framework Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201


String and Text Handling 201
Dates and Times 214
Dates and Time Zones 221
Formatting and Parsing 227
Standard Format Strings and Parsing Flags 233
Other Conversion Mechanisms 240
Globalization 244
Working with Numbers 245
Enums 249
Tuples 252
The Guid Struct 253

iv | Table of Contents

www.it-ebooks.info
Equality Comparison 254
Order Comparison 264
Utility Classes 267

7. Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Enumeration 271
The ICollection and IList Interfaces 279
The Array Class 282
Lists, Queues, Stacks, and Sets 291
Dictionaries 299
Customizable Collections and Proxies 306
Plugging in Equality and Order 312

8. LINQ Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319


Getting Started 319
Fluent Syntax 321
Query Expressions 328
Deferred Execution 332
Subqueries 338
Composition Strategies 342
Projection Strategies 345
Interpreted Queries 347
LINQ to SQL and Entity Framework 354
Building Query Expressions 368

9. LINQ Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375


Overview 377
Filtering 379
Projecting 383
Joining 395
Ordering 403
Grouping 406
Set Operators 409
Conversion Methods 410
Element Operators 413
Aggregation Methods 415
Quantifiers 419
Generation Methods 420

10. LINQ to XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423


Architectural Overview 423
X-DOM Overview 424
Instantiating an X-DOM 427
Navigating and Querying 430
Updating an X-DOM 435

Table of Contents | v

www.it-ebooks.info
Working with Values 438
Documents and Declarations 441
Names and Namespaces 444
Annotations 450
Projecting into an X-DOM 450

11. Other XML Technologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457


XmlReader 458
XmlWriter 467
Patterns for Using XmlReader/XmlWriter 469
XmlDocument 473
XPath 477
XSD and Schema Validation 481
XSLT 484

12. Disposal and Garbage Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485


IDisposable, Dispose, and Close 485
Automatic Garbage Collection 490
Finalizers 493
How the Garbage Collector Works 497
Managed Memory Leaks 501
Weak References 505

13. Diagnostics and Code Contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509


Conditional Compilation 509
Debug and Trace Classes 512
Code Contracts Overview 516
Preconditions 520
Postconditions 524
Assertions and Object Invariants 527
Contracts on Interfaces and Abstract Methods 528
Dealing with Contract Failure 529
Selectively Enforcing Contracts 531
Static Contract Checking 533
Debugger Integration 535
Processes and Process Threads 536
StackTrace and StackFrame 537
Windows Event Logs 538
Performance Counters 541
The Stopwatch Class 545

14. Concurrency & Asynchrony . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547


Introduction 547
Threading 548
Tasks 565

vi | Table of Contents

www.it-ebooks.info
Principles of Asynchrony 573
Asynchronous Functions in C# 5.0 578
Asynchronous Patterns 594
Obsolete Patterns 601

15. Streams and I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605


Stream Architecture 605
Using Streams 607
Stream Adapters 621
Compression Streams 629
Working with Zip Files 631
File and Directory Operations 632
File I/O in Windows Runtime 642
Memory-Mapped Files 644
Isolated Storage 647

16. Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653


Network Architecture 653
Addresses and Ports 655
URIs 656
Client-Side Classes 658
Working with HTTP 671
Writing an HTTP Server 677
Using FTP 680
Using DNS 682
Sending Mail with SmtpClient 683
Using TCP 683
Receiving POP3 Mail with TCP 687
TCP in Windows Runtime 689

17. Serialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691


Serialization Concepts 691
The Data Contract Serializer 695
Data Contracts and Collections 705
Extending Data Contracts 707
The Binary Serializer 710
Binary Serialization Attributes 712
Binary Serialization with ISerializable 715
XML Serialization 719

18. Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729


What’s in an Assembly 729
Strong Names and Assembly Signing 734
Assembly Names 737
Authenticode Signing 739

Table of Contents | vii

www.it-ebooks.info
The Global Assembly Cache 743
Resources and Satellite Assemblies 745
Resolving and Loading Assemblies 754
Deploying Assemblies Outside the Base Folder 759
Packing a Single-File Executable 760
Working with Unreferenced Assemblies 762

19. Reflection and Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765


Reflecting and Activating Types 766
Reflecting and Invoking Members 773
Reflecting Assemblies 785
Working with Attributes 786
Dynamic Code Generation 792
Emitting Assemblies and Types 799
Emitting Type Members 803
Emitting Generic Methods and Types 808
Awkward Emission Targets 810
Parsing IL 814

20. Dynamic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821


The Dynamic Language Runtime 821
Numeric Type Unification 823
Dynamic Member Overload Resolution 824
Implementing Dynamic Objects 830
Interoperating with Dynamic Languages 833

21. Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 837


Permissions 837
Code Access Security (CAS) 842
Allowing Partially Trusted Callers 845
The Transparency Model 847
Sandboxing Another Assembly 855
Operating System Security 858
Identity and Role Security 861
Cryptography Overview 862
Windows Data Protection 863
Hashing 864
Symmetric Encryption 865
Public Key Encryption and Signing 870

22. Advanced Threading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875


Synchronization Overview 876
Exclusive Locking 876
Locking and Thread Safety 884
Non-Exclusive Locking 890

viii | Table of Contents

www.it-ebooks.info
Signaling with Event Wait Handles 895
The Barrier Class 903
Lazy Initialization 904
Thread-Local Storage 907
Interrupt and Abort 909
Suspend and Resume 910
Timers 911

23. Parallel Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 915


Why PFX? 915
PLINQ 918
The Parallel Class 931
Task Parallelism 938
Working with AggregateException 947
Concurrent Collections 949
BlockingCollection<T> 952

24. Application Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 957


Application Domain Architecture 957
Creating and Destroying Application Domains 958
Using Multiple Application Domains 960
Using DoCallBack 962
Monitoring Application Domains 963
Domains and Threads 963
Sharing Data Between Domains 965

25. Native and COM Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971


Calling into Native DLLs 971
Type Marshaling 972
Callbacks from Unmanaged Code 975
Simulating a C Union 975
Shared Memory 976
Mapping a Struct to Unmanaged Memory 979
COM Interoperability 983
Calling a COM Component from C# 985
Embedding Interop Types 988
Primary Interop Assemblies 989
Exposing C# Objects to COM 990

26. Regular Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 991


Regular Expression Basics 992
Quantifiers 996
Zero-Width Assertions 997
Groups 1000
Replacing and Splitting Text 1001

Table of Contents | ix

www.it-ebooks.info
Cookbook Regular Expressions 1003
Regular Expressions Language Reference 1006

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1011

x | Table of Contents

www.it-ebooks.info
Preface

C# 5.0 represents the fourth major update to Microsoft’s flagship programming


language, positioning C# as a language with unusual flexibility and breadth. At one
end, it offers high-level abstractions such as query expressions and asynchronous
continuations, while at the other end, it provides low-level power through constructs
such as custom value types and the optional use of pointers.
The price of this growth is that there’s more than ever to learn. Although tools such
as Microsoft’s IntelliSense—and online references—are excellent in helping you on
the job, they presume an existing map of conceptual knowledge. This book provides
exactly that map of knowledge in a concise and unified style—free of clutter and
long introductions.
Like the past two editions, C# 5.0 in a Nutshell is organized entirely around concepts
and use cases, making it friendly both to sequential reading and to random browsing.
It also plumbs significant depths while assuming only basic background knowledge
—making it accessible to intermediate as well as advanced readers.
This book covers C#, the CLR, and the core Framework assemblies. We’ve chosen
this focus to allow space for difficult topics such as concurrency, security, and
application domains—without compromising depth or readability. Features new to
C# 5.0 and the associated Framework are flagged so that you can also use this book
as a C# 4.0 reference.

Intended Audience
This book targets intermediate to advanced audiences. No prior knowledge of C#
is required, but some general programming experience is necessary. For the begin-
ner, this book complements, rather than replaces, a tutorial-style introduction to
programming.
If you’re already familiar with C# 4.0, you’ll find a reorganized section on concur-
rency, including thorough coverage of C# 5.0’s asynchronous functions and its

xi

www.it-ebooks.info
associated types. We also describe the principles of asynchronous programming and
how it helps with efficiency and thread-safety.
This book is an ideal companion to any of the vast array of books that focus on an
applied technology such as WPF, ASP.NET, or WCF. The areas of the language
and .NET Framework that such books omit, C# 5.0 in a Nutshell covers in detail—
and vice versa.
If you’re looking for a book that skims every .NET Framework technology, this is
not for you. This book is also unsuitable if you want to learn about APIs specific to
tablet or Windows Phone development.

How This Book Is Organized


The first three chapters after the introduction concentrate purely on C#, starting
with the basics of syntax, types, and variables, and finishing with advanced topics
such as unsafe code and preprocessor directives. If you’re new to the language, you
should read these chapters sequentially.
The remaining chapters cover the core .NET Framework, including such topics as
LINQ, XML, collections, code contracts, concurrency, I/O and networking, mem-
ory management, reflection, dynamic programming, attributes, security, application
domains, and native interoperability. You can read most of these chapters randomly,
except for Chapters 6 and 7, which lay a foundation for subsequent topics. The three
chapters on LINQ are also best read in sequence, and some chapters assume some
knowledge of concurrency, which we cover in Chapter 14.

What You Need to Use This Book


The examples in this book require a C# 5.0 compiler and Microsoft .NET Frame-
work 4.5. You will also find Microsoft’s .NET documentation useful to look up
individual types and members (which is available online).
While it’s possible to write source code in Notepad and invoke the compiler from
the command line, you’ll be much more productive with a code scratchpad for
instantly testing code snippets, plus an Integrated Development Environment (IDE)
for producing executables and libraries.
For a code scratchpad, download LINQPad 4.40 or later from www.linqpad.net
(free). LINQPad fully supports C# 5.0 and is maintained by one of the authors.
For an IDE, download Microsoft Visual Studio 2012: any edition is suitable for
what’s taught in this book, except the free express edition.

xii | Preface

www.it-ebooks.info
Figure P-1. Sample diagram

All code listings for Chapter 2 through Chapter 10, plus the
chapters on concurrency, parallel programming, and dynamic
programming are available as interactive (editable) LINQPad
samples. You can download the whole lot in a single click: go
to LINQPad’s Samples tab at the bottom left, click “Download
more samples,” and choose “C# 5.0 in a Nutshell.”

Conventions Used in This Book


The book uses basic UML notation to illustrate relationships between types, as
shown in Figure P-1. A slanted rectangle means an abstract class; a circle means an
interface. A line with a hollow triangle denotes inheritance, with the triangle pointing
to the base type. A line with an arrow denotes a one-way association; a line without
an arrow denotes a two-way association.
The following typographical conventions are used in this book:
Italic
Indicates new terms, URIs, filenames, and directories
Constant width
Indicates C# code, keywords and identifiers, and program output
Constant width bold
Shows a highlighted section of code

Preface | xiii

www.it-ebooks.info
Other documents randomly have
different content
WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR
ANY PURPOSE.

1.F.5. Some states do not allow disclaimers of certain implied


warranties or the exclusion or limitation of certain types of
damages. If any disclaimer or limitation set forth in this
agreement violates the law of the state applicable to this
agreement, the agreement shall be interpreted to make the
maximum disclaimer or limitation permitted by the applicable
state law. The invalidity or unenforceability of any provision of
this agreement shall not void the remaining provisions.

1.F.6. INDEMNITY - You agree to indemnify and hold the


Foundation, the trademark owner, any agent or employee of the
Foundation, anyone providing copies of Project Gutenberg™
electronic works in accordance with this agreement, and any
volunteers associated with the production, promotion and
distribution of Project Gutenberg™ electronic works, harmless
from all liability, costs and expenses, including legal fees, that
arise directly or indirectly from any of the following which you do
or cause to occur: (a) distribution of this or any Project
Gutenberg™ work, (b) alteration, modification, or additions or
deletions to any Project Gutenberg™ work, and (c) any Defect
you cause.

Section 2. Information about the Mission of


Project Gutenberg™
Project Gutenberg™ is synonymous with the free distribution of
electronic works in formats readable by the widest variety of
computers including obsolete, old, middle-aged and new
computers. It exists because of the efforts of hundreds of
volunteers and donations from people in all walks of life.
Volunteers and financial support to provide volunteers with the
assistance they need are critical to reaching Project
Gutenberg™’s goals and ensuring that the Project Gutenberg™
collection will remain freely available for generations to come. In
2001, the Project Gutenberg Literary Archive Foundation was
created to provide a secure and permanent future for Project
Gutenberg™ and future generations. To learn more about the
Project Gutenberg Literary Archive Foundation and how your
efforts and donations can help, see Sections 3 and 4 and the
Foundation information page at www.gutenberg.org.

Section 3. Information about the Project


Gutenberg Literary Archive Foundation
The Project Gutenberg Literary Archive Foundation is a non-
profit 501(c)(3) educational corporation organized under the
laws of the state of Mississippi and granted tax exempt status by
the Internal Revenue Service. The Foundation’s EIN or federal
tax identification number is 64-6221541. Contributions to the
Project Gutenberg Literary Archive Foundation are tax
deductible to the full extent permitted by U.S. federal laws and
your state’s laws.

The Foundation’s business office is located at 809 North 1500


West, Salt Lake City, UT 84116, (801) 596-1887. Email contact
links and up to date contact information can be found at the
Foundation’s website and official page at
www.gutenberg.org/contact

Section 4. Information about Donations to


the Project Gutenberg Literary Archive
Foundation
Project Gutenberg™ depends upon and cannot survive without
widespread public support and donations to carry out its mission
of increasing the number of public domain and licensed works
that can be freely distributed in machine-readable form
accessible by the widest array of equipment including outdated
equipment. Many small donations ($1 to $5,000) are particularly
important to maintaining tax exempt status with the IRS.

The Foundation is committed to complying with the laws


regulating charities and charitable donations in all 50 states of
the United States. Compliance requirements are not uniform
and it takes a considerable effort, much paperwork and many
fees to meet and keep up with these requirements. We do not
solicit donations in locations where we have not received written
confirmation of compliance. To SEND DONATIONS or
determine the status of compliance for any particular state visit
www.gutenberg.org/donate.

While we cannot and do not solicit contributions from states


where we have not met the solicitation requirements, we know
of no prohibition against accepting unsolicited donations from
donors in such states who approach us with offers to donate.

International donations are gratefully accepted, but we cannot


make any statements concerning tax treatment of donations
received from outside the United States. U.S. laws alone swamp
our small staff.

Please check the Project Gutenberg web pages for current


donation methods and addresses. Donations are accepted in a
number of other ways including checks, online payments and
credit card donations. To donate, please visit:
www.gutenberg.org/donate.

Section 5. General Information About Project


Gutenberg™ electronic works
Professor Michael S. Hart was the originator of the Project
Gutenberg™ concept of a library of electronic works that could
be freely shared with anyone. For forty years, he produced and
distributed Project Gutenberg™ eBooks with only a loose
network of volunteer support.

Project Gutenberg™ eBooks are often created from several


printed editions, all of which are confirmed as not protected by
copyright in the U.S. unless a copyright notice is included. Thus,
we do not necessarily keep eBooks in compliance with any
particular paper edition.

Most people start at our website which has the main PG search
facility: www.gutenberg.org.

This website includes information about Project Gutenberg™,


including how to make donations to the Project Gutenberg
Literary Archive Foundation, how to help produce our new
eBooks, and how to subscribe to our email newsletter to hear
about new eBooks.
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!

ebookname.com

You might also like