CLR via C#, Third Edition图书推荐及下载

我们先来看看这书的作者Jeffrey Richter,Jeffrey Richter是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。他的第一本Windows著作Windows 3: A Developer's Guide大获好评,从而声名远扬。之后,他又推出了经典著作《Windows 高级编程指南》和《Windows核心编程》。如今这两本书早已成为Windows程序设计领域的颠峰之作,培育了几代软件开发设计人员。他的每一本新作问世,我们都有理由相信这是一本巨著,我们想要的一切尽在其中。Jeffery 是Wintellect公司的创始人之一,也是MSDN杂志.NET专栏的特邀编辑。现在他正领导开发该公司的.NET程序设计课程,向大众推广.NET技术。因为他自1999年开始就参与了微软.NET框架开发组的咨询工作,与这些一线人员一起经历了.NET的孕育与诞生,所以他对.NET思想的领悟、对.NET的细节熟稔,是其他任何作家难以企及的。他是.NET著作领域中当之无愧的一面旗帜。

2003年我买了这本书的第一版《Microsoft .NET框架程序设计(修订版)》,从那时我才真正深入了解.net,后来这本书被朋友借去没还,很让我咬牙切齿了一阵。

2006年我买了这本书的第二版《框架设计(第2版):CLR Via C#》,没完全看完,翻译的虽然不如第一版,但还不算垃圾,英文不太好的可以买本看看,但如果英文过的去也比较有空的话可以看看原版,网上有电子版下载

前天我在网上看到了这本书的最新版,下载,本来想看完再仔细写个读后感的,但鉴于全书896页,我觉得以我读英文的速度和我空余时间综合计算没3个月拿不下来,别耽误的别人,就先推荐一下吧。

作者:Jeffrey Richter

出版日期:February 2010

出版社:Microsoft Press

页数:896

ISBN:978-0-7356-4045-0

目录:

 

Part I CLR Basics

1 The CLRs Execution Model . 1

Compiling Source Code into Managed Modules . 1

Combining Managed Modules into Assemblies 5

Loading the Common Language Runtime 6

Executing Your Assemblys Code 9

IL and Verification 15

Unsafe Code 16

The Native Code Generator Tool: NGen.exe . 18

The Framework Class Library . 20

The Common Type System 22

The Common Language Specification . 25

Interoperability with Unmanaged Code 29

2 Building, Packaging, Deploying, and Administering Applications

and Types 31

.NET Framework Deployment Goals 32

Building Types into a Module 33

Response Files . 34

A Brief Look at Metadata . 36

Combining Modules to Form an Assembly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .43

Adding Assemblies to a Project by Using the Visual Studio IDE 49

Using the Assembly Linker 50

Adding Resource Files to an Assembly . 52

Assembly Version Resource Information . 53

Version Numbers 57

Culture . 58

Simple Application Deployment (Privately Deployed Assemblies) . 59

Simple Administrative Control (Configuration) 61

3 Shared Assemblies and Strongly Named Assemblies . 65

Two Kinds of Assemblies, Two Kinds of Deployment 66

Giving an Assembly a Strong Name . 67

The Global Assembly Cache 73

Building an Assembly That References a Strongly Named Assembly 75

Strongly Named Assemblies Are Tamper-Resistant 76

Delayed Signing . 77

Privately Deploying Strongly Named Assemblies 80

How the Runtime Resolves Type References 81

Advanced Administrative Control (Configuration) 84

Publisher Policy Control 87

Part II Designing Types

4 Type Fundamentals 91

All Types Are Derived from System.Object . 91

Casting Between Types . 93

Casting with the C# is and as Operators . 95

Namespaces and Assemblies . 97

How Things Relate at Runtime 102

5 Primitive, Reference, and Value Types . 113

Programming Language Primitive Types 113

Checked and Unchecked Primitive Type Operations . 117

Reference Types and Value Types . 121

Boxing and Unboxing Value Types . 127

Changing Fields in a Boxed Value Type by Using Interfaces (and Why You

Shouldnt Do This) . 140

Object Equality and Identity 143

Object Hash Codes 146

The dynamic Primitive Type 148

6 Type and Member Basics . 155

The Different Kinds of Type Members . 155

Type Visibility 158

Friend Assemblies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159

Member Accessibility 160

Static Classes . 162

Partial Classes, Structures, and Interfaces . 164

Components, Polymorphism, and Versioning 165

How the CLR Calls Virtual Methods, Properties, and Events 167

