C# 12 در یک Nutshell؛ مشخصات، فهرست مطالب و پیشگفتار

C# 12 در یک Nutshell — مشخصات کتاب، فهرست مطالب و پیشگفتار

C# 12 در یک Nutshell — مشخصات کتاب، فهرست مطالب و پیشگفتار

O’REILLY®

C# 12 در یک Nutshell

مرجع قطعی

Joseph Albahari

تصویر روی جلدتصویر پرندهٔ روی جلد کتاب C# 12 in a Nutshell.
تصویر روی جلد

O’REILLY®

C# 12 در یک Nutshell

وقتی دربارهٔ C# 12 یا .NET 8 پرسشی دارید، این راهنمای پرفروش پاسخ‌هایی را که نیاز دارید در اختیار شما می‌گذارد. C# زبانی با انعطاف‌پذیری و گستره‌ای غیرمعمول است و با رشد مداوم آن، همیشه چیزهای بسیار بیشتری برای آموختن وجود دارد. در سنت راهنماهای Nutshell انتشارات O’Reilly، این ویرایش کاملاً به‌روزشده به‌سادگی بهترین مرجع تک‌جلدیِ زبان C# است که امروز در دسترس است.

این کتاب برای برنامه‌نویسان متوسط و پیشرفته نوشته شده و توضیحات آن مستقیم سر اصل مطلب می‌روند؛ C#، CLR و کتابخانه‌های اصلی .NET را بدون مقدمه‌های طولانی یا نمونه‌های متورم، عمیق پوشش می‌دهد.

  • از syntax و variableها تا موضوعات پیشرفته‌ای مانند pointerها، closureها و patternها، در C# به‌روز شوید.
  • با سه فصل اختصاص‌یافته به LINQ، عمیقاً وارد LINQ شوید.
  • concurrency و asynchrony، threading پیشرفته و برنامه‌نویسی parallel را بررسی کنید.
  • با قابلیت‌های .NET شامل regular expressionها، networking، assemblyها، spanها، cryptography و reflection.emit کار کنید.

Joe Albahari، سازندهٔ LINQPad، نویسندهٔ C# 10 in a Nutshell و C# 12 Pocket Reference است.

«C# 12 in a Nutshell یکی از معدود کتاب‌هایی است که برای مراجعهٔ سریع روی میز کارم نگه می‌دارم.»

—Scott Guthrie، Microsoft

«تازه‌کاران و متخصصان به یک اندازه تازه‌ترین تکنیک‌ها در برنامه‌نویسی C# را در اینجا خواهند یافت.»

—Eric Lippert، C# Standards Committee

Twitter: @oreillymedia

linkedin.com/company/oreilly-media

youtube.com/oreillymedia

9 781098 147440
56999

US $69.99   CAN $87.99

ISBN: 978-1-098-14744-0

پکن • بوستون • فارنهام • سباستوپل • توکیوO’REILLY®

C# 12 در یک NUTSHELL

مرجع قطعی

Joseph Albahari

978-1-098-14744-0
[LSI]

C# 12 در یک Nutshell

نوشتهٔ Joseph Albahari

حق‌نشر © 2024 Joseph Albahari. همهٔ حقوق محفوظ است.

چاپ‌شده در ایالات متحدهٔ آمریکا.

منتشرشده توسط O’Reilly Media, Inc.، نشانی: 1005 Gravenstein Highway North, Sebastopol, CA 95472.

