没有合适的资源?快使用搜索试试~ 我知道了~
首页掌握C#7.0语言特性与内部原理:Pro C# 7.0详解
掌握C#7.0语言特性与内部原理:Pro C# 7.0详解
需积分: 10 3 下载量 140 浏览量
更新于2024-07-17
收藏 26.99MB PDF 举报
"《Pro C# 7.0:与.NET和.NET Core 第八版》是由Andrew Troelsen和Philip Japikse合著的一本专业级C#编程指南。该书针对C# 7.0语言进行了深入讲解,特别关注.NET和.NET Core平台,适合那些希望全面掌握C#语言特性和内部原理的开发者。作为第八版,它在前作的基础上,对新版本的特性进行了详尽解读,帮助读者紧跟技术发展。 本书的特点在于其清晰的阐述方式和整体架构,使学习者能够通过作者精心设计的路径,逐步理解并掌握C#语言的各个方面,包括语法、类设计、异步编程、函数式编程、元编程等。书中不仅注重理论知识,还包含了大量的实战项目和示例,有助于读者将所学应用到实际开发中。 对于.NET和.NET Core的开发者来说,这是一本不可或缺的参考书籍,因为书中详细介绍了这些框架如何与C#结合,以及如何利用它们构建高效、可扩展的应用程序。此外,由于版权问题,所有内容都受到保护,未经许可的复制或传播是被禁止的,以确保知识的完整性和原创性。 在技术更新迅速的IT领域,该书的电子版提供了方便的在线访问方式,便于读者根据需要随时查阅。同时,书中的ISBN号码和Library of Congress Control Number也提供了正式的出版和版权信息,便于读者验证其权威性。 《Pro C# 7.0》是一本实用且权威的C#编程教程,无论你是初学者还是经验丰富的开发人员,都能从中获得有价值的洞见和技能提升。作者的指导和深入浅出的讲解,使得理解和掌握C# 7.0变得更加轻松和有效。"
资源详情
资源推荐
■ Contents
xvi
Interfaces As Parameters ............................................................................................. 293
Interfaces As Return Values ......................................................................................... 295
Arrays of Interface Types .............................................................................................. 296
Implementing Interfaces Using Visual Studio ............................................................... 297
Explicit Interface Implementation ................................................................................ 299
Designing Interface Hierarchies ................................................................................... 301
Multiple Inheritance with Interface Types ........................................................................................... 303
The IEnumerable and IEnumerator Interfaces .............................................................. 305
Building Iterator Methods with the yield Keyword ..............................................................................308
Building a Named Iterator ...................................................................................................................310
The ICloneable Interface............................................................................................... 311
A More Elaborate Cloning Example.....................................................................................................313
The IComparable Interface ........................................................................................... 316
Specifying Multiple Sort Orders with IComparer ................................................................................319
Custom Properties and Custom Sort Types......................................................................................... 320
Summary ...................................................................................................................... 321
■Part IV: Advanced C# Programming ����������������������������������������������� 323
■Chapter 9: Collections and Generics ������������������������������������������������������������������ 325
The Motivation for Collection Classes .......................................................................... 325
The System.Collections Namespace .................................................................................................. 327
A Survey of System.Collections.Specialized Namespace ................................................................... 329
The Problems of Nongeneric Collections ..................................................................... 330
The Issue of Performance ................................................................................................................... 330
The Issue of Type Safety ..................................................................................................................... 333
A First Look at Generic Collections ..................................................................................................... 336
The Role of Generic Type Parameters .......................................................................... 337
Specifying Type Parameters for Generic Classes/Structures ............................................................. 339
Specifying Type Parameters for Generic Members ............................................................................. 340
Specifying Type Parameters for Generic Interfaces ............................................................................ 340
■ Contents
xvii
The System.Collections.Generic Namespace ............................................................... 342
Understanding Collection Initialization Syntax ................................................................................... 343
Working with the List<T> Class .........................................................................................................345
Working with the Stack<T> Class ...................................................................................................... 346
Working with the Queue<T> Class .....................................................................................................347
Working with the SortedSet<T> Class ...............................................................................................348
Working with the Dictionary<TKey, TValue> Class .............................................................................350
The System.Collections.ObjectModel Namespace ....................................................... 351
Working with ObservableCollection<T> ............................................................................................. 352
Creating Custom Generic Methods ............................................................................... 354
Inference of Type Parameters ............................................................................................................. 356
Creating Custom Generic Structures and Classes ........................................................ 357
The default Keyword in Generic Code.................................................................................................358
Constraining Type Parameters ...................................................................................... 360
Examples Using the where Keyword ..................................................................................................360
The Lack of Operator Constraints .......................................................................................................362
Summary ...................................................................................................................... 363
■Chapter 10: Delegates, Events, and Lambda Expressions ��������������������������������� 365
Understanding the .NET Delegate Type ........................................................................ 365
Defining a Delegate Type in C# ........................................................................................................... 366
The System.MulticastDelegate and System.Delegate Base Classes .................................................. 369
The Simplest Possible Delegate Example .................................................................... 370
Investigating a Delegate Object .......................................................................................................... 372
Sending Object State Notifications Using Delegates .................................................... 373
Enabling Multicasting ......................................................................................................................... 376
Removing Targets from a Delegate’s Invocation List .......................................................................... 378
Method Group Conversion Syntax ...................................................................................................... 379
Understanding Generic Delegates ................................................................................ 380
The Generic Action<> and Func<> Delegates ................................................................................... 382
■ Contents
xviii
Understanding C# Events ............................................................................................. 384
The C# event Keyword ........................................................................................................................386
Events Under the Hood ....................................................................................................................... 387
Listening to Incoming Events..............................................................................................................388
Simplifying Event Registration Using Visual Studio ............................................................................ 389
Cleaning Up Event Invocation Using the C# 6.0 Null-Conditional Operator ........................................ 391
Creating Custom Event Arguments ..................................................................................................... 392
The Generic EventHandler<T> Delegate ............................................................................................ 393
Understanding C# Anonymous Methods ...................................................................... 394
Accessing Local Variables ..................................................................................................................396
Understanding Lambda Expressions ............................................................................ 397
Dissecting a Lambda Expression ........................................................................................................400
Processing Arguments Within Multiple Statements ............................................................................ 401
Lambda Expressions with Multiple (or Zero) Parameters ...................................................................403
Retrofitting the CarEvents Example Using Lambda Expressions ........................................................ 404
Lambdas and Expression-Bodied Members (Updated) .......................................................................404
Summary ...................................................................................................................... 406
■Chapter 11: Advanced C# Language Features ��������������������������������������������������� 407
Understanding Indexer Methods .................................................................................. 407
Indexing Data Using String Values ...................................................................................................... 409
Overloading Indexer Methods .............................................................................................................411
Indexers with Multiple Dimensions ....................................................................................................411
Indexer Definitions on Interface Types ................................................................................................ 412
Understanding Operator Overloading ........................................................................... 412
Overloading Binary Operators ............................................................................................................. 413
And What of the += and –= Operators? ............................................................................................. 416
Overloading Unary Operators.............................................................................................................. 416
Overloading Equality Operators .......................................................................................................... 417
Overloading Comparison Operators ....................................................................................................418
Final Thoughts Regarding Operator Overloading ................................................................................ 418
■ Contents
xix
Understanding Custom Type Conversions .................................................................... 419
Recall: Numerical Conversions ........................................................................................................... 419
Recall: Conversions Among Related Class Types ................................................................................ 419
Creating Custom Conversion Routines ...............................................................................................420
Additional Explicit Conversions for the Square Type........................................................................... 423
Defining Implicit Conversion Routines ................................................................................................ 424
Understanding Extension Methods ............................................................................... 425
Defining Extension Methods ............................................................................................................... 426
Invoking Extension Methods ............................................................................................................... 427
Importing Extension Methods ............................................................................................................. 428
The IntelliSense of Extension Methods ............................................................................................... 428
Extending Types Implementing Specific Interfaces ............................................................................ 429
Understanding Anonymous Types ................................................................................ 431
Defining an Anonymous Type .............................................................................................................. 431
The Internal Representation of Anonymous Types .............................................................................. 432
The Implementation of ToString() and GetHashCode() ........................................................................ 434
The Semantics of Equality for Anonymous Types ............................................................................... 434
Anonymous Types Containing Anonymous Types ............................................................................... 436
Working with Pointer Types .......................................................................................... 436
The unsafe Keyword ........................................................................................................................... 438
Working with the * and & Operators ................................................................................................... 440
An Unsafe (and Safe) Swap Function .................................................................................................441
Field Access via Pointers (the -> Operator) ........................................................................................ 442
The stackalloc Keyword ......................................................................................................................442
Pinning a Type via the fixed Keyword ................................................................................................. 443
The sizeof Keyword ............................................................................................................................444
Summary ...................................................................................................................... 444
■Chapter 12: LINQ to Objects ������������������������������������������������������������������������������� 445
LINQ-Specific Programming Constructs ....................................................................... 445
Implicit Typing of Local Variables ....................................................................................................... 446
Object and Collection Initialization Syntax.......................................................................................... 446
■ Contents
xx
Lambda Expressions ...........................................................................................................................447
Extension Methods ............................................................................................................................. 448
Anonymous Types ............................................................................................................................... 449
Understanding the Role of LINQ ................................................................................... 449
LINQ Expressions Are Strongly Typed ................................................................................................. 450
The Core LINQ Assemblies .................................................................................................................. 450
Applying LINQ Queries to Primitive Arrays ................................................................... 451
Once Again, Using Extension Methods ............................................................................................... 453
Once Again, Without LINQ ................................................................................................................... 453
Reflecting Over a LINQ Result Set ...................................................................................................... 454
LINQ and Implicitly Typed Local Variables .......................................................................................... 455
LINQ and Extension Methods .............................................................................................................. 457
The Role of Deferred Execution ..........................................................................................................458
The Role of Immediate Execution ....................................................................................................... 459
Returning the Result of a LINQ Query ........................................................................... 460
Returning LINQ Results via Immediate Execution .............................................................................. 461
Applying LINQ Queries to Collection Objects ................................................................ 462
Accessing Contained Subobjects ....................................................................................................... 462
Applying LINQ Queries to Nongeneric Collections .............................................................................. 463
Filtering Data Using OfType<T>( ) ...................................................................................................... 464
Investigating the C# LINQ Query Operators .................................................................. 465
Basic Selection Syntax ....................................................................................................................... 466
Obtaining Subsets of Data .................................................................................................................. 467
Projecting New Data Types ................................................................................................................. 468
Obtaining Counts Using Enumerable ..................................................................................................469
Reversing Result Sets ......................................................................................................................... 470
Sorting Expressions ............................................................................................................................470
LINQ As a Better Venn Diagramming Tool ........................................................................................... 471
Removing Duplicates ..........................................................................................................................472
LINQ Aggregation Operations .............................................................................................................. 472
剩余1409页未读,继续阅读
michael_zing
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JDK 17 Linux版本压缩包解压与安装指南
- C++/Qt飞行模拟器教员控制台系统源码发布
- TensorFlow深度学习实践:CNN在MNIST数据集上的应用
- 鸿蒙驱动HCIA资料整理-培训教材与开发者指南
- 凯撒Java版SaaS OA协同办公软件v2.0特性解析
- AutoCAD二次开发中文指南下载 - C#编程深入解析
- C语言冒泡排序算法实现详解
- Pointofix截屏:轻松实现高效截图体验
- Matlab实现SVM数据分类与预测教程
- 基于JSP+SQL的网站流量统计管理系统设计与实现
- C语言实现删除字符中重复项的方法与技巧
- e-sqlcipher.dll动态链接库的作用与应用
- 浙江工业大学自考网站开发与继续教育官网模板设计
- STM32 103C8T6 OLED 显示程序实现指南
- 高效压缩技术:删除重复字符压缩包
- JSP+SQL智能交通管理系统:违章处理与交通效率提升
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功