Using Type Visibility and Member Accessibility Intelligently . 172

Dealing with Virtual Methods When Versioning Types . . . . . . . . . . . . . . . . . . . . .175

7 Constants and Fields 181

Constants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .181

Fields 183

8 Methods . 187

Instance Constructors and Classes (Reference Types) . 187

Instance Constructors and Structures (Value Types) . 191

Type Constructors 194

Type Constructor Performance 198

Operator Overload Methods . 200

Operators and Programming Language Interoperability . 203

Conversion Operator Methods 204

Extension Methods 207

Rules and Guidelines 210

Extending Various Types with Extension Methods 211

The Extension Attribute 213

Partial Methods 213

Rules and Guidelines 216

9 Parameters . 219

Optional and Named Parameters . 219

Rules and Guidelines 220

The DefaultParameterValue and Optional Attributes 222

Implicitly Typed Local Variables 223

Passing Parameters by Reference to a Method 225

Passing a Variable Number of Arguments to a Method . 231

Parameter and Return Type Guidelines . 233

Const-ness 235

10 Properties 237

Parameterless Properties 237

Automatically Implemented Properties . 241

Defining Properties Intelligently 242

Object and Collection Initializers 245

Anonymous Types 247

The System.Tuple Type 250

Parameterful Properties . 252

The Performance of Calling Property Accessor Methods 257

Property Accessor Accessibility . 258

Generic Property Accessor Methods 258

11 Events . 259

Designing a Type That Exposes an Event 260

Step #1: Define a type that will hold any additional information

that should be sent to receivers of the event notification 261

Step #2: Define the event member . 262

Step #3: Define a method responsible for raising the event to

notify registered objects that the event has occurred . 263

Step #4: Define a method that translates the input into the desired event 266

How the Compiler Implements an Event . 266

Designing a Type That Listens for an Event 269

Explicitly Implementing an Event 271

12 Generics . 275

Generics in the Framework Class Library . 280

Wintellects Power Collections Library . 281

Generics Infrastructure . 282

Open and Closed Types 283

Generic Types and Inheritance 285

Generic Type Identity 287

Code Explosion . 288

Generic Interfaces 289

Generic Delegates 290

Delegate and Interface Contravariant and Covariant Generic Type Arguments 291

Generic Methods . 293

Generic Methods and Type Inference 294

Generics and Other Members . 296

Verifiability and Constraints . 296

Primary Constraints 299

Secondary Constraints . 300

Constructor Constraints 301

Other Verifiability Issues . 302

13 Interfaces . 307

Class and Interface Inheritance . 308

Defining an Interface 308

Inheriting an Interface 310

More About Calling Interface Methods . 312

Implicit and Explicit Interface Method Implementations (Whats Happening

Behind the Scenes) . 314

Generic Interfaces 315

Generics and Interface Constraints 318

Implementing Multiple Interfaces That Have the Same Method Name

and Signature 319

Improving Compile-Time Type Safety with Explicit Interface Method

Implementations 320

Be Careful with Explicit Interface Method Implementations . 322

Design: Base Class or Interface? 325

Part III Essential Types

14 Chars, Strings, and Working with Text 327

Characters . 327

The System.String Type . 330

Constructing Strings 330

Strings Are Immutable . 333

Comparing Strings . 334

String Interning . 340

String Pooling . 343

Examining a Strings Characters and Text Elements . 343

Other String Operations 346

Constructing a String Efficiently 346

Constructing a StringBuilder Object 347

StringBuilder Members 348

Obtaining a String Representation of an Object: ToString 350

Specific Formats and Cultures 351

Formatting Multiple Objects into a Single String . 355

Providing Your Own Custom Formatter . 356

Parsing a String to Obtain an Object: Parse . 359

Encodings: Converting Between Characters and Bytes 361

Encoding and Decoding Streams of Characters and Bytes 367

Base-64 String Encoding and Decoding 368

Secure Strings . 369

15 Enumerated Types and Bit Flags 373

Enumerated Types . 373

Bit Flags . 379

Adding Methods to Enumerated Types . 383

16 Arrays 385

Initializing Array Elements 388

Casting Arrays 390

All Arrays Are Implicitly Derived from System.Array . 392

All Arrays Implicitly Implement IEnumerable, ICollection, and IList 393

Passing and Returning Arrays 394

Creating Non-ZeroLower Bound Arrays 395

Array Access Performance 396

Unsafe Array Access and Fixed-Size Array 401

17 Delegates . 405