کتاب‌های O’Reilly را می‌توان برای استفادهٔ آموزشی، تجاری یا تبلیغات فروش خریداری کرد. نسخه‌های آنلاین نیز برای بیشتر عنوان‌ها در دسترس هستند (http://oreilly.com). برای اطلاعات بیشتر با بخش فروش سازمانی/مؤسسه‌ای تماس بگیرید: 800-998-9938 یا corporate@oreilly.com.

  • Acquisitions Editor: Brian Guerin
  • Development Editor: Corbin Collins
  • Production Editor: Kristen Brown
  • Copyeditor: Charles Roumeliotis
  • Proofreader: Piper Editorial Consulting, LLC
  • Indexer: WordCo Indexing Services, Inc.
  • Interior Designer: David Futato
  • Cover Designer: Karen Montgomery
  • Illustrator: Kate Dullea

دسامبر 2023: ویرایش اول

تاریخچهٔ بازبینی برای ویرایش اول

2023-11-14: First Release

برای جزئیات انتشار، http://oreilly.com/catalog/errata.csp?isbn=9781098147440 را ببینید.

لوگوی O’Reilly علامت تجاری ثبت‌شدهٔ O’Reilly Media, Inc. است. C# 12 in a Nutshell، تصویر جلد و پوشش تجاری مرتبط، علامت‌های تجاری O’Reilly Media, Inc. هستند.

دیدگاه‌های بیان‌شده در این اثر متعلق به نویسنده‌اند و نمایانگر دیدگاه‌های ناشر نیستند. با اینکه ناشر و نویسنده با حسن نیت کوشیده‌اند از دقیق‌بودن اطلاعات و دستورالعمل‌های موجود در این اثر اطمینان حاصل کنند، ناشر و نویسنده تمام مسئولیت مربوط به خطاها یا حذف‌ها را رد می‌کنند؛ از جمله، بدون محدودیت، مسئولیت خسارت‌های ناشی از استفاده از یا اتکا به این اثر. استفاده از اطلاعات و دستورالعمل‌های موجود در این اثر با مسئولیت خود شماست. اگر هر نمونهٔ کد یا فناوری دیگری که این اثر دربردارد یا توصیف می‌کند مشمول مجوزهای متن‌باز یا حقوق مالکیت فکری دیگران باشد، مسئولیت اطمینان از انطباق استفادهٔ شما با چنین مجوزها و/یا حقوقی بر عهدهٔ شماست.

فهرست مطالب — صفحهٔ 5

عنوانصفحهٔ کتاب
پیشگفتار
Preface
xi
1. معرفی C# و .NET
1. Introducing C# and .NET
1
شیءگرایی
Object Orientation
1
ایمنی نوع
Type Safety
2
مدیریت حافظه
Memory Management
3
پشتیبانی از پلتفرم
Platform Support
3
CLRها، BCLها و Runtimeها
CLRs, BCLs, and Runtimes
3
تاریخچه‌ای کوتاه از C#
A Brief History of C#
8
2. مبانی زبان C#
2. C# Language Basics
31
نخستین برنامهٔ C#
A First C# Program
31
نحو
Syntax
34
مبانی Type
Type Basics
36
Typeهای عددی
Numeric Types
47
Type بولی و Operatorها
Boolean Type and Operators
55
رشته‌ها و کاراکترها
Strings and Characters
57
آرایه‌ها
Arrays
61
متغیرها و پارامترها
Variables and Parameters
67
Expressionها و Operatorها
Expressions and Operators
78
Operatorهای Null
Null Operators
82
دستورها
Statements
84
Namespaceها
Namespaces
95
3. ایجاد Typeها در C#
3. Creating Types in C#
103
Classها
Classes
103
وراثت
Inheritance
126
Typeِ object
The object Type
138
Structها
Structs
142

فهرست مطالب — صفحهٔ 6

عنوانصفحهٔ کتاب
Modifierهای دسترسی
Access Modifiers
145
Interfaceها
Interfaces
147
Enumها
Enums
154
Typeهای تو‌در‌تو
Nested Types
157
Genericها
Generics
159
4. C# پیشرفته
4. Advanced C#
173
Delegateها
Delegates
173
Eventها
Events
181
Lambda Expressionها
Lambda Expressions
188
Methodهای ناشناس
Anonymous Methods
194
Statementهای try و Exceptionها
try Statements and Exceptions
195
Enumeration و Iteratorها
Enumeration and Iterators
203
Value Typeهای Nullable
Nullable Value Types
210
Reference Typeهای Nullable
Nullable Reference Types
215
Extension Methodها
Extension Methods
217
Typeهای ناشناس
Anonymous Types
220
Tupleها
Tuples
222
Recordها
Records
227
Patternها
Patterns
238
Attributeها
Attributes
243
Attributeهای اطلاعات Caller
Caller Info Attributes
246
Binding پویا
Dynamic Binding
248
Overload کردن Operator
Operator Overloading
256
چندریختی Static
Static Polymorphism
260
کد Unsafe و Pointerها
Unsafe Code and Pointers
263
Directiveهای Preprocessor
Preprocessor Directives
270
مستندسازی XML
XML Documentation
272
5. نمای کلی .NET
5. .NET Overview
277
Targetهای Runtime و TFMها
Runtime Targets and TFMs
279
.NET Standard
.NET Standard
279
Assemblyهای Reference
Reference Assemblies
281
نسخه‌های Runtime و زبان C#
Runtime and C# Language Versions
281
CLR و BCL
The CLR and BCL
281
لایه‌های Application
Application Layers
286
6. مبانی .NET
6. .NET Fundamentals
291
کار با String و Text
String and Text Handling
291
تاریخ‌ها و زمان‌ها
Dates and Times
304

فهرست مطالب — صفحهٔ 7

عنوانصفحهٔ کتاب
تاریخ‌ها و منطقه‌های زمانی
Dates and Time Zones
312
Formatting و Parsing
Formatting and Parsing
317
Format Stringهای استاندارد و Flagهای Parsing
Standard Format Strings and Parsing Flags
323
سازوکارهای دیگر Conversion
Other Conversion Mechanisms
330
Globalization
Globalization
334
کار با اعداد
Working with Numbers
335
Enumها
Enums
340
Structِ Guid
The Guid Struct
344
مقایسهٔ برابری
Equality Comparison
344
مقایسهٔ ترتیب
Order Comparison
355
Classهای Utility
Utility Classes
358
7. Collectionها
7. Collections
365
Enumeration
Enumeration
366
Interfaceهای ICollection و IList
The ICollection and IList Interfaces
373
Classِ Array
The Array Class
377
Listها، Queueها، Stackها و Setها
Lists, Queues, Stacks, and Sets
385
Dictionaryها
Dictionaries
394
Collectionهای قابل سفارشی‌سازی و Proxyها
Customizable Collections and Proxies
401
Collectionهای Immutable
Immutable Collections
406
Collectionهای Frozen
Frozen Collections
410
متصل‌کردن Equality و Order
Plugging in Equality and Order
411
8. Queryهای LINQ
8. LINQ Queries
419
شروع کار
Getting Started
419
Syntax روان (Fluent)
Fluent Syntax
421
Query Expressionها
Query Expressions
427
اجرای Deferred
Deferred Execution
432
Subqueryها
Subqueries
438
راهبردهای Composition
Composition Strategies
442
راهبردهای Projection
Projection Strategies
445
Queryهای Interpreted
Interpreted Queries
448
EF Core
EF Core
454
ساخت Query Expressionها
Building Query Expressions
466
9. Operatorهای LINQ
9. LINQ Operators
471
نمای کلی
Overview
472
Filtering
Filtering
475
Projecting
Projecting
480
Joining
Joining
492

فهرست مطالب — صفحهٔ 8

عنوانصفحهٔ کتاب
Ordering
Ordering
500
Grouping
Grouping
503
Operatorهای Set
Set Operators
507
Methodهای Conversion
Conversion Methods
509
Operatorهای Element
Element Operators
512
Methodهای Aggregation
Aggregation Methods
514
Quantifierها
Quantifiers
519
Methodهای Generation
Generation Methods
520
10. LINQ to XML
10. LINQ to XML
521
نمای کلی معماری
Architectural Overview
521
نمای کلی X-DOM
X-DOM Overview
522
ساخت Instance از X-DOM
Instantiating an X-DOM
526
Navigation و Query
Navigating and Querying
528
Update کردن X-DOM
Updating an X-DOM
534
کار با Valueها
Working with Values
537
Documentها و Declarationها
Documents and Declarations
539
Nameها و Namespaceها
Names and Namespaces
543
Annotationها
Annotations
548
Projection به X-DOM
Projecting into an X-DOM
549
11. فناوری‌های دیگر XML و JSON
11. Other XML and JSON Technologies
553
XmlReader
XmlReader
553
XmlWriter
XmlWriter
561
Patternهای استفاده از XmlReader/XmlWriter
Patterns for Using XmlReader/XmlWriter
563
کار با JSON
Working with JSON
568
12. Disposal و Garbage Collection
12. Disposal and Garbage Collection
581
IDisposable، Dispose و Close
IDisposable, Dispose, and Close
581
Garbage Collection خودکار
Automatic Garbage Collection
587
Finalizerها
Finalizers
589
نحوهٔ کار GC
How the GC Works
593
نشت‌های حافظهٔ Managed
Managed Memory Leaks
600
Weak Referenceها
Weak References
603
13. Diagnostics
13. Diagnostics
607
Compilation شرطی
Conditional Compilation
607
Classهای Debug و Trace
Debug and Trace Classes
611
یکپارچه‌سازی Debugger
Debugger Integration
614
Processها و Threadهای Process
Processes and Process Threads
615

فهرست مطالب — صفحهٔ 9

عنوانصفحهٔ کتاب
StackTrace و StackFrame
StackTrace and StackFrame
616
Event Logهای Windows
Windows Event Logs
618
Counterهای Performance
Performance Counters
620
Classِ Stopwatch
The Stopwatch Class
624
ابزارهای Diagnostic چندپلتفرمی
Cross-Platform Diagnostic Tools
625
14. Concurrency و Asynchrony
14. Concurrency and Asynchrony
631
مقدمه
Introduction
631
Threading
Threading
632
Taskها
Tasks
648
اصول Asynchrony
Principles of Asynchrony
656
Functionهای Asynchronous در C#
Asynchronous Functions in C#
661
Patternهای Asynchronous
Asynchronous Patterns
681
Patternهای منسوخ
Obsolete Patterns
689
15. Streamها و I/O
15. Streams and I/O
693
معماری Stream
Stream Architecture
693
استفاده از Streamها
Using Streams
695
Adapterهای Stream
Stream Adapters
709
Streamهای فشرده‌سازی
Compression Streams
718
کار با Fileهای ZIP
Working with ZIP Files
721
کار با Fileهای Tar
Working with Tar Files
722
عملیات File و Directory
File and Directory Operations
723
امنیت OS
OS Security
733
Fileهای Memory-Mapped
Memory-Mapped Files
736
16. Networking
16. Networking
741
معماری Network
Network Architecture
741
Addressها و Portها
Addresses and Ports
743
URIها
URIs
744
HttpClient
HttpClient
746
نوشتن HTTP Server
Writing an HTTP Server
755
استفاده از DNS
Using DNS
758
ارسال Mail با SmtpClient
Sending Mail with SmtpClient
758
استفاده از TCP
Using TCP
759
دریافت Mail از POP3 با TCP
Receiving POP3 Mail with TCP
763
17. Assemblyها
17. Assemblies
765
درون یک Assembly چیست
What’s in an Assembly
765
Strong Nameها و Signingِ Assembly
Strong Names and Assembly Signing
770

فهرست مطالب — صفحهٔ 10

عنوانصفحهٔ کتاب
نام‌های Assembly
Assembly Names
771
Signing با Authenticode
Authenticode Signing
773
Resourceها و Satellite Assemblyها
Resources and Satellite Assemblies
776
Load، Resolve و Isolate کردن Assemblyها
Loading, Resolving, and Isolating Assemblies
783
18. Reflection و Metadata
18. Reflection and Metadata
805
Reflect و Activate کردن Typeها
Reflecting and Activating Types
806
Reflect و Invoke کردن Memberها
Reflecting and Invoking Members
813
Reflect کردن Assemblyها
Reflecting Assemblies
827
کار با Attributeها
Working with Attributes
828
تولید Dynamic Code
Dynamic Code Generation
834
Emit کردن Assemblyها و Typeها
Emitting Assemblies and Types
841
Emit کردن Memberهای Type
Emitting Type Members
844
Emit کردن Methodها و Typeهای Generic
Emitting Generic Methods and Types
849
Targetهای دشوار برای Emission
Awkward Emission Targets
851
Parsingِ IL
Parsing IL
855
19. برنامه‌نویسی Dynamic
19. Dynamic Programming
861
Dynamic Language Runtime
The Dynamic Language Runtime
861
Resolution پویا برای Overloadهای Member
Dynamic Member Overload Resolution
863
پیاده‌سازی Objectهای Dynamic
Implementing Dynamic Objects
869
Interoperability با زبان‌های Dynamic
Interoperating with Dynamic Languages
872
20. Cryptography
20. Cryptography
875
نمای کلی
Overview
875
Data Protection در Windows
Windows Data Protection
876
Hashing
Hashing
877
Encryption متقارن
Symmetric Encryption
879
Encryption و Signing با Public Key
Public-Key Encryption and Signing
884
21. Threading پیشرفته
21. Advanced Threading
889
نمای کلی Synchronization
Synchronization Overview
890
Locking انحصاری
Exclusive Locking
890
Locking و Thread Safety
Locking and Thread Safety
898
Locking غیرانحصاری
Nonexclusive Locking
904
Signaling با Event Wait Handleها
Signaling with Event Wait Handles
911
Classِ Barrier
The Barrier Class
919
Initialization به‌صورت Lazy
Lazy Initialization
920
Storage محلی Thread
Thread-Local Storage
923
Timerها
Timers
926

فهرست مطالب — صفحهٔ 11

عنوانصفحهٔ کتاب
22. برنامه‌نویسی Parallel
22. Parallel Programming
931
چرا PFX؟
Why PFX?
932
PLINQ
PLINQ
935
Classِ Parallel
The Parallel Class
948
Parallelism با Task
Task Parallelism
954
کار با AggregateException
Working with AggregateException
964
Collectionهای Concurrent
Concurrent Collections
966
BlockingCollection<T>
BlockingCollection<T>
969
23. Span<T> و Memory<T>
23. Span<T> and Memory<T>
973
Spanها و Slicing
Spans and Slicing
974
Memory<T>
Memory<T>
978
Enumeratorهای فقط رو‌به‌جلو
Forward-Only Enumerators
980
کار با حافظهٔ Stack-Allocated و Unmanaged
Working with Stack-Allocated and Unmanaged Memory
982
24. Interoperability با Native و COM
24. Native and COM Interoperability
985
فراخوانی Native DLLها
Calling into Native DLLs
985
Marshalingِ Type و Parameter
Type and Parameter Marshaling
986
Callback از کد Unmanaged
Callbacks from Unmanaged Code
991
شبیه‌سازی Union در C
Simulating a C Union
994
حافظهٔ Shared
Shared Memory
995
نگاشت Struct به حافظهٔ Unmanaged
Mapping a Struct to Unmanaged Memory
997
COM Interoperability
COM Interoperability
1001
فراخوانی Componentِ COM از C#
Calling a COM Component from C#
1003
Embed کردن Interop Typeها
Embedding Interop Types
1006
Expose کردن Objectهای C# به COM
Exposing C# Objects to COM
1007
25. Regular Expressionها
25. Regular Expressions
1011
مبانی Regular Expression
Regular Expression Basics
1011
Quantifierها
Quantifiers
1016
Assertionهای Zero-Width
Zero-Width Assertions
1017
Groupها
Groups
1020
جایگزینی و Split کردن Text
Replacing and Splitting Text
1022
Regular Expressionهای کاربردی (Cookbook)
Cookbook Regular Expressions
1023
مرجع زبان Regular Expression
Regular Expressions Language Reference
1027
نمایه
Index
1031

[این صفحه در فایل اصلی بدون متن است.]

پیشگفتار

C# 12 نهمین به‌روزرسانی عمدهٔ زبان برنامه‌نویسی شاخص Microsoft را نمایندگی می‌کند و C# را به‌عنوان زبانی با انعطاف‌پذیری و گستره‌ای غیرمعمول قرار می‌دهد. در یک سوی طیف، abstractionهای سطح بالا مانند query expressionها و asynchronous continuationها را ارائه می‌کند؛ در سوی دیگر، از طریق constructهایی مانند custom value typeها و pointerهای اختیاری، بهره‌وری سطح پایین را ممکن می‌سازد.

بهای این رشد آن است که بیش از همیشه چیز برای یادگیری وجود دارد. هرچند ابزارهایی مانند IntelliSense شرکت Microsoft—و referenceهای آنلاین—برای کمک به شما در کار روزمره عالی‌اند، آن‌ها وجود یک نقشهٔ ازپیش‌موجود از دانش مفهومی را فرض می‌کنند. این کتاب دقیقاً همان نقشهٔ دانش را در سبکی موجز و یکپارچه—عاری از شلوغی و مقدمه‌های طولانی—فراهم می‌کند.

همانند هفت ویرایش گذشته، C# 12 in a Nutshell حول مفهوم‌ها و use caseها سازمان‌دهی شده است و هم برای خواندن ترتیبی و هم برای مرور تصادفی مناسب است. در عین حال به عمق قابل‌توجهی می‌رود، در حالی که فقط دانش پایه‌ای پیش‌زمینه را فرض می‌کند؛ بنابراین هم برای خوانندگان سطح متوسط و هم پیشرفته قابل‌دسترسی است.

این کتاب C#، Common Language Runtime (CLR) و Base Class Library (BCL) در .NET 8 را پوشش می‌دهد. این تمرکز را انتخاب کرده‌ایم تا برای موضوعات دشوار و پیشرفته فضا داشته باشیم، بدون اینکه عمق یا خوانایی قربانی شود. قابلیت‌هایی که اخیراً به C# افزوده شده‌اند علامت‌گذاری شده‌اند تا بتوانید از این کتاب به‌عنوان مرجع C# 11 و C# 10 نیز استفاده کنید.

مخاطبان موردنظر

این کتاب مخاطبان سطح متوسط تا پیشرفته را هدف گرفته است. دانش قبلی C# لازم نیست، اما مقداری تجربهٔ عمومی برنامه‌نویسی ضروری است. برای تازه‌کار، این کتاب مکمل یک مقدمهٔ tutorial-style برای برنامه‌نویسی است، نه جایگزین آن.

این کتاب همراهی ایده‌آل برای مجموعهٔ گسترده‌ای از کتاب‌هاست که روی یک فناوری کاربردی مانند ASP.NET Core یا Windows Presentation Foundation (WPF) تمرکز دارند. C# 12 in a Nutshell حوزه‌هایی از زبان و .NET را پوشش می‌دهد که چنین کتاب‌هایی حذف می‌کنند، و برعکس.

اگر به دنبال کتابی هستید که فقط سطح همهٔ فناوری‌های .NET را مرور کند، این کتاب برای شما نیست. همچنین اگر می‌خواهید دربارهٔ APIهای ویژهٔ توسعهٔ deviceهای mobile یاد بگیرید، این کتاب مناسب نیست.

این کتاب چگونه سازمان‌دهی شده است

فصل‌های 2 تا 4 صرفاً روی C# تمرکز دارند؛ از مبانی syntax، typeها و variableها آغاز می‌کنند و با موضوعات پیشرفته‌ای مانند unsafe code و preprocessor directiveها پایان می‌یابند. اگر با زبان تازه آشنا می‌شوید، باید این فصل‌ها را به‌ترتیب بخوانید.

فصل‌های باقی‌مانده بر Base Class Libraryهای .NET 8 تمرکز دارند و موضوعاتی مانند Language-Integrated Query (LINQ)، XML، collectionها، concurrency، I/O و networking، مدیریت حافظه، reflection، برنامه‌نویسی dynamic، attributeها، cryptography و native interoperability را پوشش می‌دهند. بیشتر این فصل‌ها را می‌توانید به‌صورت تصادفی بخوانید، به‌جز فصل‌های 5 و 6 که پایه‌ای برای موضوعات بعدی می‌سازند. همچنین بهتر است سه فصل LINQ را به‌ترتیب بخوانید و برخی فصل‌ها مقداری دانش concurrency را فرض می‌کنند که در فصل 14 پوشش می‌دهیم.

برای استفاده از این کتاب به چه چیزهایی نیاز دارید

مثال‌های این کتاب به .NET 8 نیاز دارند. مستندات .NET شرکت Microsoft نیز برای جست‌وجوی typeها و memberهای منفرد مفید خواهند بود (و به‌صورت آنلاین در دسترس‌اند).

اگرچه می‌توان source code را در یک text editor ساده نوشت و برنامه را از command line build کرد، با یک code scratchpad برای آزمایش فوری code snippetها و یک integrated development environment (IDE) برای تولید executableها و libraryها بسیار بهره‌ورتر خواهید بود.

برای code scratchpad در Windows، LINQPad 8 را از www.linqpad.net دریافت کنید (رایگان). LINQPad به‌طور کامل از C# 12 پشتیبانی می‌کند و توسط نویسنده نگهداری می‌شود.

برای IDE در Windows، Visual Studio 2022 را دریافت کنید: هر ویرایشی برای مطالب این کتاب مناسب است. برای IDE چندپلتفرمی، Visual Studio Code را دریافت کنید.

قراردادهای استفاده‌شده در این کتاب

کتاب برای نشان‌دادن رابطه‌های میان typeها از notation پایهٔ UML استفاده می‌کند، همان‌طور که در شکل P-1 نشان داده شده است. یک مستطیل مایل به معنای abstract class است؛ یک دایره به معنای interface است. خطی با triangle توخالی inheritance را نشان می‌دهد و triangle به سمت base type اشاره می‌کند. خطی با arrow یک association یک‌طرفه را نشان می‌دهد؛ خط بدون arrow یک association دوطرفه را نشان می‌دهد.

شکل P-1. نمودار نمونهنمونهٔ notation UML شامل interface، base type، subtype، abstract class و associationهای یک‌طرفه و دوطرفه.InterfaceBase typeSubtypeAbstract classType ارجاع‌دهندهPropertyType مرجع‌شده(Association یک‌طرفه)Type ارجاع‌دهندهPropertyType ارجاع‌دهندهProperty(Association دوطرفه)
شکل P-1. نمودار نمونه

قراردادهای typographical زیر در این کتاب استفاده می‌شوند:

Italic
اصطلاح‌های جدید، URIها، filenameها و directoryها را نشان می‌دهد.
Constant width
کد C#، keywordها و identifierها، و خروجی برنامه را نشان می‌دهد.
Constant width bold
بخش highlightشده‌ای از code را نشان می‌دهد.
Constant width italic
متنی را نشان می‌دهد که باید با valueهای ارائه‌شده توسط کاربر جایگزین شود.

استفاده از مثال‌های کد

مطالب تکمیلی (مثال‌های code، تمرین‌ها و غیره) برای دریافت در http://www.albahari.com/nutshell در دسترس است.

این کتاب برای کمک به انجام کار شماست. به‌طور کلی، می‌توانید codeهای این کتاب را در برنامه‌ها و مستندات خود استفاده کنید. مگر اینکه بخش قابل‌توجهی از code را بازتولید کنید، نیازی نیست برای permission با ما تماس بگیرید. برای مثال، نوشتن برنامه‌ای که از چند قطعه code این کتاب استفاده می‌کند نیازی به permission ندارد. فروش یا توزیع مثال‌های کتاب‌های O’Reilly نیازمند permission است. پاسخ‌دادن به یک سؤال با استناد به این کتاب و نقل code نمونه نیازی به permission ندارد (هرچند از attribution قدردانی می‌کنیم). واردکردن مقدار قابل‌توجهی از code نمونهٔ این کتاب در مستندات محصول شما نیازمند permission است.

از attribution قدردانی می‌کنیم، اما معمولاً آن را الزامی نمی‌دانیم. attribution معمولاً شامل عنوان، نویسنده، ناشر و ISBN است. برای مثال: «C# 12 in a Nutshell by Joseph Albahari (O’Reilly). Copyright 2024 Joseph Albahari, 978-1-098-14744-0.»

اگر احساس می‌کنید استفادهٔ شما از code exampleها خارج از fair use یا permission داده‌شده در اینجا است، می‌توانید با permissions@oreilly.com تماس بگیرید.

چگونه با ما تماس بگیرید

لطفاً دیدگاه‌ها و پرسش‌های مربوط به این کتاب را به ناشر ارسال کنید:

O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-889-8969 (in the United States or Canada)
707-829-7019 (international or local)
707-829-0104 (fax)
support@oreilly.com

https://www.oreilly.com/about/contact.html

برای این کتاب صفحهٔ webی داریم که errata، exampleها و هر اطلاعات اضافی را در آن فهرست می‌کنیم. این صفحه در https://oreil.ly/c-sharp-nutshell-12 در دسترس است.

code listingها و resourceهای اضافی در http://www.albahari.com/nutshell/ ارائه شده‌اند.

برای خبر و اطلاعات دربارهٔ کتاب‌ها و دوره‌های ما: https://oreilly.com.

ما را در LinkedIn پیدا کنید: https://linkedin.com/company/oreilly-media

در Twitter دنبال کنید: https://twitter.com/oreillymedia

در YouTube ببینید: https://youtube.com/oreillymedia

قدردانی‌ها

Joseph Albahari

از نخستین شکل این کتاب در سال 2007، این اثر به نظر برخی technical reviewerهای عالی متکی بوده است. برای مشارکتشان در ویرایش‌های اخیر، به‌طور ویژه از Stephen Toub، Paulo Morgado، Fred Silberberg، Vitek Karas، Aaron Robinson، Jan Vorlicek، Sam Gentile، Rod Stephens، Jared Parsons، Matthew Groves، Dixin Yan، Lee Coward، Bonnie DeWitt، Wonseok Chae، Lori Lalonde و James Montemagno تشکر می‌کنم.

و برای مشارکتشان در ویرایش‌های پیشین، عمیقاً از Eric Lippert، Jon Skeet، Stephen Toub، Nicholas Paldino، Chris Burrows، Shawn Farkas، Brian Grunkemeyer، Maoni Stephens، David DeWinter، Mike Barnett، Melitta Andersen، Mitch Wheat، Brian Peek، Krzysztof Cwalina، Matt Warren، Joel Pobar، Glyn Griffiths، Ion Vasilian، Brad Abrams و Adam Nathan سپاسگزارم.

قدردانم که بسیاری از technical reviewerها افراد بسیار موفقی در Microsoft هستند، و به‌طور ویژه از شما تشکر می‌کنم که وقت گذاشتید تا این کتاب را به سطح کیفی بالاتری برسانید.

می‌خواهم از Ben Albahari و Eric Johannsen که در ویرایش‌های قبلی مشارکت داشتند و از تیم O’Reilly—به‌ویژه editor کارآمد و پاسخ‌گوی من Corbin Collins—تشکر کنم. در پایان، عمیق‌ترین سپاس من از همسر فوق‌العاده‌ام Li Albahari است که حضورش در تمام مدت پروژه مرا خوشحال نگه داشت.

[این صفحه در فایل اصلی بدون متن است.]

منبع: C# 12 in a Nutshell: The Definitive Reference — Joseph Albahari — O’Reilly Media, Inc. — Copyright © 2024 Joseph Albahari — ISBN 978-1-098-14744-0

امتیاز کاربران به این مقاله

☆☆☆☆☆

0 نفر امتیاز داده اند. میانگین: 0.0 از 5

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

0 / 500

اطلاعات تماس

  • آدرس:اصفهان-خیابان ام کلثوم غربی - بعد خیابان تخم چی - بیست متر بعد از پیتزا ننه شب - کوچه تعمیر گاه سمار زغالی - پلاک 354 - درب مشکی - طبقه هفتم
  • آدرس ایمیل:najafzade@gmail.com
  • وب سایت:http://www.a00b.com/
  • تلفن ثابت:(+98)9131253620
  • تلفن همراه:09131253620