实例介绍
【实例截图】
【核心代码】
.
├── C#本质论源代码
│ ├── AppendixB
│ │ ├── AppendixB.csproj
│ │ ├── AppendixB.csproj.vspscc
│ │ ├── ProductSerialNumber.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── AssemblyInfo.cs
│ ├── Chapter01
│ │ ├── Chapter01.csproj
│ │ ├── Listing01.01.HelloWorldInC#.cs
│ │ ├── Listing01.02.BasicClassDeclaration.cs
│ │ ├── Listing01.03.BreakingApartHelloWorld.cs
│ │ ├── Listing01.04.TheMainMethodWithParametersAndAReturn.cs
│ │ ├── Listing01.05.MultipleStatementsOneOneLine.cs
│ │ ├── Listing01.06.SplittingAStatementAcrossMultipleLines.cs
│ │ ├── Listing01.07.NoIndentationFormatting.cs
│ │ ├── Listing01.08.RemovingWhitespace.cs
│ │ ├── Listing01.09.DeclaringAndAssigningAVariable.cs
│ │ ├── Listing01.10.DeclaringTwoVariablesWithinOneStatement.cs
│ │ ├── Listing01.11.ChangingTheValueOfAVariable.cs
│ │ ├── Listing01.12.AssignmentReturningAValueThatCanBeassignedAgain.cs
│ │ ├── Listing01.13.UsingSystemConsoleReadLine.cs
│ │ ├── Listing01.14.UsingSystemConsoleRead.cs
│ │ ├── Listing01.15.FormattingUsingSystemConsoleWriteLine.cs
│ │ ├── Listing01.16.SwappingTheIndexedPlaceholdersAndCorrespondingVariables.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter02
│ │ ├── Chapter02.csproj
│ │ ├── Listing02.01-2.06.SpecifyingLiteralValues.cs
│ │ ├── Listing02.02.SpecifyingALiteralDouble.cs
│ │ ├── Listing02.03.SpecifyingALiteralDecimal.cs
│ │ ├── Listing02.04.ExponentialNotation.cs
│ │ ├── Listing02.05.HexadecimalLiteralValue.cs
│ │ ├── Listing02.06.Examples of a HexadecimalFormatSpecifier.cs
│ │ ├── Listing02.07.FormattingUsingTheRFormatSpecifier.cs
│ │ ├── Listing02.08-2.10.ComparingStringsEscapeSequencesAndUnicode.cs
│ │ ├── Listing02.09..cs
│ │ ├── Listing02.10..cs
│ │ ├── Listing02.11.UsingTheNewlineCharacterToInsertANewline.cs
│ │ ├── Listing02.12.DisplayingATriangleUsingAVerbatimStringLiteral.cs
│ │ ├── Listing02.13.UsingStringsLengthMember.cs
│ │ ├── Listing02.14..cs
│ │ ├── Listing02.15..cs
│ │ ├── Listing02.16.AssigningNullToAString.cs
│ │ ├── Listing02.17.WorkingWithStrings.cs
│ │ ├── Listing02.18.ImplicitLocalVariablesWithAnonymousTypes.cs
│ │ ├── Listing02.19.UsingTheNullableModifier.cs
│ │ ├── Listing02.20..cs
│ │ ├── Listing02.21.OverflowingAnIntegerValue.cs
│ │ ├── Listing02.22..cs
│ │ ├── Listing02.23..cs
│ │ ├── Listing02.24..cs
│ │ ├── Listing02.25..cs
│ │ ├── Listing02.26..cs
│ │ ├── Listing02.27..cs
│ │ ├── Listing02.28..cs
│ │ ├── Listing02.29..cs
│ │ ├── Listing02.30..cs
│ │ ├── Listing02.31..cs
│ │ ├── Listing02.32..cs
│ │ ├── Listing02.33..cs
│ │ ├── Listing02.34..cs
│ │ ├── Listing02.35..cs
│ │ ├── Listing02.36..cs
│ │ ├── Listing02.37..cs
│ │ ├── Listing02.38..cs
│ │ ├── Listing02.39..cs
│ │ ├── Listing02.40..cs
│ │ ├── Listing02.41..cs
│ │ ├── Listing02.42..cs
│ │ ├── Listing02.43..cs
│ │ ├── Listing02.44..cs
│ │ ├── Listing02.45..cs
│ │ ├── Listing02.46..cs
│ │ ├── Listing02.47..cs
│ │ ├── Listing02.48..cs
│ │ ├── Listing02.49..cs
│ │ ├── Listing02.50..cs
│ │ ├── Listing02.51..cs
│ │ ├── Listing02.52..cs
│ │ ├── Listing02.53..cs
│ │ ├── Listing02.54..cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter03
│ │ ├── Chapter03.csproj
│ │ ├── Listing03.01..cs
│ │ ├── Listing03.02..cs
│ │ ├── Listing03.03..cs
│ │ ├── Listing03.04..cs
│ │ ├── Listing03.05..cs
│ │ ├── Listing03.06..cs
│ │ ├── Listing03.07..cs
│ │ ├── Listing03.08..cs
│ │ ├── Listing03.09..cs
│ │ ├── Listing03.10..cs
│ │ ├── Listing03.11..cs
│ │ ├── Listing03.12..cs
│ │ ├── Listing03.13..cs
│ │ ├── Listing03.14..cs
│ │ ├── Listing03.15..cs
│ │ ├── Listing03.16..cs
│ │ ├── Listing03.17..cs
│ │ ├── Listing03.18..cs
│ │ ├── Listing03.19..cs
│ │ ├── Listing03.20..cs
│ │ ├── Listing03.21..cs
│ │ ├── Listing03.22..cs
│ │ ├── Listing03.23..cs
│ │ ├── Listing03.24..cs
│ │ ├── Listing03.25..cs
│ │ ├── Listing03.26..cs
│ │ ├── Listing03.27..cs
│ │ ├── Listing03.28..cs
│ │ ├── Listing03.29..cs
│ │ ├── Listing03.30..cs
│ │ ├── Listing03.31..cs
│ │ ├── Listing03.32..cs
│ │ ├── Listing03.33..cs
│ │ ├── Listing03.34..cs
│ │ ├── Listing03.35..cs
│ │ ├── Listing03.36..cs
│ │ ├── Listing03.37..cs
│ │ ├── Listing03.38..cs
│ │ ├── Listing03.39..cs
│ │ ├── Listing03.40..cs
│ │ ├── Listing03.41..cs
│ │ ├── Listing03.42..cs
│ │ ├── Listing03.43..cs
│ │ ├── Listing03.44..cs
│ │ ├── Listing03.45..cs
│ │ ├── Listing03.46..cs
│ │ ├── Listing03.47..cs
│ │ ├── Listing03.48..cs
│ │ ├── Listing03.49..cs
│ │ ├── Listing03.50..cs
│ │ ├── Listing03.51..cs
│ │ ├── Listing03.52..cs
│ │ ├── Listing03.53..cs
│ │ ├── Listing03.54..cs
│ │ ├── Listing03.55..cs
│ │ ├── Listing03.56..cs
│ │ ├── Listing03.57..cs
│ │ ├── Listing03.58..cs
│ │ ├── Listing03.59..cs
│ │ ├── Listing03.60..cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter04
│ │ ├── Chapter04.csproj
│ │ ├── Listing04.01.GroupingStatementsIntoMethods.cs
│ │ ├── Listing04.03.PassingAMethodReturnAsAParameterToAnotherMehtodCall.cs
│ │ ├── Listing04.04.DeclaringAMethod.cs
│ │ ├── Listing04.05.AReturnStatementBeforeTheEndOfAmethod.cs
│ │ ├── Listing04.06.usingDirectiveExample.cs
│ │ ├── Listing04.07.SpecifyingTheUsingDirectiveInsideANamespaceDeclaration.cs
│ │ ├── Listing04.08.DeclaringATypeAlias.cs
│ │ ├── Listing04.09.DeclaringATypeAliasWithTheSameName.cs
│ │ ├── Listing04.10.PassingCommandLineArgumentsToMain.cs
│ │ ├── Listing04.11.PassingVariablesByValue.cs
│ │ ├── Listing04.12.PassingVariablesByReference.cs
│ │ ├── Listing04.13.PassingVariablesOutOnly.cs
│ │ ├── Listing04.14.PassingAVariableParameterList.cs
│ │ ├── Listing04.15.ReturningAllTheFilenamesGivenADirectory.cs
│ │ ├── Listing04.16.ReturningAllTheFilenamesGivenADirectory.cs
│ │ ├── Listing04.17.MethodsWithOptionalParameters.cs
│ │ ├── Listing04.19.ConvertingAStringToAnInt.cs
│ │ ├── Listing04.20.CatchingAnException.cs
│ │ ├── Listing04.21.CatchingAnException.cs
│ │ ├── Listing04.22.GeneralCatchBlocks.cs
│ │ ├── Listing04.23.ThrowingAnException.cs
│ │ ├── Listing04.24.RethrowingAnException.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter05
│ │ └── Chapter05
│ │ ├── Chapter05.csproj
│ │ ├── Listing05.01.DefiningAClass.cs
│ │ ├── Listing05.02.DeclaringVariablesOfTheClassType.cs
│ │ ├── Listing05.03.InstantiatingAClass.cs
│ │ ├── Listing05.04.DeclaringFields.cs
│ │ ├── Listing05.05.SettingInitialValuesOfFieldsAtDeclarationTime.cs
│ │ ├── Listing05.06.AccessingFields.cs
│ │ ├── Listing05.07.AccessingFieldsFromWithinTheContainingClass.cs
│ │ ├── Listing05.08.AccessingFieldsFromOutsideTheContainingClass.cs
│ │ ├── Listing05.09.UsingThisToIdentifyTheFieldsOwnerExplicitly.cs
│ │ ├── Listing05.10.UsingThisToAvoidAmbiguity.cs
│ │ ├── Listing05.11.UsingThisWithAMethod.cs
│ │ ├── Listing05.12.PassingThisInAMethodCall.cs
│ │ ├── Listing05.13.DataPersistenceToAFile.cs
│ │ ├── Listing05.14.DataRetrievalFromAFile.cs
│ │ ├── Listing05.15.UsingThePrivateAccessModifier.cs
│ │ ├── Listing05.16.GettersAndSetters.cs
│ │ ├── Listing05.17.DefiningProperties.cs
│ │ ├── Listing05.18.AutomaticallyImplementedProperties.cs
│ │ ├── Listing05.19.ProvidingPropertyValidation.cs
│ │ ├── Listing05.20.DefiningReadOnlyProperties.cs
│ │ ├── Listing05.21.PlacingAccessModifiersOnSetters.cs
│ │ ├── Listing05.22.DefiningProperties.cs
│ │ ├── Listing05.25.DefiningAConstructor.cs
│ │ ├── Listing05.26.CallingAConstructor.cs
│ │ ├── Listing05.27.DefaultConstructorNoLongerAvailable.cs
│ │ ├── Listing05.28.CallingAnObjectInitializer.cs
│ │ ├── Listing05.29.CallingAnObjectInitializer.cs
│ │ ├── Listing05.30.OverloadingAConstructor.cs
│ │ ├── Listing05.31.CallingOneConstructorFromAnother.cs
│ │ ├── Listing05.32.ProvidingAnInitializationMethod.cs
│ │ ├── Listing05.33.ImplicitLocalVariablesWithAnonymousTypes.cs
│ │ ├── Listing05.34.DeclaringAStaticField.cs
│ │ ├── Listing05.35.AssigningAStaticFieldAtDeclaration.cs
│ │ ├── Listing05.36.AccessingAStaticField.cs
│ │ ├── Listing05.37.DefiningAStaticMethodOnDirectoryInfo.cs
│ │ ├── Listing05.38.DeclaringAStaticConstructor.cs
│ │ ├── Listing05.39.DeclaringAStaticProperty.cs
│ │ ├── Listing05.40.DeclaringAStaticClass.cs
│ │ ├── Listing05.41.StaticCopyMethodForDirectoryInfo.cs
│ │ ├── Listing05.42.DeclaringAConstantField.cs
│ │ ├── Listing05.43.DeclaringAFieldAsReadonly.cs
│ │ ├── Listing05.44.DefiningANestedClass.cs
│ │ ├── Listing05.45.DefiningAPartialClass.cs
│ │ ├── Listing05.46.DefiningANestedClassInASeperatePartialClass.cs
│ │ ├── Listing05.47.DefiningANestedClassInASeperatePartialClass.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter06
│ │ └── Chapter06
│ │ ├── Chapter06.csproj
│ │ ├── Listing06.01.RefactoringIntoABaseClass.cs
│ │ ├── Listing06.02.UsingInheritedMethods.cs
│ │ ├── Listing06.03.ClassesDerivingFromEachOtherToFormAnInheritanceChain.cs
│ │ ├── Listing06.04.ImplicitBaseTypeCasting.cs
│ │ ├── Listing06.05.DefiningCastOperators.cs
│ │ ├── Listing06.06.PrivateMembersAreNotInherited.cs
│ │ ├── Listing06.07.ProtectedMembersAreAccessibleOnlyFromDerivedClasses.cs
│ │ ├── Listing06.08.WorkingAroundSingleInheritanceUsingAggregation.cs
│ │ ├── Listing06.09.PreventingDerivationWithSealedClasses.cs
│ │ ├── Listing06.10.OverridingAProperty.cs
│ │ ├── Listing06.11.RuntimeCallingTheMostDerivedImplementationOfAVirtualMethod.cs
│ │ ├── Listing06.12.CarelesslyRelyingOnAVirtualMethodImplementation.cs
│ │ ├── Listing06.13.ForcingTheDesirableRunSemantics.cs
│ │ ├── Listing06.14.OverrideVersusNewModifier.cs
│ │ ├── Listing06.15.SealingMembers.cs
│ │ ├── Listing06.16.AccessingABaseMember.cs
│ │ ├── Listing06.17.SpecifyingWhichBaseConstructorToInvoke.cs
│ │ ├── Listing06.18.DefiningAnAbstractClass.cs
│ │ ├── Listing06.19.DefiningAbstractMembers.cs
│ │ ├── Listing06.20.UsingPolymorphismToListThePdaItems.cs
│ │ ├── Listing06.21.System.ObjectDerivationImpliedWhenNoDerivationIsSpecifiedExplicitly.cs
│ │ ├── Listing06.22.IsOperatorDeterminingTheUnderlyingType.cs
│ │ ├── Listing06.23.DataConversionUsingTheAsOperator.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter07
│ │ └── Chapter07
│ │ ├── Chapter07.csproj
│ │ ├── Listing07.01.DefiningAnInterface.cs
│ │ ├── Listing07.02.ImplementingAndUsingInterfaces.cs
│ │ ├── Listing07.03.ImplementingAnInterface.cs
│ │ ├── Listing07.04.CallingExplicitInterfaceMemberImplementations.cs
│ │ ├── Listing07.06.DerivingOneInterfaceFromAnother.cs
│ │ ├── Listing07.08.UsingABaseInterfaceInTheClassDeclaration.cs
│ │ ├── Listing07.09.MultipleInterfaceInheritance.cs
│ │ ├── Listing07.10.InterfaceExtensionMethods.cs
│ │ ├── Listing07.11.WorkingAroundSingleInheritanceUsingAggregationWithInterfaces.cs
│ │ ├── Listing07.12.DerivingOneInterfaceFromAnother.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter08
│ │ └── Chapter08
│ │ ├── Chapter08.csproj
│ │ ├── Listing08.01.DefiningStruct.cs
│ │ ├── Listing08.04.UsingTheDefaultOperatorToRetrieveTheDefaultValueOfAType.cs
│ │ ├── Listing08.05.SubtleBoxAndUnboxInstructions.cs
│ │ ├── Listing08.07.SubtleBoxingIdiosyncrasies.cs
│ │ ├── Listing08.09.ComparingAnIntegerSwitchToAnEnumSwitch.cs
│ │ ├── Listing08.10.DefiningAnEnum.cs
│ │ ├── Listing08.11.DefiningAnEnumType.cs
│ │ ├── Listing08.12.CastingBetweenArraysOfEnums.cs
│ │ ├── Listing08.13.ConvertingAStringToAnEnumUsingEnum.Parse.cs
│ │ ├── Listing08.14.ConvertingAStringToAnEnumUsingEnum.TryParse.cs
│ │ ├── Listing08.15.UsingEnumsAsFlags.cs
│ │ ├── Listing08.16.UsingBitwiseORandANDWithFlagEnums.cs
│ │ ├── Listing08.17.DefiningEnumValuesforFrequentCombinations.cs
│ │ ├── Listing08.18.UsingFlagsAttribute.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter09
│ │ ├── Chapter09.csproj
│ │ ├── Listing09.01.OverridingToString.cs
│ │ ├── Listing09.02.ImplementingGetHashCode.cs
│ │ ├── Listing09.03.Equal.cs
│ │ ├── Listing09.04.ValueTypesDoNotEvenReferenceEqualThemselves.cs
│ │ ├── Listing09.05.OverridingEquals.cs
│ │ ├── Listing09.06.ImplementingTheEqualsAndNotEqualsOperators.cs
│ │ ├── Listing09.07.AddingAnOperator.cs
│ │ ├── Listing09.08.CallingTheMinusAndPlusBinaryOperators.cs
│ │ ├── Listing09.11.ProvidingAnImplicitConversionBetweenLatitudeAndDouble.cs
│ │ ├── Listing09.18.Comments.xml
│ │ ├── Listing09.19.WeakReferences.cs
│ │ ├── Listing09.20.DefiningAFinalizer.cs
│ │ ├── Listing09.21.ResourceCleanupWithIDisposable.cs
│ │ ├── Listing09.22.InvokingTheUsingStatement.cs
│ │ ├── Listing09.24.LazyLoadingAProperty.cs
│ │ ├── Listing09.25.LazyLoadingAProperty.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter10
│ │ ├── Chapter10.csproj
│ │ ├── Listing10.01.ThrowingAnException.cs
│ │ ├── Listing10.02.CatchingDifferentExceptionTypes.cs
│ │ ├── Listing10.03.CatchingDifferentExceptionTypes.cs
│ │ ├── Listing10.04.CreatingACustomException.cs
│ │ ├── Listing10.05.DefiningASerializableException.cs
│ │ ├── Listing10.06.OverflowingAnIntegerValue.cs
│ │ ├── Listing10.07.ACheckedBlockExample.cs
│ │ ├── Listing10.08.AnUnCheckedBlockExample.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter11
│ │ ├── Chapter11.csproj
│ │ ├── Listing11.01.TheStackDefinitionUsingADataTypeObject.cs
│ │ ├── Listing11.02.SupportingUndoInAProgramSimilarToTheEtchASketchGame.cs
│ │ ├── Listing11.03.ProvidingASpecializedStackClass.cs
│ │ ├── Listing11.06.ImplementingUndoWithAGenericStackClass.cs
│ │ ├── Listing11.07.DeclaringAGenericClassStack.cs
│ │ ├── Listing11.08.DeclaringAGenericInterface.cs
│ │ ├── Listing11.09.ImplementingAGenericInterface.cs
│ │ ├── Listing11.10.DuplicatingAnInterfaceImplementationOnASingleClass.cs
│ │ ├── Listing11.11.DeclaringAGenericType'sConstructor.cs
│ │ ├── Listing11.12.NotInitializingAllFieldsCasuingACompileError.cs
│ │ ├── Listing11.13.InitializingAFieldWithTheDefaultOperator.cs
│ │ ├── Listing11.14.DeclaringAGenericWithMultipleTypeParameters.cs
│ │ ├── Listing11.15.UsingATypewithMultipleTypeParameters.cs
│ │ ├── Listing11.17.CovarianceUsingTheOutTypeParameterModifier.cs
│ │ ├── Listing11.18.NestedGenericTypes.cs
│ │ ├── Listing11.19.DeclaringABinaryTreeClassWithNoConstraints.cs
│ │ ├── Listing11.20.NeedingTheTypeParameterToSupportAnInterface.cs
│ │ ├── Listing11.21.NeedingTheTypeParameterToSupportAnInterfaceOrExceptionThrown.cs
│ │ ├── Listing11.22.DeclaringAnInterfaceConstraint.cs
│ │ ├── Listing11.23.DeclaringABaseClassConstraint.cs
│ │ ├── Listing11.24.SpecifyingTheTypeParameterAsAValueType.cs
│ │ ├── Listing11.25.SpecifyingMultipleConstraints.cs
│ │ ├── Listing11.26.RequiringADefaultConstructorConstraint.cs
│ │ ├── Listing11.27.InheritedConstraintsSpecifiedExplicitly.cs
│ │ ├── Listing11.28.InheritedConstraintsSpecifiedExplicitly.cs
│ │ ├── Listing11.33.UsingAFactoryInterfaceInPlaceOfAConstructorConstraint.cs
│ │ ├── Listing11.34.DeclaringAnEntityToBeUsedInEntityDictionary.cs
│ │ ├── Listing11.35.DefiningGenericMethods.cs
│ │ ├── Listing11.36.SpecifyingTheTypeParameterExplicitly.cs
│ │ ├── Listing11.37.InferringTheTypeParameter.cs
│ │ ├── Listing11.38.SpecifyingConstraintsOnGenericMethods.cs
│ │ ├── Listing11.39.BinaryTreeRequiringIComparableTypeParameters.cs
│ │ ├── Listing11.43.CovarianceUsingTheOutTypeParameterModifier.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter12
│ │ ├── Chapter12.csproj
│ │ ├── Listing12.01.BubbleSortMethod.cs
│ │ ├── Listing12.02.BubbleSortMethodAscendingOrDescending.cs
│ │ ├── Listing12.03.BubbleSortMethodWithDelegateParameter.cs
│ │ ├── Listing12.05.DeclaringADelegateDataType.cs
│ │ ├── Listing12.06.DeclaringANestedDelegateDataType.cs
│ │ ├── Listing12.07.DeclaringAComparisonHandlerCompatibleMethod.cs
│ │ ├── Listing12.08.PassingADelegateInstanceAsAParameterInCSharp.cs
│ │ ├── Listing12.09.PassingADelegateInstanceAsAParameterPriorToCSharp2.0.cs
│ │ ├── Listing12.10.UsingADifferentComparisonHandlerCompatibleMethod.cs
│ │ ├── Listing12.11.PassingAnAnonymousMethod.cs
│ │ ├── Listing12.12.UsingAnAnonymousMethodWithoutDeclaringAVariable.cs
│ │ ├── Listing12.14.UsingVarianceForDelegates.cs
│ │ ├── Listing12.15.PassingADelegateWithAStatementLambda.cs
│ │ ├── Listing12.16.OmittingParameterTypesFromStatementLambdas.cs
│ │ ├── Listing12.17.ParameterlessStatementLambdas.cs
│ │ ├── Listing12.18.StatementLambdasWithASingleInputParameter.cs
│ │ ├── Listing12.19.PassingADelegateWithAStatementLambda.cs
│ │ ├── Listing12.20.CSharpEquivalentOfCILGeneratedByTheCompilerForLambdaExpressions.cs
│ │ ├── Listing12.21.UsingAnOuterVariableInALambdaExpression.cs
│ │ ├── Listing12.22.CSharpEquivalentOfCILCodeGeneratedByCompilerForOuterVariables.cs
│ │ ├── Listing12.24.ExamingingAnExpressTree.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter13
│ │ ├── Chapter13.csproj
│ │ ├── Listing13.01.HeaterAndCoolerEventSubscriberImplementations.cs
│ │ ├── Listing13.02.DefiningTheEventPublsherThermostat.cs
│ │ ├── Listing13.03.ConnectingThePublisherAndSubscribers.cs
│ │ ├── Listing13.05.InvokingADelegate.cs
│ │ ├── Listing13.06.UsingthePlusEqualsAndMinusEqualsDelegateOperators.cs
│ │ ├── Listing13.07.UsingThePlusAndMinusDelegateOperators.cs
│ │ ├── Listing13.08.OnTemperatureChangedThrowingAnException.cs
│ │ ├── Listing13.09.HandlingExceptionsFromSubscribers.cs
│ │ ├── Listing13.10.DeclaringADelegateWithAMethodReturn.cs
│ │ ├── Listing13.12.UsingTheAssignmentOperationRatherThanPlusEquals.cs
│ │ ├── Listing13.13.FireingTheEventFromOutsideTheEventContainer.cs
│ │ ├── Listing13.14.UsingTheEventKeywordWithTheEventCodingPattern.cs
│ │ ├── Listing13.15.FiringTheEventNotification.cs
│ │ ├── Listing13.17.UsingGenericsWithDelegates.cs
│ │ ├── Listing13.19.CSharpEquivalentOfTheEventCILCodeGeneratedByTheCompilar.cs
│ │ ├── Listing13.20.CustomAddAndRemoveHandlers.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter14
│ │ ├── Chapter14.csproj
│ │ ├── Listing14.01.ImplicitLocalVariablesWithAnonymousTypes.cs
│ │ ├── Listing14.02.TypeSafetyAndImmutabilityOfAnonymousTypes.cs
│ │ ├── Listing14.03.FilteringWithSystem.Linq.Enumerable.Where.cs
│ │ ├── Listing14.04.InitializingAnonymousTypeArrays.cs
│ │ ├── Listing14.05.ForeachWithArrays.cs
│ │ ├── Listing14.06.CompiledImplementationOfForeachWithArrays.cs
│ │ ├── Listing14.07.IteratingOverACollectionUsingWhile.cs
│ │ ├── Listing14.08.ASeparateEnumeratorMaintainingStateDuringAnIteration.cs
│ │ ├── Listing14.09.CompiledResultOfForeachOnCollections.cs
│ │ ├── Listing14.10.ErrorHandlingAndResourceCleanupWithUsing.cs
│ │ ├── Listing14.11.SampleClassesForUseWithStandardQueryOperators.cs
│ │ ├── Listing14.12.FilteringWithSystem.Linq.Enumerable.Where.cs
│ │ ├── Listing14.13.ProjectionWithSystem.Linq.Enumerable.Select.cs
│ │ ├── Listing14.14.ProjectionWithSystem.Linq.Enumerable.Select.cs
│ │ ├── Listing14.15.ProjectionToAnAnonymousType.cs
│ │ ├── Listing14.16.ExecutingLinqQueriesInParallel.cs
│ │ ├── Listing14.17.CountingItemsWithCount.cs
│ │ ├── Listing14.18.FilteringWithSystem.Linq.Enumerable.Where.cs
│ │ ├── Listing14.19.OrderingWithSystem.Linq.Enumerable.OrderByAndThenBy.cs
│ │ ├── Listing14.20.SampleEmployeeAndDepartmentData.cs
│ │ ├── Listing14.21.AnInnerJoinUsingSystem.Linq.Enumerable.Join.cs
│ │ ├── Listing14.22.AnotherInnerJoinWithSystem.Linq.Enumerable.Join.cs
│ │ ├── Listing14.23.GroupingItemsTogetherUsingSystem.Linq.Enumerable.GroupBy.cs
│ │ ├── Listing14.24.CreatingAChildCollectionWithSystem.Linq.Enumerable.GroupJoin.cs
│ │ ├── Listing14.25.ImplementingAnOuterJoinUsingGroupJoinWithSelectMany.cs
│ │ ├── Listing14.26.CallingSelectMany.cs
│ │ ├── Listing14.27.MoreSystem.Linq.EnumerableMethodCalls.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter15
│ │ ├── Chapter15.csproj
│ │ ├── Listing15.01.SimpleQueryExpression.cs
│ │ ├── Listing15.02.ProjectingUsingQueryExpressions.cs
│ │ ├── Listing15.03.AnonymousTypesWithinQueryExpressions.cs
│ │ ├── Listing15.04.DeferredExecutionAndQueryExpressions1.cs
│ │ ├── Listing15.05.DeferredExecutionAndQueryExpressions2.cs
│ │ ├── Listing15.06.AnonymousTypesWithinQueryExpressions.cs
│ │ ├── Listing15.07.SortingUsingAQueryExpressionWithAnOrderbyClause.cs
│ │ ├── Listing15.08.ProjectingAFileInfoCollectionAndSortingByFileSize.cs
│ │ ├── Listing15.09.OrderingTheResultsInAQueryExpression.cs
│ │ ├── Listing15.10.GroupingTogetherQueryResults.cs
│ │ ├── Listing15.11.SelectingAnAnonymousTypeFollowingTheGroupbyClause.cs
│ │ ├── Listing15.12.SelectingWithoutTheQueryContinuation.cs
│ │ ├── Listing15.13.ObtainingDistinctMembersFromAQueryExpression.cs
│ │ ├── Listing15.15..cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter16
│ │ ├── Chapter16.csproj
│ │ ├── Listing16.01.ImplementingIComparer.cs
│ │ ├── Listing16.02.UsingList.cs
│ │ ├── Listing16.03.UsingTheBitComplementOfTheBinarySearchResult.cs
│ │ ├── Listing16.04.DemonstratingFindAllAndItsPredicateParameter.cs
│ │ ├── Listing16.05.AddingItemsToADictionary.cs
│ │ ├── Listing16.06.InsertingItemsInADictionaryUsingTheIndexOperator.cs
│ │ ├── Listing16.07.IteratingOverDictionaryWithForeach.cs
│ │ ├── Listing16.08.UsingSortedDictionary.cs
│ │ ├── Listing16.09.DefiningAnIndexOperator.cs
│ │ ├── Listing16.10.ChangingTheIndexersDefaultName.cs
│ │ ├── Listing16.11.DefiningAnIndexOperatorWithVariableParameters.cs
│ │ ├── Listing16.12.IteratorInterfacesPattern.cs
│ │ ├── Listing16.13.YieldingTheCSharpKeywordsSequentially.cs
│ │ ├── Listing16.14.UsingYieldToImplementBinaryTree.cs
│ │ ├── Listing16.15.UsingPair.GetEnumeratorViaForeach.cs
│ │ ├── Listing16.16.PlacingYieldReturnStatementsWithinALoop.cs
│ │ ├── Listing16.17.EscaptingIterationViaYieldBreak.cs
│ │ ├── Listing16.18.EscapingIterationViaYieldBreak.cs
│ │ ├── Listing16.19.CSharpEquivalentOfCompilerGeneratedCodeForIterators.cs
│ │ ├── Listing16.20.UsingYieldReturnInAMethodThatReturnsIEnumberable.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter17
│ │ ├── Chapter17.csproj
│ │ ├── Chapter17.csproj.user
│ │ ├── Listing17.01.UsingTypeGetPropertiesToObtainAnObjectsPublicProperties.cs
│ │ ├── Listing17.02.UsingTypeofToCreateASystem.TypeInstance.cs
│ │ ├── Listing17.03.DynamicallyInvokingAMember.cs
│ │ ├── Listing17.04.DeclaringTheStackClass.cs
│ │ ├── Listing17.05.ReflectionWithGenerics.cs
│ │ ├── Listing17.06.UsingReflectionWithGenericTypes.cs
│ │ ├── Listing17.07.DecoratingAPropertyWithAnAttribute.cs
│ │ ├── Listing17.08.DecoratingAPropertyWithMultipleAttributes.cs
│ │ ├── Listing17.09.SpecifyingAReturnAttribute.cs
│ │ ├── Listing17.11.DefiningACustomAttribute.cs
│ │ ├── Listing17.12.RetrievingACustomAttribute.cs
│ │ ├── Listing17.13.ProvidingAnAttributeConstructor.cs
│ │ ├── Listing17.14.RetrievingASpecificAttributeAndCheckingItsInitialization.cs
│ │ ├── Listing17.15.RetrievingCustomAttributeInstances.cs
│ │ ├── Listing17.16.UpdatingCommandLineHandler.TryParseToHandleAliases.cs
│ │ ├── Listing17.17.RestrictingTheConstructsAnAttributeCanDecorate.cs
│ │ ├── Listing17.18.AttributeUsageAttributeRestrictingWhereToApplyAnAttribute.cs
│ │ ├── Listing17.19.LimitingAnAttributesUsageWithAttributeUsageAttribute.cs
│ │ ├── Listing17.20.UsingANamedParameter.cs
│ │ ├── Listing17.21.UsingFlagsAttribute.cs
│ │ ├── Listing17.22.UsingReflectionWithGenericTypes.cs
│ │ ├── Listing17.23.UsingObsoleteAttribute.cs
│ │ ├── Listing17.24.SavingADocumentUsingSystem.SerializableAttribute.cs
│ │ ├── Listing17.25.ImplementingSystem.Runtime.Serialization.ISerializable.cs
│ │ ├── Listing17.26.BackwardCompatibilityPriorToThe2.0Framework.cs
│ │ ├── Listing17.29.DynamicProgrammingUsingReflection.cs
│ │ ├── Listing17.30.TheCILForAttributesInGeneral.cs
│ │ ├── Listing17.31.TheCILForAttributesInGeneral.cs
│ │ ├── Listing17.32.ImplementingACustomDynamicObject.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter18
│ │ ├── Chapter18.csproj
│ │ ├── Cryptographer.cs
│ │ ├── Listing18.01.StartingMethodInSeparateThread.cs
│ │ ├── Listing18.02.ReturningAResultFromTask.cs
│ │ ├── Listing18.03.RegisteringForNotifactionsWithContinueWith.cs
│ │ ├── Listing18.04.HandlingATasksUnhandledException.cs
│ │ ├── Listing18.05.UnhandledExceptionsUsingContinueWith.cs
│ │ ├── Listing18.06.CancelingATaskUsingCancellationToken.cs
│ │ ├── Listing18.08.LoopSynchronouslyCalculatingPiInSections.cs
│ │ ├── Listing18.09.StartingMethodInSeparateThread.cs
│ │ ├── Listing18.10.ParallelExecutionOfAForeachLoop.cs
│ │ ├── Listing18.11.UnhandledExceptionHandlingForParallelIterations.cs
│ │ ├── Listing18.12.CancelingAParallelLoop.cs
│ │ ├── Listing18.13.LinqSelect.cs
│ │ ├── Listing18.14.ParallelLinqSelect.cs
│ │ ├── Listing18.15.ParallelLinqWithStandardQueryOperators.cs
│ │ ├── Listing18.16.ParallelLinqWithQueryExpressions.cs
│ │ ├── Listing18.17.CancelingWithAPLinqQuery.cs
│ │ ├── Listing18.18.StartingMethodUsingThread.cs
│ │ ├── Listing18.19.AynchronousCallsUsingThreadPool.cs
│ │ ├── Listing18.20.RegisteringForUnhandledExceptions.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Utility.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ │ ├── AddisonWesley.Michaelis.EssentialCSharp.Chapter18.vshost.exe
│ │ │ └── AddisonWesley.Michaelis.EssentialCSharp.Chapter18.vshost.exe.manifest
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter19
│ │ ├── Chapter19.csproj
│ │ ├── Listing19.01.UnsychronizedState.cs
│ │ ├── Listing19.02.UnsychronizedLocalizedVariables.cs
│ │ ├── Listing19.03.SynchonizingWithMonitor.cs
│ │ ├── Listing19.04.SynchronizingUsingLockKeyword.cs
│ │ ├── Listing19.08.CreatingASingleInstanceApplication.cs
│ │ ├── Listing19.09.WaitingForManualResetEventSlim.cs
│ │ ├── Listing19.10.UsingThreadLocalForThreadLocalStorage.cs
│ │ ├── Listing19.11.UsingThreadStaticAttribute.cs
│ │ ├── Listing19.12.UsingSystemTimersTimer.cs
│ │ ├── Listing19.13.UsingSystemThreadingTimer.cs
│ │ ├── Listing19.14.CallingAPMOnWebRequest.cs
│ │ ├── Listing19.15.InvokingAPMWithCallbackAndState.cs
│ │ ├── Listing19.16.PassingStateUsigClosureOnAnonymousMethod.cs
│ │ ├── Listing19.17.UsingTaskToCallAPM.cs
│ │ ├── Listing19.18.UsingTaskToCallAPMUsingContinueWith.cs
│ │ ├── Listing19.19.AsynchronousDelegateInvocation.cs
│ │ ├── Listing19.20.ImplementingEAP.cs
│ │ ├── Listing19.21.UnhandledExceptionHandling.cs
│ │ ├── Listing19.22.HandlingUnhandledExceptionsFromTheWorkerThread.cs
│ │ ├── Listing19.23.AccessingTheUserInterfaceViaInvoke.cs
│ │ ├── Listing19.24.SafelyInvokingUserInterfaceObjects.cs
│ │ ├── PiCalculation.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Service References
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── Chapter20
│ │ └── Chapter20
│ │ ├── Chapter20.csproj
│ │ ├── Listing20.17.ModifyingAnImmutableString.cs
│ │ ├── Listing20.18.ModifyingAnImmutableWithTheIndexOperatorInUnsafeCode.cs
│ │ ├── Listing20.19.DirectlyAccessingAReferentTypesMembers.cs
│ │ ├── Listing20.20.DesignatingABlockForUnsafeCode.cs
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── bin
│ │ │ └── Debug
│ │ └── obj
│ │ └── x86
│ │ └── Debug
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ └── TempPE
│ ├── EssentialCSharp4.sln
│ ├── EssentialCSharp4.suo
│ ├── Shared
│ │ ├── PiCalculator InternalPiDigitCalculator.cs
│ │ ├── PiCalculator.cs
│ │ └── Program.cs
│ ├── enumtest.txt
│ └── enumtest2.txt
└── C#本质论源代码。是对应第3版的源代码。网_C#本质论源代码.zip
176 directories, 552 files
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论