A First Look at Delegates 405

Using Delegates to Call Back Static Methods . 408

Using Delegates to Call Back Instance Methods 409

Demystifying Delegates 410

Using Delegates to Call Back Many Methods (Chaining) . 415

C#s Support for Delegate Chains . 419

Having More Control over Delegate Chain Invocation . 419

Enough with the Delegate Definitions Already (Generic Delegates) 422

C#s Syntactical Sugar for Delegates 423

Syntactical Shortcut #1: No Need to Construct a Delegate Object 424

Syntactical Shortcut #2: No Need to Define a Callback Method 424

Syntactical Shortcut #3: No Need to Wrap Local Variables in a Class

Manually to Pass Them to a Callback Method 428

Delegates and Reflection . 431

18 Custom Attributes 435

Using Custom Attributes 435

Defining Your Own Attribute Class . 439

Attribute Constructor and Field/Property Data Types 443

Detecting the Use of a Custom Attribute 444

Matching Two Attribute Instances Against Each Other 448

Detecting the Use of a Custom Attribute Without Creating Attribute-Derived

Objects . 451

Conditional Attribute Classes 454

19 Nullable Value Types 457

C#s Support for Nullable Value Types . 459

C#s Null-Coalescing Operator 462

The CLR Has Special Support for Nullable Value Types 463

Boxing Nullable Value Types 463

Unboxing Nullable Value Types . 463

Calling GetType via a Nullable Value Type . 464

Calling Interface Methods via a Nullable Value Type 464

Part IV Core Facilities

20 Exceptions and State Management . 465

Defining Exception . 466

Exception-Handling Mechanics 467

The try Block . 468

The catch Block . 469

The finally Block 470

The System.Exception Class 474

FCL-Defined Exception Classes 478

Throwing an Exception . 480

Defining Your Own Exception Class . 481

Trading Reliability for Productivity . 484

Guidelines and Best Practices 492

Use finally Blocks Liberally 492

Dont Catch Everything 494

Recovering Gracefully from an Exception 495

Backing Out of a Partially Completed Operation When an Unrecoverable

Exception OccursMaintaining State 496

Hiding an Implementation Detail to Maintain a Contract . 497

Unhandled Exceptions 500

Debugging Exceptions 504

Exception-Handling Performance Considerations 506

Constrained Execution Regions (CERs) . 509

Code Contracts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .512

21 Automatic Memory Management (Garbage Collection) 519

Understanding the Basics of Working in a Garbage-Collected Platform 520

Allocating Resources from the Managed Heap 521

The Garbage Collection Algorithm 523

Garbage Collections and Debugging 527

Using Finalization to Release Native Resources . 530

Guaranteed Finalization Using CriticalFinalizerObject Types . 532

Interoperating with Unmanaged Code by Using SafeHandle Types 535

Using Finalization with Managed Resources 537

What Causes Finalize Methods to Be Called? 540

Finalization Internals . 541

The Dispose Pattern: Forcing an Object to Clean Up 544

Using a Type That Implements the Dispose Pattern . 548

C#s using Statement . 551

An Interesting Dependency Issue . 554

Monitoring and Controlling the Lifetime of Objects Manually . 555

Resurrection 566

Generations . 568

Other Garbage Collection Features for Use with Native Resources . 574

Predicting the Success of an Operation that Requires a Lot of Memory 578

Programmatic Control of the Garbage Collector 580

Thread Hijacking 583

Garbage Collection Modes 585

Large Objects . 588

Monitoring Garbage Collections 589

22 CLR Hosting and AppDomains . 591

CLR Hosting 592

AppDomains . 594

Accessing Objects Across AppDomain Boundaries 597

AppDomain Unloading . 609

AppDomain Monitoring . 610

AppDomain First-Chance Exception Notifications 612

How Hosts Use AppDomains . 612

Executable Applications 612

Microsoft Silverlight Rich Internet Applications . 613

Microsoft ASP.NET Web Forms and XML Web Services Applications 613

Microsoft SQL Server . 614

Your Own Imagination 614

Advanced Host Control 615

Managing the CLR by Using Managed Code 615

Writing a Robust Host Application . 616

How a Host Gets Its Thread Back 617

23 Assembly Loading and Reflection 621

Assembly Loading 621

Using Reflection to Build a Dynamically Extensible Application . . . . . . . . . . . . . . . . . . .626

Reflection Performance 627

Discovering Types Defined in an Assembly . 628

What Exactly Is a Type Object? 628

Building a Hierarchy of Exception-Derived Types 631

Constructing an Instance of a Type 632

Designing an Application That Supports Add-Ins . 634

Using Reflection to Discover a Types Members 637

Discovering a Types Members 638

BindingFlags: Filtering the Kinds of Members That Are Returned . 643

Discovering a Types Interfaces 644

Invoking a Types Members 646

Bind Once, Invoke Multiple Times . 650

Using Binding Handles to Reduce Your Processs Memory Consumption . 658

24 Runtime Serialization . 661

Serialization/Deserialization Quick Start . 662

Making a Type Serializable 667

Controlling Serialization and Deserialization 668

How Formatters Serialize Type Instances 672

Controlling the Serialized/Deserialized Data 673

How to Define a Type That Implements ISerializable when the Base

Type Doesnt Implement This Interface 678

Streaming Contexts . 680

Serializing a Type as a Different Type and Deserializing an Object as a

Different Object 682

Serialization Surrogates 684

Surrogate Selector Chains 688

Overriding the Assembly and/or Type When Deserializing an Object 689

Part V Threading

25 Thread Basics . 691

Why Does Windows Support Threads? 691

Thread Overhead . 692

Stop the Madness 696

CPU Trends 699

NUMA Architecture Machines . 700

CLR Threads and Windows Threads . 703

Using a Dedicated Thread to Perform an Asynchronous Compute-Bound

Operation . 704

Reasons to Use Threads 706

Thread Scheduling and Priorities 708

Foreground Threads versus Background Threads . 713

What Now? 715

26 Compute-Bound Asynchronous Operations 717

Introducing the CLRs Thread Pool . 718

Performing a Simple Compute-Bound Operation . 719

Execution Contexts 721

Cooperative Cancellation . 722

Tasks . 726

Waiting for a Task to Complete and Getting Its Result . 727

Cancelling a Task 729

Starting a New Task Automatically When Another Task Completes . 731

A Task May Start Child Tasks 733

Inside a Task 733

Task Factories 735

Task Schedulers . 737

Parallels Static For, ForEach, and Invoke Methods 739

Parallel Language Integrated Query 743

Performing a Periodic Compute-Bound Operation 747

So Many Timers, So Little Time 749

How the Thread Pool Manages Its Threads 750

Setting Thread Pool Limits 750

How Worker Threads Are Managed . 751

Cache Lines and False Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .752

27 I/O-Bound Asynchronous Operations . 755

How Windows Performs I/O Operations . 755

The CLRs Asynchronous Programming Model (APM) 761

The AsyncEnumerator Class 765

The APM and Exceptions 769

Applications and Their Threading Models 770

Implementing a Server Asynchronously 773

The APM and Compute-Bound Operations 774

APM Considerations 776

Using the APM Without the Thread Pool 776

Always Call the EndXxx Method, and Call It Only Once . 777

Always Use the Same Object When Calling the EndXxx Method . 778

Using ref, out, and params Arguments with BeginXxx and

EndXxx Methods 778

You Cant Cancel an Asynchronous I/O-Bound Operation 778

Memory Consumption 778

Some I/O Operations Must Be Done Synchronously . 779

FileStream-Specific Issues . 780

I/O Request Priorities 780

Converting the IAsyncResult APM to a Task 783

The Event-Based Asynchronous Pattern 784

Converting the EAP to a Task . 786

Comparing the APM and the EAP . 788

Programming Model Soup 788

28 Primitive Thread Synchronization Constructs 791

Class Libraries and Thread Safety . 793

Primitive User-Mode and Kernel-Mode Constructs 794

User-Mode Constructs 796

Volatile Constructs . 797

Interlocked Constructs 803

Implementing a Simple Spin Lock . 807

The Interlocked Anything Pattern . 811

Kernel-Mode Constructs 813

Event Constructs . 817

Semaphore Constructs 819

Mutex Constructs . 820

Calling a Method When a Single Kernel Construct Becomes Available . 822

29 Hybrid Thread Synchronization Constructs 825

A Simple Hybrid Lock 826

Spinning, Thread Ownership, and Recursion 827

A Potpourri of Hybrid Constructs . 829

The ManualResetEventSlim and SemaphoreSlim Classes 830

The Monitor Class and Sync Blocks . 830

The ReaderWriterLockSlim Class . 836

The OneManyLock Class 838

The CountdownEvent Class . 841

The Barrier Class . 841

Thread Synchronization Construct Summary 842

The Famous Double-Check Locking Technique . 844

The Condition Variable Pattern . 848

Using Collections to Avoid Holding a Lock for a Long Time . 851

The Concurrent Collection Classes . 856

Index . 861

 

CLR via C# 中文版 第三版(高清 全 带书签) 套用清清月儿的一句话就是:此书不看,看遍千书也枉然。 此书权威性地球人都知道。 (文件太大,分两个包上传,这是第二个压缩包。两个都下载完才可以减压,这个就不用我说了吧。) .NET技术领域有两位世界级专家。      一位是Don Box。他以《Essential COM》确立了自己COM专家的地位,在.NET时代,Don Box又以《Essential .NET》(Volume I The Common Language Runtime)确立了自己.NET专家的地位。2002年,Microsoft将其招致麾下,成为.NET Architect,与Anders Hejlsberg一起研发并推出了Linq。由于Don Box的杰出贡献,Microsoft授予其“杰出工程师(Distinguished Engineer)”称号,目前从事声明式语言及工具的开发。可能是工作繁忙,以致没有后续著作问世。      另一位是Jeffrey Richter。Jeffrey Richter是.NET与Windows技术的咨询培训机构Wintellect的共同创立者(co-founder),在Windows领域早已是家喻户晓的世界级专家。从1999年起参与Microsoft .NET平台的研发,受Microsoft委托,为其开发人员提供技术咨询。在此过程中,诞生了《CLR via C#》。      这本书的第一版名为《Applied Microsoft .NET Framework Programming》,2002年出版,阐述的是.NET 1.0/1.1的相关内容。于2006年推出了针对 .NET 2.0的第二版,书名改为《CLR via C#》。2010年2月,Jeffrey Richter又推出了针对Visual Studio 2010、.NET 4.0、C# 4.0的集大成之作《CLR via C#》第三版。      本书分为五个部分:      第一部分,CLR基础(CLR Basics),介绍CLR的执行模型,程序集概念,以及创建、打包、部署、管理程序集等。      第二部分,设计类型(Designing Types),包括CLR类型基础,基础类型,方法,特性(Property),事件,泛型,接口等内容。      第三部分,基本类型(Essential Types),包括字符、字符串及文本的处理,枚举类型,数组,委托(Delegate),自定义属性(Attribute),可控制类型等。      第四部分,核心设施(Core Facilities),包括异常与状态管理,自动内存管理(垃圾收集),CLR托管与应用程序域(AppDomain),程序集加载与反射,运行时序列化等。      第五部分,线程(Threading),这是第三版新增加的内容,包括线程基础,计算密集的异步操作,I/O密集的异步操作,基本的线程同步构造,混合的线程同步构造等。
CLR via C# 第4版 英文PDFKristin, words cannot express how /feel about our life together. cherish our family and all our adventures. I'm filled each day with love for Aidan (age 9)and Grant (age 5), you both have been an inspira- tion to me and have taught me to play and have fun Watching the two of you grow up has been so rewarding and enjoyable for me. am lucky to be able to partake in your lives. love and ap preciate you more than you could ever know Contents at a glance Introduction PART I CLR BASICS CHAPTER 1 The clr's execution model CHAPTER 2 Building, Packaging, Deploying, and Administering Applications and Types 33 chaPTeR 3 Shared Assemblies and Strongly Named Assemblies 65 PART I DESIGNING TYPES CHAPTER 4 Type Fundamentals 91 CHAPTER 5 Primitive, Reference, and Value Types 111 CHAPTER 6 Type and Member Basics 151 CHAPTER 7 Constants and fields 175 chaPTer 8 Methods 181 chaPTer 9 Parameters 209 CHAPTER 10 Properties 227 CHAPTER 11 Events 249 CHAPTER 12 Generics 265 CHAPTER 13 Interfaces 295 PARTⅢ ESSENTIAL TYPES CHAPTER 14 Chars, Strings, and Working with Text 317 CHAPTER 15 Enumerated Types and Bit Flags 361 CHAPTER 16 Arrays 373 CHAPTER 17 Delegates 391 CHAPTER 18 Custom Attributes 421 CHAPTER 19 Nullable value Types 441 PART IV CORE FACILITIES CHAPTER 20 Exceptions and state management 451 CHAPTER 21 The Managed Heap and Garbage Collection 505 CHAPTER 22 CLR Hosting and AppDomains 553 CHAPTER 23 Assembly Loading and reflection 583 CHAPTER 24 Runtime serialization 611 CHAPTER 25 Interoperating with WinRT Components 643 PAR V THREADING ChaPTEr 26 Thread basics 669 CHAPTER 27 Compute-Bound Asynchronous Operations 691 CHAPTER 28 IyO-Bound Asynchronous Operations 727 CHAPTER 29 Primitive thread Synchronization Constructs 757 CHAPTER 30 Hybrid Thread Synchronization Constructs 789 Index 823 Contents at a glance Contents Introduction XX PART CLR BASICS Chapter 1 The Clrs Execution Model 3 Compiling Source Code into Managed Modules Combining managed modules into assemblies Loading the Common Language Runtime 8 Executing Your Assembly's Code 11 IL and∨ erification 16 Unsafe Code The Native Code generator tool: ngen. exe 19 The Framework Class Library 22 The Common Type System The Common Language Specification Interoperability with Unmanaged Code 30 Chapter 2 Building, Packaging, Deploying, and Administering Applications and Types 33 NET Framework Deployment Goals 34 Building Types into a Module 35 Response Fil 36 A Brief Look at metadata 38 What do you think of this book We want to hear from you Microsoft is interested in hearing your feedback so we can continually improve our books and learning resources for you. To participate in a brief online survey, please visit microsoft. com/learning/booksurvey Combining Modules to Form an Assembly 45 Adding Assemblies to a Project by Using the Visual Studio IDE.51 Using the assembly Linker Adding Resource Files to an Assembly 53 Assembly Version Resource Information .54 Version numbers ..58 Culture Simple Application Deployment(Privately deployed Assemblies)...60 Simple Administrative Control(Configuration) 62 Chapter 3 Shared Assemblies and Strongly Named Assemblies 65 Two Kinds of Assemblies, Two Kinds of Deployment 66 Giving an Assembly a Strong Name 67 The global Assembly Cache 72 Building an Assembly That References a Strongly Named Assembly..74 Strongly named assemblies are tamper-Resistant 75 Delayed Signing Privately Deploying Strongly Named Assemblies How the Runtime Resolves Type References 80 Advanced Administrative Control( Configuration) 83 Publisher Policy control 86 PART I DESIGNING TYPES Chapter 4 Type Fundamentals 91 All Types Are Derived from System Object .91 Casting Between Types 93 Casting with the C# is and as Operators Namespaces and assemblies 97 How Things relate at Run time .101 Chapter 5 Primitive, Reference, and Value Types 111 Programming Language Primitive Types 111 Checked and Unchecked Primitive Type Operations 115 Reference Types and value Types 118 Boxing and Unboxing Value Types 124 Changing Fields in a Boxed Value Type by Using Interfaces and Why You Shouldnt Do This) 136 Object Equality and Identity 139 Object hash Codes .142 The dynamic Primitive Type ......144 Chapter 6 Type and member Basics 151 The Different Kinds of Type Members .151 Type visibilit 154 Friend assemblies 154 Member accessibility .156 Static Classes ...158 Partial Classes, Structures, and Interfaces .159 Components, Polymorphism, and Versioning 160 How the CLR Calls Virtual Methods, Properties, and Events 162 Using Type Visibility and Member Accessibility Intelligently...166 Dealing with Virtual Methods When Versioning Types 16 Chapter 7 Constants and Fields 175 Constants 175 Fⅰe|ds ...177 Chapter 8 Methods 181 Instance Constructors and Classes(Reference Types) 181 Instance Constructors and Structures(Value Types) 184 Type Constructors 187 Contents x Operator Overload Methods 191 Operators and Programming Language Interoperability 193 Conversion Operator Methods 195 Extension method 198 Rules and guidelines ....,200 Extending Various Types with Extension Methods 201 The Extension Attribute 203 Partial Methods 204 Rules and guidelines 207 Chapter 9 Parameters 209 Optional and Named Parameters 209 Rules and guidelines 210 The defaultParameter value and optional Attributes 212 Implicitly Typed Local Variabl 212 Passing parameters by reference to a Method 214 Passing a variable Number of arguments to a Method 220 Parameter and Return Type Guidelines 223 Const-nes 224 Chapter 10 Properties 227 Parameterless Properties 227 Automatically Implemented Properties 231 Defining Properties Intelligently 232 Object and collection Initializers 235 Anonymous Type .237 The System. Tuple type 240 Parameterful Properties 242 The performance of calling property accessor Methods 247 Property Accessor Accessibility 248 Generic prop A roperty Access 248
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值