Copy disabled (too large)
Download .txt
Showing preview only (11,314K chars total). Download the full file to get everything.
Repository: ufcpp/UfcppSample
Branch: master
Commit: 4d73d5ef42d6
Files: 3510
Total size: 9.6 MB
Directory structure:
gitextract_06k9nztl/
├── .editorconfig
├── .gitattributes
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── BreakingChanges/
│ ├── .gitignore
│ ├── BreakingChanges.sln
│ ├── VS2008_CS3/
│ │ ├── OverloadResolutionArraysOfPointer.cs
│ │ ├── ParamsOverride.cs
│ │ └── VS2008_CS3.csproj
│ ├── VS2010_CS4/
│ │ ├── ImplicitConversionCausedByVariance.cs
│ │ └── VS2010_CS4.csproj
│ ├── VS2012_CS5/
│ │ ├── IterationVariableOfForeach.cs
│ │ └── VS2012_CS5.csproj
│ ├── VS2015_CS6/
│ │ ├── CyclicalConstructorChaining.cs
│ │ ├── DefiniteAssignment.cs
│ │ ├── EnumBaseTypeSystemInt32.cs
│ │ ├── FuncOfFuncTypeInference.cs
│ │ ├── InvariantMeaningInBlock.cs
│ │ ├── KatakanaMiddleDot.cs
│ │ └── VS2015_CS6.csproj
│ ├── a.cs
│ ├── csc-all.ps1
│ ├── csc.ps1
│ └── read-summary.ps1
├── Chapters/
│ ├── Algorithm/
│ │ ├── Algorithm.csproj
│ │ ├── Algorithm.sln
│ │ ├── App.config
│ │ ├── Collections/
│ │ │ ├── ArrayList.cs
│ │ │ ├── BinaryTree.cs
│ │ │ ├── CircularBuffer.cs
│ │ │ ├── Dictionary.cs
│ │ │ ├── ForwardLinkedList.cs
│ │ │ ├── HashTable.cs
│ │ │ ├── LinkedList.cs
│ │ │ ├── PriorityQueue.cs
│ │ │ ├── Queue.cs
│ │ │ ├── Set.cs
│ │ │ ├── SortedArray.cs
│ │ │ └── Stack.cs
│ │ ├── Program.cs
│ │ └── Sort/
│ │ ├── BubbleSort.cs
│ │ ├── BucketSort.cs
│ │ ├── HeapSort.cs
│ │ ├── InsertSort.cs
│ │ ├── MergeSort.cs
│ │ ├── QuickSort.cs
│ │ ├── RadixSort.cs
│ │ ├── SelectSort.cs
│ │ ├── ShellSort.cs
│ │ └── Sort.cs
│ ├── AllInOne.sln
│ ├── Async/
│ │ ├── Async.sln
│ │ ├── Lock/
│ │ │ ├── Lock.csproj
│ │ │ ├── Monitor.cs
│ │ │ └── Program.cs
│ │ └── TaskLike/
│ │ ├── Program.cs
│ │ ├── TaskLike.cs
│ │ └── TaskLike.csproj
│ ├── Blogs/
│ │ ├── 2017/
│ │ │ └── Rune.pptx
│ │ ├── UnityAsync/
│ │ │ ├── UnityAsync0Introduction.md
│ │ │ ├── UnityAsync1Background.md
│ │ │ ├── UnityAsync2CurrentStatus.md
│ │ │ ├── UnityAsync3Retrospective.md
│ │ │ └── await fig.pptx
│ │ └── misc/
│ │ └── StructuralTyping.pptx
│ ├── Data/
│ │ ├── DataTypes.sln
│ │ ├── Deconstruction/
│ │ │ ├── DeconstructMethod.cs
│ │ │ ├── Deconstruction.csproj
│ │ │ ├── Evaluation.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── Program.cs
│ │ │ ├── Summary.cs
│ │ │ ├── Vector2D.cs
│ │ │ └── Vector3D.cs
│ │ ├── Discards/
│ │ │ ├── Discards.csproj
│ │ │ └── Program.cs
│ │ ├── OutVar/
│ │ │ ├── OutVar.csproj
│ │ │ ├── Point.cs
│ │ │ └── Program.cs
│ │ ├── Patterns/
│ │ │ ├── CallOnce.cs
│ │ │ ├── ConstantPattern.cs
│ │ │ ├── DeconstructRemoval.cs
│ │ │ ├── DiscardPattern.cs
│ │ │ ├── Expressions/
│ │ │ │ ├── Node.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Line.cs
│ │ │ ├── NoOrderGarantee.cs
│ │ │ ├── NonNull.cs
│ │ │ ├── Patterns.csproj
│ │ │ ├── Point.cs
│ │ │ ├── PositionalPattern.cs
│ │ │ ├── PropertyPattern.cs
│ │ │ ├── PropertyPatternField.cs
│ │ │ ├── RecursivePattern.cs
│ │ │ ├── Tuple.cs
│ │ │ ├── TupleSwitch.cs
│ │ │ ├── TypePattern.cs
│ │ │ ├── TypePatternNull.cs
│ │ │ ├── UserDefinedOperator.cs
│ │ │ ├── VarPattern.cs
│ │ │ └── ZeroOneTuple.cs
│ │ ├── Tuples/
│ │ │ ├── ErroneousSamples.cs
│ │ │ ├── Implementation.cs
│ │ │ ├── OutParams.cs
│ │ │ ├── Overload.cs
│ │ │ ├── Program.cs
│ │ │ ├── Summary.cs
│ │ │ ├── Tuples.csproj
│ │ │ ├── ValueTuple.cs
│ │ │ └── ZipSample.cs
│ │ ├── TypeSwitch/
│ │ │ ├── Expressions/
│ │ │ │ ├── Calculate.switcha.cs
│ │ │ │ ├── Calculate.vritual.cs
│ │ │ │ ├── Node.cs
│ │ │ │ ├── NodeBuilder.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── ToString.cs
│ │ │ ├── IsSample.cs
│ │ │ ├── Program.cs
│ │ │ ├── Summary.cs
│ │ │ ├── SwitchPerformance.cs
│ │ │ ├── SwitchSample.cs
│ │ │ ├── TypeSwitch.csproj
│ │ │ └── TypeSwitchPerformance.cs
│ │ └── fig/
│ │ └── fig typeswitch.pptx
│ ├── DevEnv/
│ │ ├── CodeAwareLibrarySample/
│ │ │ ├── .gitignore
│ │ │ ├── CodeAwareLibrarySample.sln
│ │ │ ├── FluentArithmetic/
│ │ │ │ ├── FluentArithmetic.csproj
│ │ │ │ ├── FluentExtensions.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── FluentArithmeticAnalyzer/
│ │ │ │ ├── FluentArithmeticAnalyzer/
│ │ │ │ │ ├── Assembly.cs
│ │ │ │ │ ├── DivByZero/
│ │ │ │ │ │ └── DivByZeroAnalyzer.cs
│ │ │ │ │ ├── FluentArithmeticAnalyzer.csproj
│ │ │ │ │ ├── Literal/
│ │ │ │ │ │ ├── LiteralAnalyzer.cs
│ │ │ │ │ │ └── LiteralFix.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ ├── Resources.Designer.cs
│ │ │ │ │ ├── Resources.resx
│ │ │ │ │ ├── SyntaxExtensions.cs
│ │ │ │ │ └── project.json
│ │ │ │ ├── FluentArithmeticAnalyzer.Test/
│ │ │ │ │ ├── DivByZeroUnitTest.cs
│ │ │ │ │ ├── FluentArithmeticAnalyzer.Test.csproj
│ │ │ │ │ ├── Helpers/
│ │ │ │ │ │ ├── CodeFixVerifier.Helper.cs
│ │ │ │ │ │ ├── DiagnosticResult.cs
│ │ │ │ │ │ └── DiagnosticVerifier.Helper.cs
│ │ │ │ │ ├── LiteralUnitTest.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ ├── Verifiers/
│ │ │ │ │ │ ├── CodeFixVerifier.cs
│ │ │ │ │ │ └── DiagnosticVerifier.cs
│ │ │ │ │ ├── app.config
│ │ │ │ │ └── packages.config
│ │ │ │ └── FluentArithmeticAnalyzer.Vsix/
│ │ │ │ ├── FluentArithmeticAnalyzer.Vsix.csproj
│ │ │ │ └── source.extension.vsixmanifest
│ │ │ └── build/
│ │ │ ├── FluentArithmetic.nuspec
│ │ │ ├── build.ps1
│ │ │ └── pack.bat
│ │ ├── ConsoleApplication1/
│ │ │ ├── ConsoleApplication1/
│ │ │ │ ├── App.config
│ │ │ │ ├── ConsoleApplication1.csproj
│ │ │ │ ├── Logic.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── ConsoleApplication1.sln
│ │ ├── Dependency/
│ │ │ ├── Game/
│ │ │ │ ├── App/
│ │ │ │ │ ├── App.csproj
│ │ │ │ │ ├── App.xaml
│ │ │ │ │ ├── App.xaml.cs
│ │ │ │ │ ├── ApplicationInsights.config
│ │ │ │ │ ├── MainPage.xaml
│ │ │ │ │ ├── MainPage.xaml.cs
│ │ │ │ │ ├── Package.appxmanifest
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ │ └── Default.rd.xml
│ │ │ │ │ └── packages.config
│ │ │ │ ├── ClassLibrary/
│ │ │ │ │ ├── ClassLibrary.csproj
│ │ │ │ │ ├── Game.cs
│ │ │ │ │ └── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── ConsoleApplication/
│ │ │ │ │ ├── App.config
│ │ │ │ │ ├── ConsoleApplication.csproj
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── Game.sln
│ │ │ │ ├── WebApplication/
│ │ │ │ │ ├── App_Start/
│ │ │ │ │ │ ├── BundleConfig.cs
│ │ │ │ │ │ ├── FilterConfig.cs
│ │ │ │ │ │ ├── IdentityConfig.cs
│ │ │ │ │ │ ├── RouteConfig.cs
│ │ │ │ │ │ └── Startup.Auth.cs
│ │ │ │ │ ├── Content/
│ │ │ │ │ │ ├── Site.css
│ │ │ │ │ │ └── bootstrap.css
│ │ │ │ │ ├── Controllers/
│ │ │ │ │ │ ├── AccountController.cs
│ │ │ │ │ │ ├── HomeController.cs
│ │ │ │ │ │ └── ManageController.cs
│ │ │ │ │ ├── Global.asax
│ │ │ │ │ ├── Global.asax.cs
│ │ │ │ │ ├── Models/
│ │ │ │ │ │ ├── AccountViewModels.cs
│ │ │ │ │ │ ├── IdentityModels.cs
│ │ │ │ │ │ └── ManageViewModels.cs
│ │ │ │ │ ├── Project_Readme.html
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ ├── Scripts/
│ │ │ │ │ │ ├── _references.js
│ │ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ │ │ ├── jquery.validate-vsdoc.js
│ │ │ │ │ │ ├── jquery.validate.js
│ │ │ │ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ │ │ │ ├── modernizr-2.6.2.js
│ │ │ │ │ │ └── respond.js
│ │ │ │ │ ├── Startup.cs
│ │ │ │ │ ├── Views/
│ │ │ │ │ │ ├── Account/
│ │ │ │ │ │ │ ├── ConfirmEmail.cshtml
│ │ │ │ │ │ │ ├── ExternalLoginConfirmation.cshtml
│ │ │ │ │ │ │ ├── ExternalLoginFailure.cshtml
│ │ │ │ │ │ │ ├── ForgotPassword.cshtml
│ │ │ │ │ │ │ ├── ForgotPasswordConfirmation.cshtml
│ │ │ │ │ │ │ ├── Login.cshtml
│ │ │ │ │ │ │ ├── Register.cshtml
│ │ │ │ │ │ │ ├── ResetPassword.cshtml
│ │ │ │ │ │ │ ├── ResetPasswordConfirmation.cshtml
│ │ │ │ │ │ │ ├── SendCode.cshtml
│ │ │ │ │ │ │ ├── VerifyCode.cshtml
│ │ │ │ │ │ │ └── _ExternalLoginsListPartial.cshtml
│ │ │ │ │ │ ├── Home/
│ │ │ │ │ │ │ ├── About.cshtml
│ │ │ │ │ │ │ ├── Contact.cshtml
│ │ │ │ │ │ │ └── Index.cshtml
│ │ │ │ │ │ ├── Manage/
│ │ │ │ │ │ │ ├── AddPhoneNumber.cshtml
│ │ │ │ │ │ │ ├── ChangePassword.cshtml
│ │ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ │ ├── ManageLogins.cshtml
│ │ │ │ │ │ │ ├── SetPassword.cshtml
│ │ │ │ │ │ │ └── VerifyPhoneNumber.cshtml
│ │ │ │ │ │ ├── Shared/
│ │ │ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ │ │ ├── Lockout.cshtml
│ │ │ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ │ │ └── _LoginPartial.cshtml
│ │ │ │ │ │ ├── Web.config
│ │ │ │ │ │ └── _ViewStart.cshtml
│ │ │ │ │ ├── Web.Debug.config
│ │ │ │ │ ├── Web.Release.config
│ │ │ │ │ ├── Web.config
│ │ │ │ │ ├── WebApplication.csproj
│ │ │ │ │ └── packages.config
│ │ │ │ └── WpfApplication/
│ │ │ │ ├── App.config
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── MainWindow.xaml
│ │ │ │ ├── MainWindow.xaml.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── Resources.Designer.cs
│ │ │ │ │ ├── Resources.resx
│ │ │ │ │ ├── Settings.Designer.cs
│ │ │ │ │ └── Settings.settings
│ │ │ │ └── WpfApplication.csproj
│ │ │ └── GameFramework/
│ │ │ ├── Game.Android/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Android.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── Resources/
│ │ │ │ ├── AboutResources.txt
│ │ │ │ ├── Resource.Designer.cs
│ │ │ │ └── Values/
│ │ │ │ └── Strings.xml
│ │ │ ├── Game.Core/
│ │ │ │ ├── Game.Core.csproj
│ │ │ │ ├── Game.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Game.Desktop/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Desktop.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Game.Ios/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Ios.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Game.Server/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Server.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Game.Universal/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Universal.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ └── GameFramework.sln
│ │ ├── fig/
│ │ │ └── devenv.pptx
│ │ └── アプリ1/
│ │ ├── アプリ1/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── ApplicationInsights.config
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ └── Default.rd.xml
│ │ │ ├── packages.config
│ │ │ └── アプリ1.csproj
│ │ ├── アプリ1.sln
│ │ ├── 共通部品/
│ │ │ ├── Class1.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── 共通部品.csproj
│ │ ├── 社内ツール1/
│ │ │ ├── App.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ └── 社内ツール1.csproj
│ │ └── 社内ツール2/
│ │ ├── App.config
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── 社内ツール2.csproj
│ ├── Dynamic/
│ │ └── fig/
│ │ └── ExpressionTrees.pptx
│ ├── Event/
│ │ ├── Event.sln
│ │ ├── EventDriven/
│ │ │ ├── EventDriven.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Version1/
│ │ │ │ └── Program.cs
│ │ │ ├── Version2/
│ │ │ │ ├── KeyboardEventLoop.cs
│ │ │ │ └── Program.cs
│ │ │ └── Version3/
│ │ │ ├── KeyboardEventLoop.cs
│ │ │ └── Program.cs
│ │ ├── Observable/
│ │ │ ├── AnonymousFunction.cs
│ │ │ ├── EventInternal/
│ │ │ │ ├── Cshap4/
│ │ │ │ │ └── EventSample.cs
│ │ │ │ ├── Csharp1/
│ │ │ │ │ └── EventSample.cs
│ │ │ │ └── EventSample.cs
│ │ │ ├── EventSource.cs
│ │ │ ├── Observable.csproj
│ │ │ ├── ParameterProbrem.cs
│ │ │ ├── Program.cs
│ │ │ └── ReactiveExtensions.cs
│ │ └── fig/
│ │ └── event.pptx
│ ├── FileBaseApp/
│ │ ├── AllowUnsafeBlocks.cs
│ │ ├── AspNet.cs
│ │ ├── Cat.cs
│ │ ├── Csproj/
│ │ │ ├── Csproj.csproj
│ │ │ └── Program.cs
│ │ ├── InvariantGlobalization.cs
│ │ ├── Lib/
│ │ │ ├── Lib.csproj
│ │ │ └── Program.cs
│ │ ├── PackageReference.cs
│ │ ├── ProjectReference.cs
│ │ └── Shebang.cs
│ ├── Framework/
│ │ └── fig/
│ │ ├── Framework.pptx
│ │ └── JIT.pptx
│ ├── Functional/
│ │ ├── DelegateInternal/
│ │ │ ├── DelegateInternal.csproj
│ │ │ ├── F.cs
│ │ │ ├── GetLength.cs
│ │ │ ├── InstanceMethod.cs
│ │ │ ├── LambdaOptimization.cs
│ │ │ ├── MakePrimitiveContravariant.cs
│ │ │ ├── MakePrimitiveCovariant.cs
│ │ │ └── Program.cs
│ │ ├── ExtensionMethods/
│ │ │ ├── ExtensionMethods.csproj
│ │ │ ├── Instance.cs
│ │ │ ├── InstanceAndExtension.cs
│ │ │ └── MyApp.cs
│ │ ├── Functional.sln
│ │ ├── LambdaInternal/
│ │ │ ├── InSameBoat.cs
│ │ │ ├── InstanceMethod.cs
│ │ │ ├── LambdaInternal.csproj
│ │ │ ├── MultipleFunctions.cs
│ │ │ ├── Program.cs
│ │ │ └── StaticMethod.cs
│ │ └── LocalFunctions/
│ │ ├── Capture.cs
│ │ ├── CaptureOptimization.cs
│ │ ├── CaptureOverwrite.cs
│ │ ├── Factorial.cs
│ │ ├── Iterator/
│ │ │ ├── MyEnumerable1.cs
│ │ │ ├── MyEnumerable2.cs
│ │ │ ├── MyEnumerable3.cs
│ │ │ ├── Program1.cs
│ │ │ └── Program2.cs
│ │ ├── Lambda.cs
│ │ ├── LocalFunctions.csproj
│ │ ├── Program.cs
│ │ ├── RecursiveFunction/
│ │ │ ├── Node.cs
│ │ │ ├── Program.cs
│ │ │ └── Tree.cs
│ │ ├── TaskCache/
│ │ │ ├── Program1.cs
│ │ │ └── Program2.cs
│ │ ├── ToArray/
│ │ │ ├── Program1.cs
│ │ │ └── Program2.cs
│ │ └── Usage/
│ │ └── Usage.cs
│ ├── Interop/
│ │ ├── NativeInterop/
│ │ │ ├── .gitignore
│ │ │ ├── Com/
│ │ │ │ ├── ComImportSample.cs
│ │ │ │ └── ComLateBindingSample.cs
│ │ │ ├── Dll/
│ │ │ │ ├── BlittableSample1.cs
│ │ │ │ ├── BlittableSample2.cs
│ │ │ │ ├── CallbackSample.cs
│ │ │ │ ├── DllImportSample.cs
│ │ │ │ ├── StringSample.cs
│ │ │ │ └── YourOwnDllImport.cs
│ │ │ ├── NativeInterop.csproj
│ │ │ ├── NativeInterop.sln
│ │ │ ├── Program.cs
│ │ │ ├── Sample.xml
│ │ │ └── WinRt/
│ │ │ └── WinRtSample.cs
│ │ ├── NativeMemory/
│ │ │ ├── ManagedApp/
│ │ │ │ ├── Interop.cs
│ │ │ │ ├── ManagedApp.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NativeLib/
│ │ │ │ ├── NativeLib.cpp
│ │ │ │ ├── NativeLib.vcxproj
│ │ │ │ ├── NativeLib.vcxproj.filters
│ │ │ │ ├── ReadMe.txt
│ │ │ │ ├── dllmain.cpp
│ │ │ │ ├── stdafx.cpp
│ │ │ │ ├── stdafx.h
│ │ │ │ └── targetver.h
│ │ │ └── NativeMemory.sln
│ │ ├── TypedReference/
│ │ │ ├── ArgList/
│ │ │ │ └── Program.cs
│ │ │ ├── CppReference/
│ │ │ │ ├── CppReference.cpp
│ │ │ │ ├── CppReference.vcxproj
│ │ │ │ ├── CppReference.vcxproj.filters
│ │ │ │ ├── stdafx.cpp
│ │ │ │ ├── stdafx.h
│ │ │ │ └── targetver.h
│ │ │ ├── ImplicitReference/
│ │ │ │ └── Program.cs
│ │ │ ├── InteropArgList/
│ │ │ │ └── Program.cs
│ │ │ ├── MakeRef/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ ├── Readme.md
│ │ │ ├── ReferenceUsage/
│ │ │ │ └── Program.cs
│ │ │ ├── TypedReference.csproj
│ │ │ └── TypedReference.sln
│ │ ├── Unsafe/
│ │ │ ├── Unsafe/
│ │ │ │ ├── Array.cs
│ │ │ │ ├── CustomFixed.cs
│ │ │ │ ├── EmptyArray.cs
│ │ │ │ ├── GcTracking.cs
│ │ │ │ ├── MutateString.cs
│ │ │ │ ├── PointerOperators.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RewriteString.cs
│ │ │ │ ├── String.Copy.cs
│ │ │ │ ├── String.cs
│ │ │ │ ├── StringInternal.cs
│ │ │ │ └── Unsafe.csproj
│ │ │ └── Unsafe.sln
│ │ ├── Win32Dll/
│ │ │ ├── ReadMe.txt
│ │ │ ├── Win32Dll.cpp
│ │ │ ├── Win32Dll.vcxproj
│ │ │ ├── Win32Dll.vcxproj.filters
│ │ │ ├── dllmain.cpp
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ │ └── fig/
│ │ └── unsafe.pptx
│ ├── MemoryManagement/
│ │ ├── DefaultValue/
│ │ │ ├── ArrayInitialization.cs
│ │ │ ├── DefaultValue.csproj
│ │ │ ├── FieldInitialization.cs
│ │ │ ├── Point.cs
│ │ │ └── Program.cs
│ │ ├── MemoryManagement.sln
│ │ ├── UninitializedMemory/
│ │ │ ├── ReadMe.txt
│ │ │ ├── UninitializedMemory.cpp
│ │ │ ├── UninitializedMemory.vcxproj
│ │ │ ├── UninitializedMemory.vcxproj.filters
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ │ └── fig/
│ │ └── fig immutable.pptx
│ ├── Misc/
│ │ ├── Keywords/
│ │ │ ├── Await/
│ │ │ │ ├── async.cs
│ │ │ │ ├── await.cs
│ │ │ │ └── yield.cs
│ │ │ ├── Keywords.csproj
│ │ │ ├── NameOf/
│ │ │ │ ├── NameOf.cs
│ │ │ │ └── UsingStatic.cs
│ │ │ ├── Program.cs
│ │ │ ├── Var/
│ │ │ │ ├── Variance.cs
│ │ │ │ └── var.cs
│ │ │ └── Yield/
│ │ │ ├── Program.cs
│ │ │ └── cs1.cs
│ │ ├── Misc.sln
│ │ └── PatternBased/
│ │ ├── CollectionInitializer.cs
│ │ ├── DeconstructBenchmark.cs
│ │ ├── PatternBased.csproj
│ │ ├── Queryable1.cs
│ │ ├── Queryable12.cs
│ │ └── Using.cs
│ ├── NullableReferenceTypes/
│ │ ├── DefiniteAssignment/
│ │ │ ├── DefiniteAssignment.csproj
│ │ │ └── Program.cs
│ │ ├── FlowAnalysis/
│ │ │ ├── Assingment.cs
│ │ │ ├── Attributes.cs
│ │ │ ├── BclAnnotation.cs
│ │ │ ├── Default.cs
│ │ │ ├── Equality.cs
│ │ │ ├── FlowAnalysis.csproj
│ │ │ ├── Forgiving.cs
│ │ │ └── Generics.cs
│ │ ├── NullPointer/
│ │ │ ├── InvalidPointer.cs
│ │ │ ├── ManualNullCheck/
│ │ │ │ ├── CallHierarchy.cs
│ │ │ │ └── DuplicateNullCheck.cs
│ │ │ └── NullPointer.csproj
│ │ ├── NullableReferenceTypes.sln
│ │ ├── ProjectLevel/
│ │ │ ├── Annotations/
│ │ │ │ └── Annotations.csproj
│ │ │ ├── Disable/
│ │ │ │ └── Disable.csproj
│ │ │ ├── Enable/
│ │ │ │ └── Enable.csproj
│ │ │ ├── Nullability.cs
│ │ │ └── Warnings/
│ │ │ └── Warnings.csproj
│ │ └── SourceLevel/
│ │ ├── IntParse.cs
│ │ ├── Program.cs
│ │ └── SourceLevel.csproj
│ ├── Old/
│ │ ├── ApplyXsl/
│ │ │ ├── ApplyXsl.cs
│ │ │ └── readme.txt
│ │ ├── BitField/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── BitField.cs
│ │ │ ├── BitField.csproj
│ │ │ ├── BitField.sln
│ │ │ ├── BitField.xml
│ │ │ ├── SampleLogic.cs
│ │ │ ├── readme.html
│ │ │ └── test.cs
│ │ ├── Complex/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── CartesianComplex.cs
│ │ │ ├── Complex.cs
│ │ │ ├── PolarComplex.cs
│ │ │ ├── makefile
│ │ │ ├── readme.txt
│ │ │ └── test.cs
│ │ ├── DrawImage/
│ │ │ ├── DrawImage.csproj
│ │ │ ├── Form1.Designer.cs
│ │ │ ├── Form1.cs
│ │ │ ├── Form1.resx
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── KeyLogger/
│ │ │ ├── Gma.UserActivityMonitor/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── GlobalEventProvider.cs
│ │ │ │ ├── Gma.UserActivityMonitor.csproj
│ │ │ │ ├── HookManager.Callbacks.cs
│ │ │ │ ├── HookManager.Structures.cs
│ │ │ │ ├── HookManager.Windows.cs
│ │ │ │ ├── HookManager.cs
│ │ │ │ └── MouseEventExtArgs.cs
│ │ │ ├── KeyLogger/
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── KeyLogger.csproj
│ │ │ │ ├── NativeWin32.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── Resources.Designer.cs
│ │ │ │ │ ├── Resources.resx
│ │ │ │ │ ├── Settings.Designer.cs
│ │ │ │ │ └── Settings.settings
│ │ │ │ ├── Window1.xaml
│ │ │ │ └── Window1.xaml.cs
│ │ │ └── KeyLogger.sln
│ │ ├── LineArt/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Form1.cs
│ │ │ ├── Form1.resx
│ │ │ ├── LineArt.csproj
│ │ │ ├── LineArt.sln
│ │ │ ├── SettingForm.cs
│ │ │ └── SettingForm.resx
│ │ ├── SoundLibrary/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── BitOperation.cs
│ │ │ ├── Command/
│ │ │ │ └── CommandParser.cs
│ │ │ ├── Data/
│ │ │ │ ├── DataGenerator.cs
│ │ │ │ ├── FourierSeriesGenerator.cs
│ │ │ │ ├── ImpulseGenerator.cs
│ │ │ │ ├── MixedDataGenerator.cs
│ │ │ │ ├── RampGenerator.cs
│ │ │ │ ├── RandomGenerator.cs
│ │ │ │ ├── SinusoidGenerator.cs
│ │ │ │ ├── StepGenerator.cs
│ │ │ │ ├── TspGenerator.cs
│ │ │ │ └── WhiteNoiseGenerator.cs
│ │ │ ├── Filter/
│ │ │ │ ├── BandPass/
│ │ │ │ │ └── BandPassFir.cs
│ │ │ │ ├── CircularBuffer.cs
│ │ │ │ ├── Connector.cs
│ │ │ │ ├── Delay/
│ │ │ │ │ ├── Delay.cs
│ │ │ │ │ ├── FractionalDelay.cs
│ │ │ │ │ └── IDelay.cs
│ │ │ │ ├── Equalizer/
│ │ │ │ │ ├── ButterworthFilterDesigner.cs
│ │ │ │ │ ├── ChebyshevFilterDesigner.cs
│ │ │ │ │ ├── EllipticFilterDesigner.cs
│ │ │ │ │ ├── FilterDesigner.cs
│ │ │ │ │ ├── ParametricEqualizer.cs
│ │ │ │ │ └── Type.cs
│ │ │ │ ├── Filter.cs
│ │ │ │ ├── Fir.cs
│ │ │ │ ├── FractionalCombFilter.cs
│ │ │ │ ├── Iir.cs
│ │ │ │ ├── Misc/
│ │ │ │ │ ├── AllPassFilter.cs
│ │ │ │ │ ├── Amplifier.cs
│ │ │ │ │ ├── CombFilter.cs
│ │ │ │ │ ├── Equalizer.cs
│ │ │ │ │ └── MultiDelay.cs
│ │ │ │ ├── Mixer.cs
│ │ │ │ └── readme.txt
│ │ │ ├── FilterGenerator/
│ │ │ │ ├── BandPassFir.cs
│ │ │ │ ├── Basic.cs
│ │ │ │ ├── Comb.cs
│ │ │ │ ├── Common.cs
│ │ │ │ ├── Connector.cs
│ │ │ │ ├── Equalizer.cs
│ │ │ │ ├── FilterGeneratorForm.cs
│ │ │ │ ├── FilterGeneratorForm.resx
│ │ │ │ ├── Fir.cs
│ │ │ │ ├── Iir.cs
│ │ │ │ └── Mixer.cs
│ │ │ ├── Mathematics/
│ │ │ │ ├── Array.cs
│ │ │ │ ├── Complex.cs
│ │ │ │ ├── ComplexMath.cs
│ │ │ │ ├── Constant.cs
│ │ │ │ ├── Continuous/
│ │ │ │ │ ├── Function.cs
│ │ │ │ │ └── Range.cs
│ │ │ │ ├── Discrete/
│ │ │ │ │ ├── CircularConvolution.cs
│ │ │ │ │ ├── CircularCorrelation.cs
│ │ │ │ │ ├── Convolution.cs
│ │ │ │ │ ├── Correlation.cs
│ │ │ │ │ ├── Differential.cs
│ │ │ │ │ └── Function.cs
│ │ │ │ ├── Elliptic.cs
│ │ │ │ ├── Expression/
│ │ │ │ │ ├── Polynomial.cs
│ │ │ │ │ └── Rational.cs
│ │ │ │ ├── Function/
│ │ │ │ │ ├── Algorithm.cs
│ │ │ │ │ ├── Binary.cs
│ │ │ │ │ ├── CachedFunction.cs
│ │ │ │ │ ├── ComplexVariable.cs
│ │ │ │ │ ├── Constant.cs
│ │ │ │ │ ├── Elementary/
│ │ │ │ │ │ ├── Exp.cs
│ │ │ │ │ │ ├── GeneralPolynomial.cs
│ │ │ │ │ │ └── Polynomial.cs
│ │ │ │ │ ├── Fraction.cs
│ │ │ │ │ ├── Function.cs
│ │ │ │ │ ├── Imaginary.cs
│ │ │ │ │ ├── Multiple.cs
│ │ │ │ │ ├── Product.cs
│ │ │ │ │ ├── Series.cs
│ │ │ │ │ ├── Sum.cs
│ │ │ │ │ ├── Unary.cs
│ │ │ │ │ ├── Variable.cs
│ │ │ │ │ └── VariableTable.cs
│ │ │ │ ├── Misc.cs
│ │ │ │ ├── Statistics.cs
│ │ │ │ └── ThreeDimension/
│ │ │ │ ├── AffineMatrix.cs
│ │ │ │ ├── Matrix.cs
│ │ │ │ ├── Quaternion.cs
│ │ │ │ └── Vector.cs
│ │ │ ├── Misc/
│ │ │ │ └── Trace.cs
│ │ │ ├── Music/
│ │ │ │ ├── Amplifier.cs
│ │ │ │ ├── CompoundSound.cs
│ │ │ │ ├── Envelope.cs
│ │ │ │ ├── HarmonicTone.cs
│ │ │ │ ├── PeriodicSound.cs
│ │ │ │ ├── PureTone.cs
│ │ │ │ ├── Sound.cs
│ │ │ │ ├── SoundFromData.cs
│ │ │ │ ├── SoundWithFilter.cs
│ │ │ │ ├── Temperament.cs
│ │ │ │ ├── Tremolo.cs
│ │ │ │ └── Vibrato.cs
│ │ │ ├── Pipe/
│ │ │ │ ├── CascadePipe.cs
│ │ │ │ ├── Monaural/
│ │ │ │ │ ├── FilteredPipe.cs
│ │ │ │ │ ├── RateTransposer.cs
│ │ │ │ │ └── TimeStretcher.cs
│ │ │ │ ├── Pipe.cs
│ │ │ │ ├── Queue.cs
│ │ │ │ └── Stereo/
│ │ │ │ ├── FilteredPipe.cs
│ │ │ │ ├── PitchShifter.cs
│ │ │ │ ├── RateTransposer.cs
│ │ │ │ └── TimeStretcher.cs
│ │ │ ├── SoundLibrary.csproj
│ │ │ ├── SpectrumAnalysis/
│ │ │ │ ├── Fft.cs
│ │ │ │ ├── Spectrum.cs
│ │ │ │ └── readme.txt
│ │ │ ├── Stream/
│ │ │ │ ├── Monaural/
│ │ │ │ │ ├── FilteredStream.cs
│ │ │ │ │ ├── RateTransposer.cs
│ │ │ │ │ ├── TimeStretcher.cs
│ │ │ │ │ └── WaveStream.cs
│ │ │ │ └── Stream.cs
│ │ │ ├── Util.cs
│ │ │ ├── Wave/
│ │ │ │ ├── FilterAdapter.cs
│ │ │ │ ├── Util.cs
│ │ │ │ ├── Wave.cs
│ │ │ │ ├── WaveReader.cs
│ │ │ │ ├── WaveWriter.cs
│ │ │ │ └── readme.txt
│ │ │ ├── WaveAnalysis/
│ │ │ │ ├── DataList.cs
│ │ │ │ ├── WaveAnalyzer.cs
│ │ │ │ ├── WaveData.cs
│ │ │ │ ├── WaveFrequency.cs
│ │ │ │ ├── WaveMS.cs
│ │ │ │ ├── WaveMonaural.cs
│ │ │ │ └── WaveTime.cs
│ │ │ ├── documents/
│ │ │ │ ├── Data/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Filter/
│ │ │ │ │ ├── BandPass/
│ │ │ │ │ │ └── index.html
│ │ │ │ │ ├── Delay/
│ │ │ │ │ │ └── index.html
│ │ │ │ │ ├── Equalizer/
│ │ │ │ │ │ └── index.html
│ │ │ │ │ ├── Misc/
│ │ │ │ │ │ └── index.html
│ │ │ │ │ └── index.html
│ │ │ │ ├── Mathematics/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Music/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Pipe/
│ │ │ │ │ └── index.html
│ │ │ │ ├── SpectrumAnalysis/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Wave/
│ │ │ │ │ └── index.html
│ │ │ │ ├── WaveAnalysis/
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ └── style.css
│ │ │ └── fft/
│ │ │ ├── Makefile
│ │ │ ├── fft.cpp
│ │ │ ├── fftsg.c
│ │ │ └── readme.txt
│ │ ├── UserInputSample/
│ │ │ ├── UserInputSample/
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── DelegateCommand.cs
│ │ │ │ ├── InputData.cs
│ │ │ │ ├── MainWindow.xaml
│ │ │ │ ├── MainWindow.xaml.cs
│ │ │ │ ├── NotificationObject.cs
│ │ │ │ └── UserInputSample.csproj
│ │ │ └── UserInputSample.sln
│ │ ├── reversi/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── OptionForm.cs
│ │ │ ├── OptionForm.resx
│ │ │ ├── Reversi.csproj
│ │ │ ├── Reversi.sln
│ │ │ ├── ReversiBoard.cs
│ │ │ ├── ReversiForm.cs
│ │ │ ├── ReversiForm.resx
│ │ │ ├── ReversiPanel.cs
│ │ │ └── licenses.licx
│ │ └── spctrum/
│ │ ├── AppMain/
│ │ │ ├── AppSettings.cs
│ │ │ ├── MainForm.cs
│ │ │ ├── MainForm.resx
│ │ │ ├── WaveGraphForm.cs
│ │ │ ├── WaveGraphForm.resx
│ │ │ ├── WaveLoadForm.cs
│ │ │ ├── WaveLoadForm.resx
│ │ │ ├── WaveSaveForm.cs
│ │ │ └── WaveSaveForm.resx
│ │ ├── AssemblyInfo.cs
│ │ ├── Class1.cs
│ │ ├── Filter/
│ │ │ ├── CircularBuffer.cs
│ │ │ ├── Connector.cs
│ │ │ ├── Filter.cs
│ │ │ ├── Fir.cs
│ │ │ └── Iir.cs
│ │ ├── Graph/
│ │ │ ├── Graph.cs
│ │ │ ├── Graph.resx
│ │ │ ├── GraphForm.cs
│ │ │ ├── GraphForm.resx
│ │ │ ├── GraphForm2.cs
│ │ │ └── GraphForm2.resx
│ │ ├── Spectrum.csproj
│ │ ├── SpectrumAnalysis/
│ │ │ ├── Common.cs
│ │ │ ├── Complex.cs
│ │ │ ├── Fft.cs
│ │ │ └── Spectrum.cs
│ │ ├── Wave/
│ │ │ └── Wave.cs
│ │ ├── WaveAnalysis/
│ │ │ ├── DataList.cs
│ │ │ ├── WaveAnalyzer.cs
│ │ │ └── WaveData.cs
│ │ ├── fft/
│ │ │ ├── Makefile
│ │ │ ├── fft.cpp
│ │ │ ├── fftsg.c
│ │ │ ├── readme.txt
│ │ │ └── vsvars32.bat
│ │ ├── readme/
│ │ │ └── fig.ppt
│ │ └── spectrum.sln
│ ├── Oop/
│ │ ├── GenericsSample/
│ │ │ ├── GenericsSample.csproj
│ │ │ ├── Template.cs
│ │ │ ├── TypeErasure.cs
│ │ │ ├── ValueType.cs
│ │ │ ├── Wrapper.cs
│ │ │ └── fig/
│ │ │ └── fig.pptx
│ │ ├── InterfaceSample/
│ │ │ ├── Bcl/
│ │ │ │ ├── IComparableSample.cs
│ │ │ │ ├── IDisposableSample.cs
│ │ │ │ ├── IEnumerableSample.cs
│ │ │ │ └── IReadOnlyListSample.cs
│ │ │ ├── Explicit/
│ │ │ │ ├── ExpliciteImplementationSample.cs
│ │ │ │ ├── GenericInterfaceSample.cs
│ │ │ │ ├── MultipleImplementationSample.cs
│ │ │ │ └── PolymorphicIEquatableSample.cs
│ │ │ ├── InterfaceSample.csproj
│ │ │ └── Program.cs
│ │ ├── MultipleInheritance/
│ │ │ └── fig/
│ │ │ ├── fig.pptx
│ │ │ └── 多重継承問題.docx
│ │ ├── Oop.sln
│ │ ├── TopLevelAccessibility/
│ │ │ ├── ConsoleApplication/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ConsoleApplication.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ReferredClassLibrary/
│ │ │ │ ├── Inheritance.cs
│ │ │ │ ├── Internals.cs
│ │ │ │ ├── Nested.cs
│ │ │ │ ├── Publics.cs
│ │ │ │ └── ReferredClassLibrary.csproj
│ │ │ └── fig/
│ │ │ └── fig.pptx
│ │ ├── ValueTypeGenerics/
│ │ │ ├── AvoidBoxing.cs
│ │ │ ├── BinaryOperationBenchmark.cs
│ │ │ ├── Foreach/
│ │ │ │ ├── Iterator/
│ │ │ │ │ └── Program.cs
│ │ │ │ └── Struct/
│ │ │ │ └── Program.cs
│ │ │ ├── GenericArithmeticOperators/
│ │ │ │ ├── Generics/
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── IBinaryOperator.cs
│ │ │ │ ├── Interface/
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── PseudoStatic/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ └── ValueTypeGenerics.csproj
│ │ ├── Variance/
│ │ │ ├── ArrayCovariance.cs
│ │ │ ├── Base.cs
│ │ │ ├── Contravariance.cs
│ │ │ ├── Covariance.cs
│ │ │ ├── NestedVariance.cs
│ │ │ ├── Program.cs
│ │ │ └── Variance.csproj
│ │ └── fig/
│ │ └── fig.pptx
│ ├── Package/
│ │ └── TypeForwarding/
│ │ ├── BasicSamples/
│ │ │ ├── ActualLibrary/
│ │ │ │ ├── ActualLibrary.csproj
│ │ │ │ ├── Class1.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── ConsoleApplication1/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── _ConsoleApplication1.csproj
│ │ ├── FormattableString/
│ │ │ ├── ClassLibrary35/
│ │ │ │ ├── ClassLibrary35.csproj
│ │ │ │ ├── Formatter1.cs
│ │ │ │ ├── IFormatter.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ClassLibrary46/
│ │ │ │ ├── ClassLibrary46.csproj
│ │ │ │ ├── Formatter2.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── FormattableString20/
│ │ │ │ ├── FormattableString.cs
│ │ │ │ ├── FormattableString20.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── FormattableString46/
│ │ │ │ ├── FormattableString.cs
│ │ │ │ ├── FormattableString46.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample35/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── Sample35.csproj
│ │ │ └── Sample46/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Sample46.csproj
│ │ ├── TypeForwarding.sln
│ │ ├── TypeForwardingLibrary/
│ │ │ ├── AssemblyAttributes.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── TypeForwardingLibrary.csproj
│ │ ├── VersioningSamples/
│ │ │ ├── Version1/
│ │ │ │ └── MonolithicClassLibrary/
│ │ │ │ ├── HttpExtensions.cs
│ │ │ │ ├── MonolithicClassLibrary.csproj
│ │ │ │ ├── NumericExtensions.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── StringExtensions.cs
│ │ │ └── Version2/
│ │ │ ├── HttpClassLibrary/
│ │ │ │ ├── HttpClassLibrary.csproj
│ │ │ │ ├── HttpExtensions.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── MonolithicClassLibrary/
│ │ │ │ ├── MonolithicClassLibrary.V2.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── TypeForward.cs
│ │ │ ├── NumericClassLibrary/
│ │ │ │ ├── NumericClassLibrary.csproj
│ │ │ │ ├── NumericExtensions.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── StringClassLibrary/
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── StringClassLibrary.csproj
│ │ │ └── StringExtensions.cs
│ │ └── fig/
│ │ └── fig.pptx
│ ├── Resource/
│ │ ├── Boxing/
│ │ │ ├── Boxing.csproj
│ │ │ ├── Generics/
│ │ │ │ └── Program.cs
│ │ │ ├── IntAsObject/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ └── ToString/
│ │ │ └── Program.cs
│ │ ├── ByRef/
│ │ │ ├── ByRef.csproj
│ │ │ ├── InOutAreRef.cs
│ │ │ ├── InParameter/
│ │ │ │ ├── InCopy.cs
│ │ │ │ └── Quarternion.cs
│ │ │ ├── OutParameter/
│ │ │ │ ├── Out.cs
│ │ │ │ └── Ref.cs
│ │ │ ├── Program.cs
│ │ │ ├── RefExtensions/
│ │ │ │ ├── FieldRef.cs
│ │ │ │ ├── Generics.cs
│ │ │ │ └── Quarternion.cs
│ │ │ ├── RefReassignment/
│ │ │ │ ├── RefFor.cs
│ │ │ │ ├── RefForeach.cs
│ │ │ │ ├── RefReassingment.cs
│ │ │ │ └── RefReassingmentMax.cs
│ │ │ └── StackOnly.cs
│ │ ├── ClassOrStruct/
│ │ │ ├── ClassOrStruct.csproj
│ │ │ ├── Csharp6.cs
│ │ │ ├── DefaultValue.cs
│ │ │ ├── Memberwise.cs
│ │ │ ├── ParameterlessConstructor.cs
│ │ │ ├── Program.cs
│ │ │ ├── SampleClass.cs
│ │ │ └── SampleStruct.cs
│ │ ├── RecursiveReadOnly/
│ │ │ ├── ClassReadonly.cs
│ │ │ ├── Copy.cs
│ │ │ ├── Program.cs
│ │ │ ├── ReadonlyStruct.cs
│ │ │ ├── RecursiveReadOnly.csproj
│ │ │ ├── StructReadonly.cs
│ │ │ └── ThisRewrite.cs
│ │ ├── RefAndPointer/
│ │ │ ├── NullRef.cs
│ │ │ ├── RefAndPointer.csproj
│ │ │ ├── UnsafeClass.cs
│ │ │ └── UnsafeRef.cs
│ │ ├── RefReturns/
│ │ │ ├── App.config
│ │ │ ├── MultiStepRef/
│ │ │ │ └── Program.cs
│ │ │ ├── Pointers/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RefLocals/
│ │ │ │ └── Program.cs
│ │ │ ├── RefReturns/
│ │ │ │ └── Program.cs
│ │ │ ├── RefReturns.csproj
│ │ │ ├── Summary.cs
│ │ │ └── ValueTypePassedByReference/
│ │ │ ├── ArraySample.cs
│ │ │ ├── Capsuled/
│ │ │ │ └── Program.cs
│ │ │ ├── CircularBuffer.cs
│ │ │ ├── ImmutablePoint.cs
│ │ │ ├── Program.cs
│ │ │ ├── Raw/
│ │ │ │ └── Program.cs
│ │ │ └── Ref/
│ │ │ └── Program.cs
│ │ ├── ResourceManagement.sln
│ │ ├── Span/
│ │ │ ├── .gitignore
│ │ │ ├── Pointer.cs
│ │ │ ├── Program.cs
│ │ │ ├── SafeStackalloc.cs
│ │ │ ├── Span.csproj
│ │ │ ├── SpanSafetyRules.cs
│ │ │ ├── StreamRead.cs
│ │ │ ├── Substring.cs
│ │ │ └── VariousTypeOfMemory.cs
│ │ ├── StructLayoutSample/
│ │ │ ├── AbuseUnion.cs
│ │ │ ├── AutoLayout.cs
│ │ │ ├── ExplicitLayout.cs
│ │ │ ├── IllegalAddress.cs
│ │ │ ├── IllegalLayout.cs
│ │ │ ├── SequentialLayout.Pack.cs
│ │ │ ├── SequentialLayout.cs
│ │ │ ├── StructLayoutSample.csproj
│ │ │ └── Union.cs
│ │ ├── StructPerformance/
│ │ │ ├── Class/
│ │ │ │ ├── Immutable/
│ │ │ │ │ ├── Calculator.cs
│ │ │ │ │ └── Vector.cs
│ │ │ │ └── Mutable/
│ │ │ │ ├── Calculator.cs
│ │ │ │ └── Vector.cs
│ │ │ ├── ICalculator.cs
│ │ │ ├── Program.cs
│ │ │ ├── RandomExtensions.cs
│ │ │ ├── Struct/
│ │ │ │ ├── Immutable/
│ │ │ │ │ ├── Calculator.cs
│ │ │ │ │ └── Vector.cs
│ │ │ │ └── Mutable/
│ │ │ │ ├── Calculator.cs
│ │ │ │ └── Vector.cs
│ │ │ └── StructPerformance.csproj
│ │ ├── WeakReference/
│ │ │ ├── HowToUse/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ ├── WeakEvent/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── WeakEventExtensions.AsWeakObservable.cs
│ │ │ │ ├── WeakEventExtensions.FinalizeDiposable.cs
│ │ │ │ └── WeakEventExtensions.cs
│ │ │ ├── WeakReference.csproj
│ │ │ └── WeakTable/
│ │ │ ├── Person.cs
│ │ │ └── Program.cs
│ │ └── fig/
│ │ ├── fig nre.pptx
│ │ ├── fig readonly.pptx
│ │ ├── fig ref.pptx
│ │ └── fig span.pptx
│ ├── Scripting/
│ │ ├── Scripting.sln
│ │ ├── TurtleGraphics/
│ │ │ ├── App.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ ├── TurtleGraphics.csproj
│ │ │ ├── ViewModels/
│ │ │ │ ├── BindableBase.cs
│ │ │ │ ├── Command.cs
│ │ │ │ ├── Commander.cs
│ │ │ │ ├── Cursor.ValueChanged.cs
│ │ │ │ ├── Cursor.cs
│ │ │ │ ├── Line.ValueChanged.cs
│ │ │ │ ├── Line.cs
│ │ │ │ └── TurtleGraphicsViewModel.cs
│ │ │ └── project.json
│ │ ├── global.json
│ │ └── src/
│ │ └── Scripting/
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Scripting.xproj
│ │ ├── a.csx
│ │ └── project.json
│ ├── Start/
│ │ ├── IdentifierScope/
│ │ │ ├── AfterDeclaration.cs
│ │ │ ├── AnonymousFunction.cs
│ │ │ ├── EmbeddedStatement.cs
│ │ │ ├── For.cs
│ │ │ ├── Foreach.cs
│ │ │ ├── IdentifierScope.csproj
│ │ │ ├── IsOperator.cs
│ │ │ ├── Iterator.cs
│ │ │ ├── Lifetime.cs
│ │ │ ├── LocalFunctions.cs
│ │ │ ├── Loop.cs
│ │ │ ├── Member.cs
│ │ │ ├── Method.cs
│ │ │ ├── Nest.cs
│ │ │ ├── Program.cs
│ │ │ ├── Scope.cs
│ │ │ ├── TypeName.cs
│ │ │ ├── TypeName1.cs
│ │ │ └── TypeName2.cs
│ │ ├── Start.sln
│ │ ├── StringInterplation/
│ │ │ ├── Overload.cs
│ │ │ ├── Program.cs
│ │ │ └── StringInterplation.csproj
│ │ ├── Variables/
│ │ │ ├── Literals.cs
│ │ │ ├── Program.cs
│ │ │ └── Variables.csproj
│ │ └── fig/
│ │ └── fig.pptx
│ ├── StructuredProgramming/
│ │ ├── BackportEnumerable/
│ │ │ ├── Action.cs
│ │ │ ├── BackportEnumerable.csproj
│ │ │ ├── Func.cs
│ │ │ ├── Linq/
│ │ │ │ └── Enumerable.cs
│ │ │ ├── Runtime/
│ │ │ │ └── CompilerServices/
│ │ │ │ └── ExtensionAttribute.cs
│ │ │ └── readme.txt
│ │ ├── Exceptions/
│ │ │ ├── ExceptionFilterSample.cs
│ │ │ ├── ExceptionImplementation.cs
│ │ │ ├── Exceptions.csproj
│ │ │ ├── IgnoreErrorImplementation.cs
│ │ │ ├── Program.cs
│ │ │ ├── ReturnCodeImplementation.cs
│ │ │ └── ThrowExpressions.cs
│ │ ├── Expressions/
│ │ │ ├── Expressions.cs
│ │ │ ├── Expressions.csproj
│ │ │ ├── Program.cs
│ │ │ └── Statements.cs
│ │ ├── ExternAliasConsoleApplication/
│ │ │ ├── ExternAliasConsoleApplication.csproj
│ │ │ └── Program.cs
│ │ ├── Function/
│ │ │ ├── ExpressionBodied.cs
│ │ │ ├── FuncAction.cs
│ │ │ ├── Function.csproj
│ │ │ ├── InputNumberSample.cs
│ │ │ ├── MultipleReturns.cs
│ │ │ ├── MyMath.cs
│ │ │ ├── NoParameterNoReturn.cs
│ │ │ ├── OverloadSample.cs
│ │ │ └── Program.cs
│ │ ├── Inlining/
│ │ │ ├── CommonExecutionPath.cs
│ │ │ ├── Inlining.csproj
│ │ │ ├── Program.cs
│ │ │ ├── SimpleAdd.cs
│ │ │ └── WithLoop.cs
│ │ ├── Namespaces/
│ │ │ ├── MyApp.cs
│ │ │ ├── Namespaces.csproj
│ │ │ ├── Program.cs
│ │ │ └── global.cs
│ │ ├── OverloadResolution/
│ │ │ ├── OverloadResolution/
│ │ │ │ ├── Ambiguous.cs
│ │ │ │ ├── Csharp6Lambda.cs
│ │ │ │ ├── Csharp73/
│ │ │ │ │ ├── ColorColor.cs
│ │ │ │ │ ├── DummyOptionalParamter.cs
│ │ │ │ │ ├── GenericConstraints.cs
│ │ │ │ │ ├── MethodReturn.cs
│ │ │ │ │ ├── Refness.cs
│ │ │ │ │ ├── Static.cs
│ │ │ │ │ ├── StructClass.cs
│ │ │ │ │ └── UncompilableStatic.cs
│ │ │ │ ├── ExpressionTree.cs
│ │ │ │ ├── Extensions.cs
│ │ │ │ ├── Generic.cs
│ │ │ │ ├── Inference.cs
│ │ │ │ ├── Lambda.cs
│ │ │ │ ├── OptionalParameter.cs
│ │ │ │ ├── OverloadResolution.csproj
│ │ │ │ ├── Paremeter.cs
│ │ │ │ ├── StringInterpolation.cs
│ │ │ │ └── ValueType.cs
│ │ │ └── OverloadResolution.sln
│ │ ├── Params/
│ │ │ ├── NoParam.cs
│ │ │ └── Params.csproj
│ │ ├── StructuredProgramming.sln
│ │ ├── Tuples/
│ │ │ ├── AnonymousTypes.cs
│ │ │ ├── Tuples.cs
│ │ │ ├── Tuples.csproj
│ │ │ ├── TypeX.cs
│ │ │ └── personal_infomation.csv
│ │ └── fig/
│ │ ├── fig expressions.pptx
│ │ └── fig function.pptx
│ └── ufcpp2000/
│ ├── algorithm/
│ │ ├── fig/
│ │ │ └── fig.ppt
│ │ └── src/
│ │ ├── ArrayList.cs
│ │ ├── BinaryTree.cs
│ │ ├── CircularBuffer.cs
│ │ ├── Dictionary.cs
│ │ ├── ForwardLinkedList.cs
│ │ ├── HashTable.cs
│ │ ├── LinkedList.cs
│ │ ├── PriorityQueue.cs
│ │ ├── Queue.cs
│ │ ├── Set.cs
│ │ ├── Sort.cs
│ │ ├── SortedArray.cs
│ │ └── Stack.cs
│ ├── common/
│ │ ├── ads
│ │ ├── footer
│ │ ├── googlecolor.js
│ │ ├── header
│ │ ├── ifooter
│ │ ├── iheader
│ │ ├── mfooter
│ │ ├── mheader
│ │ ├── underbody
│ │ ├── undermenu
│ │ └── 没/
│ │ └── Live Search.txt
│ ├── computer/
│ │ └── fig/
│ │ ├── GateLevel/
│ │ │ └── fig.pptx
│ │ ├── Logical/
│ │ │ └── fig.pptx
│ │ ├── fig.ppt
│ │ └── fig.pptx
│ ├── csharp/
│ │ ├── demo/
│ │ │ └── readme.md
│ │ ├── dic/
│ │ │ ├── .htaccess
│ │ │ ├── reversedic.css
│ │ │ ├── reversedic.html
│ │ │ ├── reversedic.xml
│ │ │ └── reversedic.xsl
│ │ ├── draft/
│ │ │ ├── Characteristics.cs
│ │ │ ├── Characteristics.txt
│ │ │ ├── CharacteristicsViewModel.cs
│ │ │ ├── DelegateCommand.cs
│ │ │ ├── SampleClass.cs
│ │ │ ├── SampleClass.xml
│ │ │ └── ViewModelTemplate.ps1
│ │ ├── fig/
│ │ │ ├── Framework/
│ │ │ │ └── fig framework.pptx
│ │ │ ├── Function/
│ │ │ │ └── fig function.pptx
│ │ │ ├── LinqToSql.pptx
│ │ │ ├── fig Interop.pptx
│ │ │ ├── fig OOP.pptx
│ │ │ ├── fig appendix.pptx
│ │ │ ├── fig immutable.pptx
│ │ │ ├── fig null.pptx
│ │ │ ├── fig はじめに.pptx
│ │ │ ├── fig データ処理.pptx
│ │ │ ├── fig リソース管理.pptx
│ │ │ ├── fig 例外.pptx
│ │ │ ├── fig 動的.pptx
│ │ │ ├── fig 基礎.pptx
│ │ │ ├── fig 構造化.pptx
│ │ │ ├── fig 索引・概要.pptx
│ │ │ ├── fig 関数型.pptx
│ │ │ ├── fig 非同期.pptx
│ │ │ ├── fig.ppt
│ │ │ ├── fig.pptx
│ │ │ ├── inheritance.emf
│ │ │ ├── multithread1.emf
│ │ │ ├── multithread2.emf
│ │ │ ├── oop0.emf
│ │ │ ├── oop1.emf
│ │ │ ├── oop3.emf
│ │ │ ├── pointer1.emf
│ │ │ ├── ref1.emf
│ │ │ ├── ref2.emf
│ │ │ ├── ref3.emf
│ │ │ ├── ref4.emf
│ │ │ ├── ref5.emf
│ │ │ ├── refval0.emf
│ │ │ ├── refval1.emf
│ │ │ ├── refval2.emf
│ │ │ ├── refval3.emf
│ │ │ ├── thread.emf
│ │ │ └── thread.pptx
│ │ ├── movie/
│ │ │ ├── GetStarted/
│ │ │ │ ├── Arithmetic.wmv
│ │ │ │ ├── Cast.wmv
│ │ │ │ ├── For.wmv
│ │ │ │ ├── Foreach.wmv
│ │ │ │ ├── Function.wmv
│ │ │ │ ├── HelloWorld.wmv
│ │ │ │ ├── HelloWorldHD.wmv
│ │ │ │ ├── IfElse.wmv
│ │ │ │ ├── String.wmv
│ │ │ │ ├── Struct.wmv
│ │ │ │ ├── UsageFirst.wmv
│ │ │ │ ├── Variable1.wmv
│ │ │ │ ├── Variable2.wmv
│ │ │ │ └── While.wmv
│ │ │ └── VideoPlayer.xap
│ │ ├── sample/
│ │ │ └── SoundLibrary/
│ │ │ ├── Data/
│ │ │ │ └── index.html
│ │ │ ├── Filter/
│ │ │ │ ├── BandPass/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Delay/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Equalizer/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Misc/
│ │ │ │ │ └── index.html
│ │ │ │ └── index.html
│ │ │ ├── Mathematics/
│ │ │ │ └── index.html
│ │ │ ├── Music/
│ │ │ │ └── index.html
│ │ │ ├── Pipe/
│ │ │ │ └── index.html
│ │ │ ├── SpectrumAnalysis/
│ │ │ │ └── index.html
│ │ │ ├── Wave/
│ │ │ │ └── index.html
│ │ │ ├── WaveAnalysis/
│ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ └── style.css
│ │ ├── slide/
│ │ │ ├── LINQ.pptx
│ │ │ ├── WcfDemo.pptx
│ │ │ ├── WcfDemo.xps
│ │ │ ├── dotnet4.pptx
│ │ │ ├── dynamics.pptx
│ │ │ ├── dynamics.xps
│ │ │ └── model/
│ │ │ ├── Factoring.pptx
│ │ │ ├── Procedure.pptx
│ │ │ ├── Variable.pptx
│ │ │ └── テンプレート.pptx
│ │ ├── source/
│ │ │ ├── ComicMinimal.cs
│ │ │ ├── Complex.cs
│ │ │ ├── Comprehension.cs
│ │ │ ├── CreateTestData.cs
│ │ │ ├── DuckTypingInterface.cs
│ │ │ ├── DynamicXml.cs
│ │ │ ├── ExpressionTemplates.xaml
│ │ │ ├── ExpressionTest.cs
│ │ │ ├── ExpressionTreeTemplates.xaml
│ │ │ ├── MemoryImage.mg
│ │ │ ├── MultipleDispatch.cs
│ │ │ ├── Operator.cs
│ │ │ ├── Query.cs
│ │ │ ├── Rational.cs
│ │ │ ├── SleepSort.cs
│ │ │ ├── TypesForTest.cs
│ │ │ ├── _vti_cnf/
│ │ │ │ ├── ComicMinimal.cs
│ │ │ │ ├── Complex.cs
│ │ │ │ ├── Comprehension.cs
│ │ │ │ ├── CreateTestData.cs
│ │ │ │ ├── DuckTypingInterface.cs
│ │ │ │ ├── DynamicXml.cs
│ │ │ │ ├── ExpressionTemplates.xaml
│ │ │ │ ├── ExpressionTest.cs
│ │ │ │ ├── ExpressionTreeTemplates.xaml
│ │ │ │ ├── MemoryImage.mg
│ │ │ │ ├── MultipleDispatch.cs
│ │ │ │ ├── Operator.cs
│ │ │ │ ├── Query.cs
│ │ │ │ ├── Rational.cs
│ │ │ │ └── TypesForTest.cs
│ │ │ └── コンマ区切り.cs
│ │ └── 元原稿/
│ │ ├── プレゼンテーション1.pptx
│ │ ├── 非同期処理の基礎知識/
│ │ │ ├── 1 非同期処理の書き方.docx
│ │ │ └── イベントの自動実装.docx
│ │ └── 非同期制御フロー.docx
│ ├── dotnet/
│ │ ├── fig/
│ │ │ ├── fig IL.pptx
│ │ │ ├── fig collection.pptx
│ │ │ ├── fig.ppt
│ │ │ ├── fig.pptx
│ │ │ └── silverlight-fig.pptx
│ │ ├── resources/
│ │ │ ├── RssWriter.cs
│ │ │ ├── main.css
│ │ │ └── main.xsl
│ │ └── sample/
│ │ ├── BindingSlider.xaml
│ │ ├── ButtonClick.xaml
│ │ ├── Gradation.xaml
│ │ ├── LineArt.xaml
│ │ ├── MouseEnter.xaml
│ │ ├── ResourceDictionary.xaml
│ │ ├── StyleForButton.xaml
│ │ ├── StyleForLabel.xaml
│ │ ├── VistaLikeButton.xaml
│ │ ├── paragraph.xaml
│ │ └── viewport3d.xaml
│ ├── dsl/
│ │ ├── fig/
│ │ │ └── fig.pptx
│ │ ├── slide/
│ │ │ └── DslIdea.pptx
│ │ ├── source/
│ │ │ ├── sample.dsl
│ │ │ └── stack.mg
│ │ └── src/
│ │ ├── ClassToXaml.xsl
│ │ ├── LibClass.ps1
│ │ ├── SimpleClass.cs
│ │ ├── SimpleClass.xaml
│ │ ├── SimpleClass.xml
│ │ ├── TestLibClass.ps1
│ │ └── Translate.ps1
│ ├── math/
│ │ ├── card00.emf
│ │ ├── demo/
│ │ │ ├── matrix.xbap
│ │ │ ├── matrix_1_0_0_0/
│ │ │ │ └── matrix.exe.manifest
│ │ │ └── matrix_1_0_0_0.xbap
│ │ ├── elliptic-fig.ppt
│ │ ├── fig/
│ │ │ ├── fig.ppt
│ │ │ ├── lopital00.emf
│ │ │ ├── lopital01.emf
│ │ │ ├── lopital02.emf
│ │ │ ├── lopital03.emf
│ │ │ └── lopital04.emf
│ │ ├── fig.ppt
│ │ ├── group-fig.ppt
│ │ ├── infinity-fig.ppt
│ │ ├── linear0.emf
│ │ ├── linear1.emf
│ │ ├── manifold-fig.ppt
│ │ ├── miscmath-fig.ppt
│ │ ├── prec_succ.emf
│ │ ├── quaternion01.emf
│ │ ├── riemann0.emf
│ │ ├── riemann1.emf
│ │ └── set-fig.ppt
│ ├── misc/
│ │ ├── fig.ppt
│ │ └── lecture/
│ │ ├── linear.ppt
│ │ └── vorec.ppt
│ ├── miscprog/
│ │ └── training/
│ │ ├── bug/
│ │ │ ├── 01equal.c
│ │ │ ├── 02offbyone.c
│ │ │ ├── 03priority.c
│ │ │ ├── 04and.c
│ │ │ ├── 05elseif.c
│ │ │ ├── 06int.c
│ │ │ ├── 07range.c
│ │ │ ├── 08define.c
│ │ │ ├── 09jpspace.c
│ │ │ ├── 10array.c
│ │ │ └── 11other.c
│ │ ├── oop/
│ │ │ └── presentation.ppt
│ │ ├── rad/
│ │ │ ├── 01helloworld.txt
│ │ │ ├── 02viewer.txt
│ │ │ ├── 03lineart.txt
│ │ │ ├── 04wpf.txt
│ │ │ ├── LineArt.xaml
│ │ │ └── viewport3d.xaml
│ │ └── std/
│ │ └── presentation.ppt
│ ├── office/
│ │ └── WordMath/
│ │ ├── WordMath.docx
│ │ ├── WordMath.xps
│ │ └── WordMathAcl.xlsx
│ ├── physics/
│ │ ├── fig.ppt
│ │ ├── surface.cs
│ │ └── todo.txt
│ ├── powershell/
│ │ └── source/
│ │ ├── ZipLib.ps1
│ │ └── ZipVsProjects.ps1
│ ├── sp/
│ │ ├── digital_filter_fig.ppt
│ │ ├── fig.ppt
│ │ ├── image-fig.ppt
│ │ └── src/
│ │ ├── Amplifier.cs
│ │ ├── CircularBuffer1.cs
│ │ ├── CircularBuffer2.cs
│ │ ├── CircularBuffer3.cs
│ │ ├── Delay.cs
│ │ ├── FirFilter.cs
│ │ ├── IFilter.cs
│ │ ├── IirFilter.cs
│ │ ├── SerialIirFilter.cs
│ │ └── Util.cs
│ ├── xml/
│ │ ├── reference/
│ │ │ ├── Fourier
│ │ │ ├── Pi
│ │ │ ├── Re
│ │ │ ├── Res
│ │ │ ├── Sigma
│ │ │ ├── abs
│ │ │ ├── aleph
│ │ │ ├── arg
│ │ │ ├── bar
│ │ │ ├── brace
│ │ │ ├── bracket
│ │ │ ├── branch
│ │ │ ├── conjugate
│ │ │ ├── d
│ │ │ ├── ddt
│ │ │ ├── differential
│ │ │ ├── doubleint
│ │ │ ├── e
│ │ │ ├── font
│ │ │ ├── frac
│ │ │ ├── int
│ │ │ ├── limit
│ │ │ ├── log
│ │ │ ├── matrix
│ │ │ ├── oint
│ │ │ ├── operator
│ │ │ ├── paren
│ │ │ ├── pddt
│ │ │ ├── pddt_second
│ │ │ ├── sin
│ │ │ ├── sqbracket
│ │ │ ├── subsup
│ │ │ ├── symbol
│ │ │ ├── tripleint
│ │ │ ├── va
│ │ │ ├── vec
│ │ │ └── vervec
│ │ ├── style/
│ │ │ ├── common
│ │ │ ├── div.math
│ │ │ ├── span.bar
│ │ │ ├── span.bold
│ │ │ ├── span.integral
│ │ │ ├── span.math
│ │ │ ├── span.matrix
│ │ │ ├── span.normal
│ │ │ ├── span.paren
│ │ │ ├── span.script
│ │ │ ├── span.vector
│ │ │ ├── table.branch
│ │ │ ├── table.frac
│ │ │ ├── table.integral
│ │ │ ├── table.matrix
│ │ │ ├── table.sigma
│ │ │ ├── table.subsup
│ │ │ ├── td.intsub
│ │ │ ├── td.intsup
│ │ │ ├── td.num
│ │ │ ├── td.sigma
│ │ │ └── td.sigmasub
│ │ └── xsl/
│ │ ├── Fourier
│ │ ├── Im
│ │ ├── Laplace
│ │ ├── Pi
│ │ ├── Re
│ │ ├── Res
│ │ ├── Sigma
│ │ ├── Sigma sub
│ │ ├── Z
│ │ ├── abs
│ │ ├── aleph
│ │ ├── arg
│ │ ├── bar
│ │ ├── bold
│ │ ├── brace
│ │ ├── bracket
│ │ ├── branch
│ │ ├── branch case cond
│ │ ├── branch case equ
│ │ ├── cite
│ │ ├── conjugate
│ │ ├── cos
│ │ ├── d
│ │ ├── dS
│ │ ├── dV
│ │ ├── ddt
│ │ ├── differential
│ │ ├── divergence
│ │ ├── dl
│ │ ├── doubleint
│ │ ├── e
│ │ ├── exp
│ │ ├── factrorial
│ │ ├── footer.txt
│ │ ├── frac
│ │ ├── frac denom
│ │ ├── frac num
│ │ ├── func
│ │ ├── funcsub
│ │ ├── function
│ │ ├── gradient
│ │ ├── header.txt
│ │ ├── int
│ │ ├── int sub
│ │ ├── int sup
│ │ ├── inv
│ │ ├── lim
│ │ ├── log
│ │ ├── matrix
│ │ ├── matrix row
│ │ ├── matrix row elem
│ │ ├── nabra
│ │ ├── number
│ │ ├── oint
│ │ ├── operator
│ │ ├── paren
│ │ ├── pddt
│ │ ├── pddt_second
│ │ ├── rotation
│ │ ├── script
│ │ ├── sin
│ │ ├── sqbracket
│ │ ├── sqrt
│ │ ├── subsup
│ │ ├── subsup sub
│ │ ├── sup
│ │ ├── symbol
│ │ ├── tan
│ │ ├── text
│ │ ├── textdiv
│ │ ├── textgrad
│ │ ├── textrot
│ │ ├── tripleint
│ │ ├── vec
│ │ ├── vervec
│ │ └── vervec elem
│ └── xsd/
│ ├── css.xsd
│ ├── division.xsd
│ ├── document.xsd
│ ├── exercise.xsd
│ ├── figure.xsd
│ ├── html.xsd
│ ├── index.xsd
│ ├── keyword.xsd
│ ├── link.xsd
│ ├── math.xsd
│ ├── other.xsd
│ ├── ref.xsd
│ ├── silverlight.xsd
│ ├── source.xsd
│ └── variable.xsd
├── Demo/
│ ├── 2015/
│ │ ├── CompilerPlatform/
│ │ │ ├── CompilerPlatform.sln
│ │ │ ├── CsharpEssentialsDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── CsharpEssentialsDemo.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── FluentArithmeticDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── FluentArithmeticDemo.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ ├── LazyMixinDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── Counter.cs
│ │ │ │ ├── LazyMixinDemo.csproj
│ │ │ │ ├── LazyMixinDemo.ruleset
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── Sample.cs
│ │ │ │ └── packages.config
│ │ │ ├── NameofDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── NameofDemo.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── NotifyPropertyChangedGeneratorDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── NotifyAttribute.cs
│ │ │ │ ├── NotifyPropertyChangedGeneratorDemo.csproj
│ │ │ │ ├── NotifyPropertyChangedGeneratorDemo.ruleset
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ ├── QuickActions/
│ │ │ │ ├── App.config
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── QuickActions.csproj
│ │ │ └── RecordDemo/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── RecordDemo.csproj
│ │ └── MyRoslynAnalyzers/
│ │ ├── Lazy/
│ │ │ ├── App.config
│ │ │ ├── Lazy.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample.cs
│ │ │ ├── X.cs
│ │ │ ├── packages.config
│ │ │ └── コード生成デモ用.cs
│ │ ├── MyRoslynAnalyzers.sln
│ │ ├── NotifyPropertyChanged/
│ │ │ ├── App.config
│ │ │ ├── NotifyAttribute.cs
│ │ │ ├── NotifyPropertyChanged.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample.cs
│ │ │ ├── packages.config
│ │ │ └── コード生成デモ用.cs
│ │ ├── RecordConstructor/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RecordConstructor.csproj
│ │ │ ├── Sample.cs
│ │ │ ├── packages.config
│ │ │ └── コード生成デモ用.cs
│ │ ├── StructPitfall/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── StructPitfall.csproj
│ │ └── ValueChanged/
│ │ ├── App.config
│ │ ├── BindableBase.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Sample.ValueChanged.cs
│ │ ├── Sample.cs
│ │ ├── ValueChanged.csproj
│ │ ├── packages.config
│ │ └── コード生成デモ用.cs
│ ├── 2016/
│ │ ├── Channels/
│ │ │ ├── Channels.sln
│ │ │ ├── samples/
│ │ │ │ └── CardBattle/
│ │ │ │ ├── CardBattle.Client/
│ │ │ │ │ ├── App.config
│ │ │ │ │ ├── App.xaml
│ │ │ │ │ ├── App.xaml.cs
│ │ │ │ │ ├── CardBattle.Client.csproj
│ │ │ │ │ ├── CardBattle.Client.ruleset
│ │ │ │ │ ├── MainWindow.xaml
│ │ │ │ │ ├── MainWindow.xaml.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ │ ├── Resources.Designer.cs
│ │ │ │ │ │ ├── Resources.resx
│ │ │ │ │ │ ├── Settings.Designer.cs
│ │ │ │ │ │ └── Settings.settings
│ │ │ │ │ ├── Views/
│ │ │ │ │ │ ├── CommandSelectControl.xaml
│ │ │ │ │ │ ├── CommandSelectControl.xaml.cs
│ │ │ │ │ │ ├── ContinuePromptControl.xaml
│ │ │ │ │ │ ├── ContinuePromptControl.xaml.cs
│ │ │ │ │ │ ├── Extensions.cs
│ │ │ │ │ │ ├── NumberTextConverter.cs
│ │ │ │ │ │ ├── PlayAreaControl.xaml
│ │ │ │ │ │ ├── PlayAreaControl.xaml.cs
│ │ │ │ │ │ ├── PlayerColorConverter.cs
│ │ │ │ │ │ ├── SuitBrushConverter.cs
│ │ │ │ │ │ └── SuitStringConverter.cs
│ │ │ │ │ └── project.json
│ │ │ │ ├── CardBattle.Models/
│ │ │ │ │ ├── CardBattle.Models.csproj
│ │ │ │ │ ├── GameEngine.cs
│ │ │ │ │ ├── GameRules/
│ │ │ │ │ │ ├── Ability.cs
│ │ │ │ │ │ ├── Boss.cs
│ │ │ │ │ │ ├── Card.cs
│ │ │ │ │ │ ├── Hand.cs
│ │ │ │ │ │ ├── Judge.cs
│ │ │ │ │ │ ├── PlayArea.cs
│ │ │ │ │ │ └── Player.cs
│ │ │ │ │ ├── GameStatus.cs
│ │ │ │ │ ├── Lib/
│ │ │ │ │ │ ├── BindableBase.cs
│ │ │ │ │ │ ├── EnumerableEx.cs
│ │ │ │ │ │ └── RandomExtensions.cs
│ │ │ │ │ ├── Messages/
│ │ │ │ │ │ ├── BossAttack.cs
│ │ │ │ │ │ ├── CommandPrompt.cs
│ │ │ │ │ │ ├── Continue.cs
│ │ │ │ │ │ ├── ContinuePrompt.cs
│ │ │ │ │ │ ├── FinishGame.cs
│ │ │ │ │ │ ├── GameProgress.cs
│ │ │ │ │ │ ├── PlayerAttack.cs
│ │ │ │ │ │ ├── PlayerSnapshop.cs
│ │ │ │ │ │ ├── Responses/
│ │ │ │ │ │ │ ├── CommandResonse.cs
│ │ │ │ │ │ │ ├── Confirmation.cs
│ │ │ │ │ │ │ └── GameResponse.cs
│ │ │ │ │ │ ├── TurnStarted.cs
│ │ │ │ │ │ └── readme.md
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ └── project.json
│ │ │ │ └── CardBattle.sln
│ │ │ ├── src/
│ │ │ │ ├── SystemAsync/
│ │ │ │ │ ├── AsyncAction.cs
│ │ │ │ │ ├── AsyncDisposable.cs
│ │ │ │ │ ├── AsyncEventExtensions.cs
│ │ │ │ │ ├── AsyncExtensions.cs
│ │ │ │ │ ├── AsyncHandler.cs
│ │ │ │ │ ├── AsyncHandlerList.cs
│ │ │ │ │ ├── IAsyncDisposable.cs
│ │ │ │ │ ├── IAsyncEvent.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ ├── SynchronizationContextExtensions.cs
│ │ │ │ │ ├── SystemAsync.csproj
│ │ │ │ │ └── project.json
│ │ │ │ └── TaskLibrary.Channels/
│ │ │ │ ├── AsyncActionList.cs
│ │ │ │ ├── Backport/
│ │ │ │ │ ├── Disposable.cs
│ │ │ │ │ └── EnumerableEx.cs
│ │ │ │ ├── CancellableReceiver.cs
│ │ │ │ ├── Channel.cs
│ │ │ │ ├── DispatcherChannel.cs
│ │ │ │ ├── DistributiveChannel.cs
│ │ │ │ ├── FilterChannel.cs
│ │ │ │ ├── Holder.cs
│ │ │ │ ├── IReceiver.cs
│ │ │ │ ├── IResponsiveMessage.cs
│ │ │ │ ├── ISender.cs
│ │ │ │ ├── InvocationMode.cs
│ │ │ │ ├── LoggingChannel.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── RecordedResponse.cs
│ │ │ │ ├── ReplicableChannel.cs
│ │ │ │ ├── TaskLibrary.Channels.csproj
│ │ │ │ ├── TypeSwitchChannel.cs
│ │ │ │ ├── project.json
│ │ │ │ └── readme.md
│ │ │ └── tests/
│ │ │ └── TaskLibrary.Channels.Test/
│ │ │ ├── Helper.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── TaskLibrary.Channels.Test.csproj
│ │ │ ├── TestChannel.cs
│ │ │ ├── TestData/
│ │ │ │ └── Message.cs
│ │ │ ├── TestDispatcherChannel.cs
│ │ │ ├── TestDistributiveChannel.cs
│ │ │ ├── TestLoggingChannel.cs
│ │ │ ├── TestReplicableChannel.cs
│ │ │ └── project.json
│ │ ├── CompilerPlatform/
│ │ │ └── ConsoleApplication1/
│ │ │ ├── ConsoleApplication1/
│ │ │ │ ├── App.config
│ │ │ │ ├── ConsoleApplication1.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── PropertyChanged.cs
│ │ │ │ ├── Record.cs
│ │ │ │ ├── TypeAlias.cs
│ │ │ │ └── packages.config
│ │ │ └── ConsoleApplication1.sln
│ │ ├── DevsumiOpenJam/
│ │ │ ├── DevsumiOpenJam.sln
│ │ │ ├── global.json
│ │ │ └── src/
│ │ │ └── TwitterBot/
│ │ │ ├── Class1.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── TwitterBot.xproj
│ │ │ └── project.json
│ │ ├── GoodCode/
│ │ │ ├── GoodCode.sln
│ │ │ ├── readme.md
│ │ │ └── src/
│ │ │ ├── AsyncSample/
│ │ │ │ ├── AsyncSample.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── IteratorSample/
│ │ │ │ ├── Enumerable.cs
│ │ │ │ ├── IteratorSample.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── UseSequence.cs
│ │ │ ├── LinqSample/
│ │ │ │ ├── InputOutput.cs
│ │ │ │ ├── LinqSample.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NullabilitySample/
│ │ │ │ ├── NullCoalescing.cs
│ │ │ │ ├── NullConditional.cs
│ │ │ │ ├── NullError.cs
│ │ │ │ ├── NullabilitySample.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── WhatsNullable.cs
│ │ │ └── PropertySample/
│ │ │ ├── Csharp1.cs
│ │ │ ├── Csharp2.cs
│ │ │ ├── Csharp3.cs
│ │ │ ├── Csharp登場以前.cs
│ │ │ ├── ImmutableCsharp5.cs
│ │ │ ├── ImmutableCsharp6.cs
│ │ │ ├── ImmutableCsharp7.cs
│ │ │ ├── Program.cs
│ │ │ └── PropertySample.csproj
│ │ ├── NetStandard/
│ │ │ ├── ClassLibraryAndroid/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryAndroid.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── Resources/
│ │ │ │ │ ├── AboutResources.txt
│ │ │ │ │ ├── Resource.Designer.cs
│ │ │ │ │ └── Values/
│ │ │ │ │ └── Strings.xml
│ │ │ │ └── packages.config
│ │ │ ├── ClassLibraryImports/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryImports.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── ClassLibraryNet35/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryNet35.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ClassLibraryNet45/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryNet45.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ ├── ClassLibraryNetCore/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryNetCore.xproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── ClassLibraryProfileBased/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryProfileBased.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── ClassLibraryStandardBased/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryStandardBased.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── ConsoleApplicationNet46/
│ │ │ │ ├── App.config
│ │ │ │ ├── ConsoleApplicationNet46.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ └── NetStandard.sln
│ │ ├── PrivateField/
│ │ │ ├── ErroneousCodes/
│ │ │ │ ├── App.config
│ │ │ │ ├── DefiniteAssignement.cs
│ │ │ │ ├── ErroneousCodes.csproj
│ │ │ │ ├── ManagedPointer.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── RecursiveLayout.cs
│ │ │ ├── PrivateField.ConsoleApp/
│ │ │ │ ├── App.config
│ │ │ │ ├── PrivateField.ConsoleApp.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── PrivateField.Shared/
│ │ │ │ ├── DefiniteAssignment.cs
│ │ │ │ ├── ManagedPointer.cs
│ │ │ │ ├── PrivateField.Shared.projitems
│ │ │ │ ├── PrivateField.Shared.shproj
│ │ │ │ └── RecursiveLayout.cs
│ │ │ ├── PrivateField.StandardLib/
│ │ │ │ └── PrivateField.StandardLib.csproj
│ │ │ └── PrivateField.sln
│ │ └── Unicode/
│ │ ├── ConsoleApplication1/
│ │ │ ├── AllCharactersInUnicodeData.cs
│ │ │ ├── CharacterLength.cs
│ │ │ ├── ComparisonWithSystemString.cs
│ │ │ ├── CompatibleWithBstr.cs
│ │ │ ├── ConsoleApplication1.csproj
│ │ │ ├── DecodeSample.cs
│ │ │ ├── DualEncoding.cs
│ │ │ ├── GraphemeIdentifiers.cs
│ │ │ ├── NoAllocation.cs
│ │ │ ├── Performance.cs
│ │ │ ├── Program.cs
│ │ │ └── SurrogatePair.cs
│ │ ├── Unicode.sln
│ │ ├── UnitTestUtfString/
│ │ │ ├── CharacterInfo.cs
│ │ │ ├── TestData.cs
│ │ │ ├── TestSlicesUtf8String.cs
│ │ │ ├── TestString.cs
│ │ │ ├── UnitTestUtfString.csproj
│ │ │ └── UnitTestUtfString.nuget.props
│ │ └── UtfString/
│ │ ├── ArrayImplementation/
│ │ │ ├── Utf16/
│ │ │ │ ├── Decoder.cs
│ │ │ │ ├── Index.cs
│ │ │ │ ├── IndexEnumerable.cs
│ │ │ │ ├── String.cs
│ │ │ │ └── StringEnumerator.cs
│ │ │ ├── Utf8/
│ │ │ │ ├── Decoder.cs
│ │ │ │ ├── Index.cs
│ │ │ │ ├── IndexEnumerable.cs
│ │ │ │ ├── String.cs
│ │ │ │ └── StringEnumerator.cs
│ │ │ └── readme.md
│ │ ├── CodePoint.cs
│ │ ├── Constants.cs
│ │ ├── DebugInterfaces.cs
│ │ ├── DualEncoding/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ └── String.cs
│ │ ├── Generic/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ ├── String.cs
│ │ │ └── readme.md
│ │ ├── Slices/
│ │ │ ├── Decoder.cs
│ │ │ ├── ReadOnlySpan.cs
│ │ │ └── Utf8String.cs
│ │ ├── Utf16/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ └── String.cs
│ │ ├── Utf32/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ └── String.cs
│ │ ├── Utf8/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ └── String.cs
│ │ ├── UtfString.csproj
│ │ └── readme.md
│ ├── 2017/
│ │ ├── BitFieldsSample/
│ │ │ ├── BitFieldsSample.csproj
│ │ │ ├── BitFieldsSample.sln
│ │ │ ├── DoubleView.BitFields.cs
│ │ │ ├── DoubleView.cs
│ │ │ ├── Program.cs
│ │ │ ├── Rgb555.BitFields.cs
│ │ │ ├── Rgb555.cs
│ │ │ ├── SingleView.BitFields.cs
│ │ │ └── SingleView.cs
│ │ ├── BitOperations/
│ │ │ ├── BitOperations/
│ │ │ │ ├── BitOperations.csproj
│ │ │ │ ├── Bits.cs
│ │ │ │ ├── Bits_T.cs
│ │ │ │ ├── Bytes16.cs
│ │ │ │ ├── IBits.cs
│ │ │ │ ├── PrimitiveBitOperators.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── SBitOperator.cs
│ │ │ ├── BitOperations.sln
│ │ │ └── GenericBits/
│ │ │ ├── Bits.cs
│ │ │ ├── GenericBits.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Sample1.cs
│ │ │ └── Sample2.cs
│ │ ├── BufferPerformance/
│ │ │ ├── BufferPerformance/
│ │ │ │ ├── BufferPerformance.csproj
│ │ │ │ ├── Buffers/
│ │ │ │ │ ├── ArraySpan.cs
│ │ │ │ │ ├── BufferA.cs
│ │ │ │ │ ├── BufferB.cs
│ │ │ │ │ ├── BufferC.cs
│ │ │ │ │ ├── BufferD.cs
│ │ │ │ │ ├── BufferE.cs
│ │ │ │ │ ├── IBuffer.cs
│ │ │ │ │ ├── IByteSpan.cs
│ │ │ │ │ └── PointerSpan.cs
│ │ │ │ └── Program.cs
│ │ │ └── BufferPerformance.sln
│ │ ├── Csharp7/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── 01 Tuples/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ ├── 03.cs
│ │ │ │ │ ├── 04 Extensions-1.cs
│ │ │ │ │ ├── 04 Extensions-2.cs
│ │ │ │ │ ├── 04 Extensions-3.cs
│ │ │ │ │ ├── 05 Performance.cs
│ │ │ │ │ ├── 06 Implementation.cs
│ │ │ │ │ └── 07 KnownIssue.cs
│ │ │ │ ├── 01-1 ExpressionBodied/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ └── 02.cs
│ │ │ │ ├── 02 Patterns/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ ├── 03.cs
│ │ │ │ │ ├── 04.cs
│ │ │ │ │ ├── 05.cs
│ │ │ │ │ ├── 06.cs
│ │ │ │ │ ├── 07.cs
│ │ │ │ │ ├── 08-0 Node.cs
│ │ │ │ │ ├── 08-1 virtual.cs
│ │ │ │ │ └── 08-2 pattern.cs
│ │ │ │ ├── 02-1 ThrowExpression/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ └── 02.cs
│ │ │ │ ├── 03 LocalFunctions/
│ │ │ │ │ ├── 00.csx
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ ├── 03.cs
│ │ │ │ │ └── 04 Performance.cs
│ │ │ │ ├── 04 Ref/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ ├── 03.cs
│ │ │ │ │ ├── 04 Unsafe.cs
│ │ │ │ │ └── 05 SystemMemory.cs
│ │ │ │ ├── 05 GeneralizedAsync/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ └── Performance.cs
│ │ │ │ ├── 06 Digits/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ └── 02.cs
│ │ │ │ ├── 07 Future/
│ │ │ │ │ ├── 01 cs71.cs
│ │ │ │ │ ├── 02 cs72.cs
│ │ │ │ │ └── 02 cs7X.cs
│ │ │ │ ├── App.config
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Interop.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Csharp7.sln
│ │ ├── Csharp7_2-0902/
│ │ │ ├── ConsoleApp2_6_0/
│ │ │ │ ├── ConsoleApp2_6_0.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ConsoleAppRefReadonly/
│ │ │ │ ├── ConsoleAppRefReadonly.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── StackHashSet.cs
│ │ │ └── NewLangFeatures.sln
│ │ ├── Csharp7_2-1012/
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── ClassLibrary1.csproj
│ │ │ │ ├── PrivateProtected.cs
│ │ │ │ └── PrivateProtectedOrder.cs
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConditionalRefOperator.cs
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── DigitSeparator.cs
│ │ │ │ ├── NonTrailingNamedArguments.cs
│ │ │ │ ├── PrivateProtected.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── ReadOnlyStruct.cs
│ │ │ │ ├── RefExtensionRefOperator.cs
│ │ │ │ ├── RefReadonly.cs
│ │ │ │ ├── RefStruct.cs
│ │ │ │ ├── SafeStackalloc.cs
│ │ │ │ ├── SpanSafety.cs
│ │ │ │ └── SpanSample.cs
│ │ │ └── Csharp7_2-1012.sln
│ │ ├── EmbeddedSource/
│ │ │ ├── .gitignore
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Class2.cs
│ │ │ │ ├── ClassLibrary1.csproj
│ │ │ │ └── Point.cs
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── EmbeddedSource.sln
│ │ │ ├── Lib/
│ │ │ │ ├── a.cs
│ │ │ │ ├── b.cs
│ │ │ │ ├── build.ps1
│ │ │ │ ├── c.cs
│ │ │ │ └── d.cs
│ │ │ ├── NuGet.Config
│ │ │ └── readme.md
│ │ ├── InOperatorDifferentAssemly/
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── Class1.cs
│ │ │ │ └── ClassLibrary1.csproj
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ └── InOperatorDifferentAssemly.sln
│ │ ├── InlineExpansion/
│ │ │ ├── Generics/
│ │ │ │ ├── 03 Generics.csproj
│ │ │ │ ├── BenchmarkCode.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Target.cs
│ │ │ ├── InlineExpansion.sln
│ │ │ ├── InlinedOrNot/
│ │ │ │ ├── 01 InlinedOrNot.csproj
│ │ │ │ ├── BenchmarkCode.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Target.cs
│ │ │ ├── ValueTypeGenerics/
│ │ │ │ ├── 04 ValueTypeGenerics.csproj
│ │ │ │ ├── BenchmarkCode.cs
│ │ │ │ ├── IGroup.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Target.cs
│ │ │ └── VirtualCall/
│ │ │ ├── 02 VirtualCall.csproj
│ │ │ ├── BenchmarkCode.cs
│ │ │ ├── Program.cs
│ │ │ └── Target.cs
│ │ ├── IntTemplateParameter/
│ │ │ ├── IntTemplateParameter/
│ │ │ │ ├── ConstantInt.cs
│ │ │ │ ├── ConstantInt.tt
│ │ │ │ ├── GaloisField.cs
│ │ │ │ ├── GaloisField_N.cs
│ │ │ │ ├── IConstant.cs
│ │ │ │ ├── IntTemplateParameter.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── readme.md
│ │ │ └── IntTemplateParameter.sln
│ │ ├── ManualResourceManagement/
│ │ │ ├── DisposePattern/
│ │ │ │ ├── 02 DisposePattern.csproj
│ │ │ │ ├── Counter.cs
│ │ │ │ ├── IReferenceCoutable.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Tests/
│ │ │ │ ├── 01 ManualDispose.cs
│ │ │ │ ├── 02 Finalizer.cs
│ │ │ │ ├── 03 StructCantHaveFinalizer.cs
│ │ │ │ ├── 04 ReferenceCount.cs
│ │ │ │ ├── Constants.cs
│ │ │ │ ├── SampleDisopsable.cs
│ │ │ │ ├── SampleDisopsableStruct.cs
│ │ │ │ └── SampleReferenceCount.cs
│ │ │ ├── HeapAllocation/
│ │ │ │ ├── 01 HeapAllocation.csproj
│ │ │ │ ├── Allocation.cs
│ │ │ │ ├── AllocationBenchmark.cs
│ │ │ │ ├── Allocators/
│ │ │ │ │ ├── CasPool .cs
│ │ │ │ │ ├── IAllocator.cs
│ │ │ │ │ ├── Interop.cs
│ │ │ │ │ ├── LocalPool.cs
│ │ │ │ │ ├── LockPool.cs
│ │ │ │ │ └── MallocAllocator.cs
│ │ │ │ ├── Data/
│ │ │ │ │ ├── ClassPoint.cs
│ │ │ │ │ ├── PointerPoint.cs
│ │ │ │ │ └── StructPoint.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Test.cs
│ │ │ └── ManualResourceManagement.sln
│ │ ├── ModalDialogSample/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── IResultDialog.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── ModalDialogSample.csproj
│ │ │ ├── ModalDialogSample.sln
│ │ │ ├── Window1.xaml
│ │ │ └── Window1.xaml.cs
│ │ ├── NewCsproj/
│ │ │ ├── NewCsproj/
│ │ │ │ ├── ClassLibraryLink/
│ │ │ │ │ └── ClassLibraryLink.csproj
│ │ │ │ ├── ClassLibraryMultiTarget/
│ │ │ │ │ ├── Class1.cs
│ │ │ │ │ └── ClassLibraryMultiTarget.csproj
│ │ │ │ ├── ClassLibraryNet35/
│ │ │ │ │ ├── Class1.cs
│ │ │ │ │ └── ClassLibraryNet35.csproj
│ │ │ │ ├── ClassLibraryStd14/
│ │ │ │ │ ├── Class1.cs
│ │ │ │ │ └── ClassLibraryStd14.csproj
│ │ │ │ ├── ConsoleAppCore11/
│ │ │ │ │ ├── ConsoleAppCore11.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ConsoleAppNet35/
│ │ │ │ │ ├── ConsoleAppNet35.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── WpfAppNet47/
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── MainWindow.xaml
│ │ │ │ ├── MainWindow.xaml.cs
│ │ │ │ └── WpfAppNet47.csproj
│ │ │ ├── NewCsproj.sln
│ │ │ └── OldCsproj/
│ │ │ ├── ClassLibraryNet35/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryNet35.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ConsoleAppNet35/
│ │ │ │ ├── ConsoleAppNet35.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── WpfAppNet47/
│ │ │ ├── App.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ └── WpfAppNet47.csproj
│ │ ├── PackageReference/
│ │ │ ├── ClassLibrary/
│ │ │ │ ├── Class1.cs
│ │ │ │ └── ClassLibrary.csproj
│ │ │ ├── ClassLibrary.A/
│ │ │ │ └── ClassLibrary.A.csproj
│ │ │ ├── ClassLibrary.B/
│ │ │ │ └── ClassLibrary.B.csproj
│ │ │ ├── ClassLibraryDependsOnA/
│ │ │ │ ├── Class1.cs
│ │ │ │ └── ClassLibraryDependsOnA.csproj
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NuGet.config
│ │ │ ├── PackageReference.sln
│ │ │ ├── build.ps1
│ │ │ ├── fig/
│ │ │ │ └── fig.pptx
│ │ │ └── readme.md
│ │ ├── PropertyAccessor/
│ │ │ ├── PropertyAccessor/
│ │ │ │ ├── AccessorBenchmark.cs
│ │ │ │ ├── Accessors/
│ │ │ │ │ ├── CustomHashTableAccessor.cs
│ │ │ │ │ ├── DictionaryAccessor.cs
│ │ │ │ │ ├── EachCodeGenerator.cs
│ │ │ │ │ ├── ImmutableDictionaryAccessor.cs
│ │ │ │ │ ├── SortedDictionaryAccessor.cs
│ │ │ │ │ ├── SortedListAccessor.cs
│ │ │ │ │ ├── SwitchAccessor.cs
│ │ │ │ │ └── SwitchCodeGenerator.cs
│ │ │ │ ├── Extensions.cs
│ │ │ │ ├── IAccessor.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── PropertyAccessor.csproj
│ │ │ │ └── SampleData/
│ │ │ │ ├── Item.cs
│ │ │ │ └── Point.cs
│ │ │ └── PropertyAccessor.sln
│ │ ├── Roslyn2_6_0PossiblyBug/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ └── ConsoleApp1.sln
│ │ ├── SpanAsSafePointer/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Point.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RefExtensions/
│ │ │ │ │ └── Before.cs
│ │ │ │ ├── Safe/
│ │ │ │ │ └── Stream.cs
│ │ │ │ ├── SaveLoadBenchmark.cs
│ │ │ │ ├── SaveLoadTest.cs
│ │ │ │ ├── SpanBase/
│ │ │ │ │ └── Stream.cs
│ │ │ │ └── Unsafe/
│ │ │ │ └── Stream.cs
│ │ │ └── SpanAsSafePointer.sln
│ │ ├── TupleMutableStruct/
│ │ │ ├── TupleMutableStruct/
│ │ │ │ ├── Data/
│ │ │ │ │ ├── Circular.cs
│ │ │ │ │ ├── Point.cs
│ │ │ │ │ └── VirtualPoint.cs
│ │ │ │ ├── MemoryLayout/
│ │ │ │ │ ├── Benchmark.cs
│ │ │ │ │ ├── PointerAdd.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ ├── RandomExtensions.cs
│ │ │ │ │ ├── RefReturns.cs
│ │ │ │ │ ├── SafeAdd.cs
│ │ │ │ │ ├── Test.cs
│ │ │ │ │ └── Vector.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StructProperties/
│ │ │ │ │ ├── GetSet.cs
│ │ │ │ │ └── RefReturns.cs
│ │ │ │ ├── TupleMutableStruct.csproj
│ │ │ │ ├── Usage/
│ │ │ │ │ ├── BindableBase.cs
│ │ │ │ │ ├── Field.cs
│ │ │ │ │ ├── LooselyTyped.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── Tuple.cs
│ │ │ │ ├── ValueObject/
│ │ │ │ │ ├── MutableClass.cs
│ │ │ │ │ └── MutableStruct.cs
│ │ │ │ └── ValueTuple.cs
│ │ │ └── TupleMutableStruct.sln
│ │ ├── TypeRepositoryBenchmarks/
│ │ │ ├── ByteToLongBenchmark/
│ │ │ │ ├── ByteToLongBenchmark.cs
│ │ │ │ ├── ByteToLongBenchmark.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── DictionaryBenchmark/
│ │ │ │ ├── CharNode.cs
│ │ │ │ ├── DictionaryBenchmark.cs
│ │ │ │ ├── DictionaryBenchmark.csproj
│ │ │ │ ├── Extensions.cs
│ │ │ │ ├── FixedDictionary.cs
│ │ │ │ ├── FixedDictionary2.cs
│ │ │ │ ├── LongNode.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── TestData.cs
│ │ │ ├── Grisu3DoubleConversion/
│ │ │ │ ├── DiyFp.cs
│ │ │ │ ├── DoubleConversion.cs
│ │ │ │ ├── DoubleConversionBenchmark.cs
│ │ │ │ ├── DoubleConversionTest.cs
│ │ │ │ ├── DoubleView.cs
│ │ │ │ ├── FastDtoaMode.cs
│ │ │ │ ├── Grisu3DoubleConversion.csproj
│ │ │ │ ├── NumberStringBuffer.cs
│ │ │ │ ├── PowersOfTenCache.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── SingleView.cs
│ │ │ │ └── TestData.cs
│ │ │ ├── OptionalArrayBenchmark/
│ │ │ │ ├── BitArray64.cs
│ │ │ │ ├── Optional.cs
│ │ │ │ ├── OptionalArray.cs
│ │ │ │ ├── OptionalArrayBenchmark.cs
│ │ │ │ ├── OptionalArrayBenchmark.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ParseIntBnechmark/
│ │ │ │ ├── ParseIntBenchmark.cs
│ │ │ │ ├── ParseIntBnechmark.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── SequenceBenchmark/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── SequenceBenchmark.cs
│ │ │ │ └── SequenceBenchmark.csproj
│ │ │ ├── StackallocDistinctBenchmark/
│ │ │ │ ├── ArrayHashSet.cs
│ │ │ │ ├── DistinctBenchmark.cs
│ │ │ │ ├── IntComp.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StackHashSet.cs
│ │ │ │ └── StackallocDistinctBenchmark.csproj
│ │ │ ├── TypeRepositoryBenchmarks.sln
│ │ │ ├── Utf8SearchBenchmark/
│ │ │ │ ├── BoyerMoore.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StringComparisonBenchmark.cs
│ │ │ │ ├── Utf8SearchBenchmark.cs
│ │ │ │ └── Utf8SearchBenchmark.csproj
│ │ │ └── UtfCompareBenchmark/
│ │ │ ├── Program.cs
│ │ │ ├── StringBenchmark.cs
│ │ │ ├── StringExtensions.cs
│ │ │ ├── StringToUtf8Byte.cs
│ │ │ └── UtfCompareBenchmark.csproj
│ │ ├── UnionTypes/
│ │ │ ├── UnionTypes/
│ │ │ │ ├── Generator.cs
│ │ │ │ ├── Generator.partial.cs
│ │ │ │ ├── Generator.tt
│ │ │ │ ├── IUnion.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Runner.cs
│ │ │ │ ├── Runner.partial.cs
│ │ │ │ ├── Runner.tt
│ │ │ │ ├── Union1.cs
│ │ │ │ ├── Union2.cs
│ │ │ │ ├── Union3.cs
│ │ │ │ ├── Union4.cs
│ │ │ │ ├── Union5.cs
│ │ │ │ ├── UnionTypes.csproj
│ │ │ │ └── Vector.cs
│ │ │ └── UnionTypes.sln
│ │ ├── UnsafeRefReturns/
│ │ │ ├── UnsafeRefReturns/
│ │ │ │ ├── AccessViolation.cs
│ │ │ │ ├── Color.cs
│ │ │ │ ├── Point3D.Managed.cs
│ │ │ │ ├── Point3D.Pointer.cs
│ │ │ │ ├── UnsafeRefReturns.csproj
│ │ │ │ └── ValueNull.cs
│ │ │ └── UnsafeRefReturns.sln
│ │ └── Ạṇạḷỵẓẹṛ/
│ │ ├── Ạṇạḷỵẓẹṛ/
│ │ │ ├── Ạṇạḷỵẓẹṛ/
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── tools/
│ │ │ │ │ ├── install.ps1
│ │ │ │ │ └── uninstall.ps1
│ │ │ │ ├── Ạṇạḷỵẓẹṛ.csproj
│ │ │ │ ├── ẠṇạḷỵẓẹṛAnalyzer.cs
│ │ │ │ └── ẠṇạḷỵẓẹṛCodeFixProvider.cs
│ │ │ ├── Ạṇạḷỵẓẹṛ.Test/
│ │ │ │ ├── DataSource/
│ │ │ │ │ ├── result-schema.json
│ │ │ │ │ └── ẠṇạḷỵẓẹṛUnitTests/
│ │ │ │ │ ├── EmptySource/
│ │ │ │ │ │ └── Source/
│ │ │ │ │ │ └── Class1.csx
│ │ │ │ │ └── LowercaseLetters/
│ │ │ │ │ ├── Diagnostic/
│ │ │ │ │ │ └── Results.json
│ │ │ │ │ ├── Expected/
│ │ │ │ │ │ └── Class1.csx
│ │ │ │ │ └── Source/
│ │ │ │ │ └── Class1.csx
│ │ │ │ ├── Helpers/
│ │ │ │ │ ├── CodeFixVerifier.Helper.cs
│ │ │ │ │ ├── DiagnosticResult.cs
│ │ │ │ │ └── DiagnosticVerifier.Helper.cs
│ │ │ │ ├── Verifiers/
│ │ │ │ │ ├── CodeFixVerifier.cs
│ │ │ │ │ ├── ConventionCodeFixVerifier.cs
│ │ │ │ │ └── DiagnosticVerifier.cs
│ │ │ │ ├── Ạṇạḷỵẓẹṛ.Test.csproj
│ │ │ │ └── ẠṇạḷỵẓẹṛUnitTests.cs
│ │ │ └── Ạṇạḷỵẓẹṛ.Vsix/
│ │ │ ├── source.extension.vsixmanifest
│ │ │ └── Ạṇạḷỵẓẹṛ.Vsix.csproj
│ │ └── Ạṇạḷỵẓẹṛ.sln
│ ├── 2018/
│ │ ├── AsyncInternal/
│ │ │ ├── AsyncInternal.csproj
│ │ │ ├── AsyncInternal.sln
│ │ │ ├── AwaitCodeGeneration.cs
│ │ │ ├── AwaitOperator.cs
│ │ │ ├── CallbackAsync.cs
│ │ │ ├── Data.cs
│ │ │ ├── Program.cs
│ │ │ └── Synchronous.cs
│ │ ├── CachedAsync/
│ │ │ ├── CachedAsync/
│ │ │ │ ├── AsyncOperation.cs
│ │ │ │ ├── CachedAsync.csproj
│ │ │ │ ├── FirstToTaskObserver.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── TimerLoop.cs
│ │ │ ├── CachedAsync.sln
│ │ │ └── readme.md
│ │ ├── Cs8InVs2019P1/
│ │ │ ├── AsyncStreams.cs
│ │ │ ├── Cs8InVs2019P1.csproj
│ │ │ ├── Cs8InVs2019P1.sln
│ │ │ ├── InterpolatedVerbatimStrings.cs
│ │ │ ├── NRT.cs
│ │ │ ├── NullCoalescingAssignment.cs
│ │ │ ├── Range2D.cs
│ │ │ ├── RangeAndIndex.cs
│ │ │ └── ThrowHelper.cs
│ │ ├── Csharp7_3-0309/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── BackingFieldAttribute/
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Constraints/
│ │ │ │ │ ├── Point.cs
│ │ │ │ │ ├── SystemDelegate.cs
│ │ │ │ │ ├── SystemEnum.cs
│ │ │ │ │ └── Unmanaged.cs
│ │ │ │ ├── ExpressionVariables/
│ │ │ │ │ ├── BaseInitializer.cs
│ │ │ │ │ ├── FieldInitializer.cs
│ │ │ │ │ ├── QueryExpressions.cs
│ │ │ │ │ ├── Table.cs
│ │ │ │ │ └── ThisInitializer.cs
│ │ │ │ ├── Fixed/
│ │ │ │ │ ├── CustomFixed.cs
│ │ │ │ │ └── MovableFixedBuffer.cs
│ │ │ │ ├── OverloadResolution/
│ │ │ │ │ ├── Constraints.cs
│ │ │ │ │ ├── DummyParameter.cs
│ │ │ │ │ ├── Extensions.cs
│ │ │ │ │ ├── FirstOrNull.cs
│ │ │ │ │ ├── MethodReturn.cs
│ │ │ │ │ ├── Refness.cs
│ │ │ │ │ └── Static.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Ref/
│ │ │ │ │ ├── Node.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RefArrayEnumerable.cs
│ │ │ │ ├── Stackalloc/
│ │ │ │ │ └── Program.cs
│ │ │ │ └── TupleEquality/
│ │ │ │ └── Program.cs
│ │ │ └── Csharp7_3-0309.sln
│ │ ├── DotNetGlobalTools/
│ │ │ ├── .gitignore
│ │ │ ├── DotNetGlobalTools.sln
│ │ │ ├── csunzip/
│ │ │ │ ├── Program.cs
│ │ │ │ └── csunzip.csproj
│ │ │ ├── cszip/
│ │ │ │ ├── Program.cs
│ │ │ │ └── cszip.csproj
│ │ │ ├── install.bat
│ │ │ ├── nuget.config
│ │ │ ├── pack.bat
│ │ │ ├── readme.md
│ │ │ ├── sample.bat
│ │ │ └── xstatic/
│ │ │ ├── Program.cs
│ │ │ └── xstatic.csproj
│ │ ├── EmojiIdentifier/
│ │ │ ├── identifier.md
│ │ │ ├── readme.md
│ │ │ ├── swift.en.md
│ │ │ └── swift.md
│ │ ├── GuardedDevirt/
│ │ │ ├── GuardedDevirt/
│ │ │ │ ├── A.cs
│ │ │ │ ├── B.cs
│ │ │ │ ├── CallBenchmark.cs
│ │ │ │ ├── GuardedDevirt.csproj
│ │ │ │ ├── I.cs
│ │ │ │ └── Program.cs
│ │ │ └── GuardedDevirt.sln
│ │ ├── IOPerformance/
│ │ │ ├── App/
│ │ │ │ ├── App.csproj
│ │ │ │ ├── DataBenchmark.cs
│ │ │ │ ├── LineReader.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Splitter.cs
│ │ │ ├── Compare20And21/
│ │ │ │ ├── Compare20And21.csproj
│ │ │ │ ├── DataBenchmark.cs
│ │ │ │ └── Program.cs
│ │ │ ├── IOPerformance.sln
│ │ │ └── data/
│ │ │ ├── .gitignore
│ │ │ └── data.py
│ │ ├── MetricSpace/
│ │ │ ├── MetricSpace/
│ │ │ │ ├── Devirtualized1/
│ │ │ │ │ └── Euclidean.cs
│ │ │ │ ├── Devirtualized2/
│ │ │ │ │ ├── Array1.cs
│ │ │ │ │ └── Euclidean.cs
│ │ │ │ ├── Devirtualized3/
│ │ │ │ │ ├── Arithmetic.cs
│ │ │ │ │ ├── Chebyshev.cs
│ │ │ │ │ ├── Euclidean.cs
│ │ │ │ │ ├── FixedArray.cs
│ │ │ │ │ └── Manhattan.cs
│ │ │ │ ├── Instantiation/
│ │ │ │ │ └── Instantiation.cs
│ │ │ │ ├── MetricSpace.csproj
│ │ │ │ ├── NonGeneric/
│ │ │ │ │ └── Euclidean.cs
│ │ │ │ └── Virtualized/
│ │ │ │ └── Euclidean.cs
│ │ │ ├── MetricSpace.sln
│ │ │ └── readme.md
│ │ ├── NrtPreview09112018/
│ │ │ ├── Closure.cs
│ │ │ ├── CurriedDelegate.cs
│ │ │ ├── EarlyReturn.cs
│ │ │ ├── ExplicitInterfaceMethod.cs
│ │ │ ├── FieldInitializer.cs
│ │ │ ├── NestedDerivedClass.cs
│ │ │ ├── NonNullWhenNonNull.cs
│ │ │ ├── NrtPreview09112018.csproj
│ │ │ ├── NrtPreview09112018.sln
│ │ │ ├── Switch.cs
│ │ │ └── readme.md
│ │ ├── PerformanceTips/
│ │ │ ├── ArrayDowncast/
│ │ │ │ ├── ArrayDowncast.csproj
│ │ │ │ ├── ArrayDowncastBenchmark.cs
│ │ │ │ └── Program.cs
│ │ │ ├── ArrayEnumeration/
│ │ │ │ ├── ArrayEnumeration.csproj
│ │ │ │ ├── ArrayWrapper.Array.cs
│ │ │ │ ├── ArrayWrapper.IEnumerable.cs
│ │ │ │ ├── ArrayWrapper.ImmutableArray.cs
│ │ │ │ ├── ArrayWrapper.ReadOnlyCollection.cs
│ │ │ │ ├── ArrayWrapper.Span.cs
│ │ │ │ ├── ArrayWrapper.StructEnumerator.cs
│ │ │ │ └── Program.cs
│ │ │ ├── DefaultIsNull/
│ │ │ │ ├── DefaultIsNull.csproj
│ │ │ │ ├── DefaultIsNullBenchmark.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Directory.Build.props
│ │ │ ├── DiscriminatedUnion/
│ │ │ │ ├── DiscriminatedUnion.csproj
│ │ │ │ ├── Discriminator.cs
│ │ │ │ ├── DiscriminatorField.cs
│ │ │ │ ├── DiscriminatorFieldUnsafe.cs
│ │ │ │ ├── IsMatching.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── UnionBenchmark.cs
│ │ │ ├── EnumHasFlag/
│ │ │ │ ├── EnumHasFlag.csproj
│ │ │ │ ├── EnumHasFlagBenchmark.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Enumeration/
│ │ │ │ ├── Enumeration.csproj
│ │ │ │ ├── EnumerationBenchmark.cs
│ │ │ │ ├── EnumerationTest.cs
│ │ │ │ ├── IFastEnumerator.cs
│ │ │ │ ├── ListLike.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Sum.cs
│ │ │ ├── EqualityComparerDefault/
│ │ │ │ ├── EqualityComparerDefault.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── FastEnumeration/
│ │ │ │ ├── Adapter.cs
│ │ │ │ ├── FastEnumeration.csproj
│ │ │ │ ├── FastEnumerator.cs
│ │ │ │ ├── ForeachBenchmark.cs
│ │ │ │ ├── IFastEnumerator.cs
│ │ │ │ ├── NormalEnumerator.cs
│ │ │ │ └── Program.cs
│ │ │ ├── MultipleRuntimesConfig.cs
│ │ │ ├── PerformanceTips.sln
│ │ │ └── VirtualCall/
│ │ │ ├── Program.cs
│ │ │ ├── VirtualCall.csproj
│ │ │ └── VirtualCallBanchmark.cs
│ │ ├── PipelineSockets/
│ │ │ ├── PipelineSockets/
│ │ │ │ ├── CancellationTokenExtensions.cs
│ │ │ │ ├── Models/
│ │ │ │ │ ├── A.cs
│ │ │ │ │ ├── B.cs
│ │ │ │ │ ├── C.cs
│ │ │ │ │ ├── IntVector.cs
│ │ │ │ │ ├── StringPipeExtentions.cs
│ │ │ │ │ ├── UnmanagedPipeExtentions.cs
│ │ │ │ │ └── Vector.cs
│ │ │ │ ├── MyClient.cs
│ │ │ │ ├── MyConnection.cs
│ │ │ │ ├── MyServer.cs
│ │ │ │ ├── PipelineSockets.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Ref/
│ │ │ │ ├── BufferReader.cs
│ │ │ │ └── ThrowHelper.cs
│ │ │ └── PipelineSockets.sln
│ │ ├── SpanPerformance/
│ │ │ ├── MatrixBenchmark/
│ │ │ │ ├── ByRef.cs
│ │ │ │ ├── ByValue.cs
│ │ │ │ ├── MatrixBenchmark.cs
│ │ │ │ ├── MatrixBenchmark.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Simd.cs
│ │ │ ├── SpanPerformance.sln
│ │ │ ├── StringManipulation/
│ │ │ │ ├── Classic/
│ │ │ │ │ └── StringExtensions.cs
│ │ │ │ ├── FullyTuned/
│ │ │ │ │ └── StringExtensions.cs
│ │ │ │ ├── SafeStackalloc/
│ │ │ │ │ ├── IStringFormatter.cs
│ │ │ │ │ ├── IStringSplitter.cs
│ │ │ │ │ ├── Splitter.cs
│ │ │ │ │ ├── StringExtensions.cs
│ │ │ │ │ ├── ToCamel.cs
│ │ │ │ │ ├── ToSnake.cs
│ │ │ │ │ └── UpperCaseSplitter.cs
│ │ │ │ ├── StringManipulation.csproj
│ │ │ │ └── Unsafe/
│ │ │ │ ├── IStringFormatter.cs
│ │ │ │ ├── IStringSplitter.cs
│ │ │ │ ├── Splitter.cs
│ │ │ │ ├── StringExtensions.cs
│ │ │ │ ├── StringSpan.cs
│ │ │ │ ├── ToCamel.cs
│ │ │ │ ├── ToSnake.cs
│ │ │ │ └── UpperCaseSplitter.cs
│ │ │ ├── StringManipulation.Benchmark/
│ │ │ │ ├── Benchmark.cs
│ │ │ │ ├── IStringManipulater.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── StringManipulation.Benchmark.csproj
│ │ │ ├── StringManipulation.Test/
│ │ │ │ ├── IStringManipulater.cs
│ │ │ │ ├── StringManipulation.Test.csproj
│ │ │ │ └── Test.cs
│ │ │ └── SubstringBenchmark/
│ │ │ ├── AbstractString.cs
│ │ │ ├── Program.cs
│ │ │ ├── SubstringBenchmark.cs
│ │ │ └── SubstringBenchmark.csproj
│ │ ├── TableMath/
│ │ │ ├── TableMath/
│ │ │ │ ├── SinCosTable.cs
│ │ │ │ ├── SinCosTableF.cs
│ │ │ │ └── TableMath.csproj
│ │ │ ├── TableMath.sln
│ │ │ ├── TableMathBenchmark/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── SinCosTableUnsafeF.cs
│ │ │ │ ├── TableBenchmark.cs
│ │ │ │ └── TableMathBenchmark.csproj
│ │ │ ├── TableMathTest/
│ │ │ │ ├── SinCosTableFTest.cs
│ │ │ │ ├── SinCosTableTest.cs
│ │ │ │ └── TableMathTest.csproj
│ │ │ └── readme.md
│ │ ├── TemplateSelector/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── MySelector.cs
│ │ │ ├── TemplateSelector.sln
│ │ │ ├── Templates/
│ │ │ │ ├── Integer.xaml
│ │ │ │ ├── String.xaml
│ │ │ │ └── WpfApp2/
│ │ │ │ └── Sample/
│ │ │ │ ├── Alpha.xaml
│ │ │ │ ├── Beta.xaml
│ │ │ │ └── Gamma.xaml
│ │ │ └── WpfApp2.csproj
│ │ └── WpfNewCsproj1/
│ │ ├── WpfNewCsproj1/
│ │ │ ├── App.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties/
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ └── WpfNewCsproj1.csproj
│ │ ├── WpfNewCsproj1.sln
│ │ └── readme.md
│ ├── 2019/
│ │ ├── BoolExhaustiveness/
│ │ │ ├── BoolExhaustiveness.sln
│ │ │ ├── BoolMarshaling/
│ │ │ │ ├── BoolMarshaling.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── rust/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── src/
│ │ │ │ │ └── lib.rs
│ │ │ │ └── target/
│ │ │ │ └── .rustc_info.json
│ │ │ ├── BoolOtherThan01/
│ │ │ │ ├── BoolOtherThan01.csproj
│ │ │ │ ├── Pointer.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StructUnion.cs
│ │ │ │ ├── TypeSwitch.cs
│ │ │ │ └── UnsafeClass.cs
│ │ │ └── Csharp8/
│ │ │ ├── Csharp8.csproj
│ │ │ └── Program.cs
│ │ ├── Csharp80/
│ │ │ ├── Csharp80.sln
│ │ │ ├── Preview1/
│ │ │ │ ├── AsyncStreams.cs
│ │ │ │ ├── InterpolatedVerbatimStrings.cs
│ │ │ │ ├── NRT.cs
│ │ │ │ ├── NullCoalescingAssignment.cs
│ │ │ │ ├── Preview1.csproj
│ │ │ │ ├── Range2D.cs
│ │ │ │ ├── RangeAndIndex.cs
│ │ │ │ └── ThrowHelper.cs
│ │ │ ├── Preview2/
│ │ │ │ ├── AsyncStreams.cs
│ │ │ │ ├── AsyncStreamsOptionalParamater.cs
│ │ │ │ ├── BoolExhaustiveness.cs
│ │ │ │ ├── EnhancedUsing.cs
│ │ │ │ ├── PatternBasedAsyncUsing.cs
│ │ │ │ ├── PatternBasedUsing.cs
│ │ │ │ ├── PatternBasedUsingForeach.cs
│ │ │ │ ├── Preview2.csproj
│ │ │ │ ├── RecursivePattern.cs
│ │ │ │ ├── Shadowing.cs
│ │ │ │ └── StaticLocalFunction.cs
│ │ │ ├── Preview3/
│ │ │ │ ├── PatternBasedForeach.cs
│ │ │ │ ├── PatternTrailingComma.cs
│ │ │ │ ├── Preview3.csproj
│ │ │ │ └── SwitchTrailingComma.cs
│ │ │ ├── VS16_1_p1/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── UnmanagedGenericStruct.cs
│ │ │ │ └── VS16_1_p1.csproj
│ │ │ └── VS16_1_p2/
│ │ │ ├── InterfaceDefault.cs
│ │ │ ├── NestedStackalloc.cs
│ │ │ ├── ReadOnlyMember.cs
│ │ │ ├── ReadOnlyRef.cs
│ │ │ └── VS16_1_p2.csproj
│ │ ├── DataAccessSample/
│ │ │ ├── DataAccessSample/
│ │ │ │ ├── Connection.cs
│ │ │ │ ├── DataAccess/
│ │ │ │ │ ├── DapperRepository.cs
│ │ │ │ │ ├── EFCompiledQueryRepository.cs
│ │ │ │ │ ├── EFCoreRepository.cs
│ │ │ │ │ ├── EFFromSqlRepository.cs
│ │ │ │ │ └── IDataSource.cs
│ │ │ │ ├── DataAccessBenchmark.cs
│ │ │ │ ├── DataAccessSample.csproj
│ │ │ │ ├── IQueryableExtensions.cs
│ │ │ │ ├── Models/
│ │ │ │ │ ├── Categories.cs
│ │ │ │ │ ├── CustomerCustomerDemo.cs
│ │ │ │ │ ├── CustomerDemographics.cs
│ │ │ │ │ ├── Customers.cs
│ │ │ │ │ ├── EmployeeTerritories.cs
│ │ │ │ │ ├── Employees.cs
│ │ │ │ │ ├── NorthwindContext.cs
│ │ │ │ │ ├── OrderDetails.cs
│ │ │ │ │ ├── Orders.cs
│ │ │ │ │ ├── Products.cs
│ │ │ │ │ ├── Region.cs
│ │ │ │ │ ├── Shippers.cs
│ │ │ │ │ ├── Suppliers.cs
│ │ │ │ │ └── Territories.cs
│ │ │ │ └── Program.cs
│ │ │ ├── DataAccessSample.sln
│ │ │ └── readme.md
│ │ ├── NetCoreGrpc/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── GrpcService1/
│ │ │ │ ├── GrpcService1.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── launchSettings.json
│ │ │ │ ├── Protos/
│ │ │ │ │ └── greet.proto
│ │ │ │ ├── Services/
│ │ │ │ │ └── SampleService.cs
│ │ │ │ ├── Startup.cs
│ │ │ │ ├── appsettings.Development.json
│ │ │ │ └── appsettings.json
│ │ │ └── NetCoreGrpc.sln
│ │ ├── PathMap/
│ │ │ ├── PathMap/
│ │ │ │ ├── PathMap.csproj
│ │ │ │ └── Program.cs
│ │ │ └── PathMap.sln
│ │ ├── SearchDocx/
│ │ │ ├── SearchDocx/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── launchSettings.json
│ │ │ │ └── SearchDocx.csproj
│ │ │ └── SearchDocx.sln
│ │ ├── SwitchStatementToExpression/
│ │ │ ├── SwitchStatementToExpression/
│ │ │ │ ├── Program.cs
│ │ │ │ └── SwitchStatementToExpression.csproj
│ │ │ └── SwitchStatementToExpression.sln
│ │ └── ThreadPost/
│ │ ├── ThreadPost/
│ │ │ ├── BlockingSynchronizationContext.cs
│ │ │ ├── IUpdatable.cs
│ │ │ ├── IntervalUpdateThread.cs
│ │ │ ├── ManualResetValueTaskSource.cs
│ │ │ ├── ObjectPool.cs
│ │ │ ├── Program.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Action0.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Action1.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Diagnostics.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Func1.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Func2.cs
│ │ │ ├── SynchronizationContextPostItem.cs
│ │ │ ├── ThreadPost.csproj
│ │ │ └── UpdatableSynchronizationContext.cs
│ │ └── ThreadPost.sln
│ ├── 2020/
│ │ ├── Csharp9_0/
│ │ │ ├── Csharp9_0.sln
│ │ │ ├── ModuleInitializer/
│ │ │ │ ├── ModuleInitializer.cs
│ │ │ │ ├── ModuleInitializer.csproj
│ │ │ │ ├── Reflection.cs
│ │ │ │ ├── Sample.cs
│ │ │ │ ├── StaticConstructor.cs
│ │ │ │ └── TypeRepository.cs
│ │ │ ├── NullableReferenceType9/
│ │ │ │ ├── DefaultConstraint.cs
│ │ │ │ ├── MemberNotNull.cs
│ │ │ │ ├── NullableReferenceType9.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── UnconstrainedGenericParameter.cs
│ │ │ └── TopLevelProgram/
│ │ │ ├── Program.cs
│ │ │ └── TopLevelProgram.csproj
│ │ ├── MetricSpace/
│ │ │ ├── MetricSpace/
│ │ │ │ ├── AddDuplicateBehavior.cs
│ │ │ │ ├── DuplicateNodeError.cs
│ │ │ │ ├── KdTree.cs
│ │ │ │ ├── KdTreeNode.cs
│ │ │ │ ├── MetricSpace.csproj
│ │ │ │ ├── NearestNeighbourList.cs
│ │ │ │ ├── PriorityQueue.cs
│ │ │ │ ├── Rect.cs
│ │ │ │ └── Traits/
│ │ │ │ ├── Arithmetics/
│ │ │ │ │ ├── DoubleArithmetic.cs
│ │ │ │ │ ├── FloatArithmetic.cs
│ │ │ │ │ ├── IArithmetic.cs
│ │ │ │ │ └── IntArithmetic.cs
│ │ │ │ ├── Array/
│ │ │ │ │ ├── FixedArray.cs
│ │ │ │ │ ├── IFixedArray.cs
│ │ │ │ │ └── IFixedArrayAccessor.cs
│ │ │ │ ├── Instantiation.cs
│ │ │ │ └── Metrics/
│ │ │ │ ├── ChebyshevMetric.cs
│ │ │ │ ├── EuclideanMetric.cs
│ │ │ │ ├── IMetric.cs
│ │ │ │ └── ManhattanMetric.cs
│ │ │ ├── MetricSpace.sln
│ │ │ └── XUnitTestMetricSpace/
│ │ │ ├── UnitTest1.cs
│ │ │ └── XUnitTestMetricSpace.csproj
│ │ └── ReadModReq/
│ │ ├── .gitignore
│ │ ├── Csharp7.0/
│ │ │ └── Csharp7.0.csproj
│ │ ├── Csharp7.2/
│ │ │ └── Csharp7.2.csproj
│ │ ├── Csharp8.0/
│ │ │ └── Csharp8.0.csproj
│ │ ├── LibModReq/
│ │ │ ├── Class1.cs
│ │ │ └── LibModReq.csproj
│ │ ├── ReadModReq/
│ │ │ ├── Program.cs
│ │ │ └── ReadModReq.csproj
│ │ ├── ReadModReq.sln
│ │ ├── UseModReq.cs
│ │ └── readme.md
│ ├── 2021/
│ │ ├── AnalyzerPackageReference/
│ │ │ ├── AnalyzerPackageReference/
│ │ │ │ ├── AnalyzerPackageReference.csproj
│ │ │ │ ├── NonCopyableAttribute.cs
│ │ │ │ └── Program.cs
│ │ │ └── AnalyzerPackageReference.sln
│ │ ├── ColorizeByProject/
│ │ │ ├── A/
│ │ │ │ └── A.csproj
│ │ │ ├── B/
│ │ │ │ └── B.csproj
│ │ │ ├── C/
│ │ │ │ └── C.csproj
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── A.cs
│ │ │ │ ├── B.cs
│ │ │ │ ├── C.cs
│ │ │ │ ├── ClassLibrary1.csproj
│ │ │ │ ├── D.cs
│ │ │ │ ├── E.cs
│ │ │ │ ├── F.cs
│ │ │ │ ├── G.cs
│ │ │ │ ├── H.cs
│ │ │ │ ├── I.cs
│ │ │ │ ├── J.cs
│ │ │ │ ├── K.cs
│ │ │ │ ├── L.cs
│ │ │ │ ├── M.cs
│ │ │ │ ├── N.cs
│ │ │ │ ├── O.cs
│ │ │ │ ├── P.cs
│ │ │ │ ├── Q.cs
│ │ │ │ ├── R.cs
│ │ │ │ ├── S.cs
│ │ │ │ ├── T.cs
│ │ │ │ ├── U.cs
│ │ │ │ ├── V.cs
│ │ │ │ ├── W.cs
│ │ │ │ ├── X.cs
│ │ │ │ ├── Y.cs
│ │ │ │ └── Z.cs
│ │ │ ├── ColorizeByProject.sln
│ │ │ ├── D/
│ │ │ │ └── D.csproj
│ │ │ ├── E/
│ │ │ │ └── E.csproj
│ │ │ ├── F/
│ │ │ │ └── F.csproj
│ │ │ ├── G/
│ │ │ │ └── G.csproj
│ │ │ ├── H/
│ │ │ │ └── H.csproj
│ │ │ ├── I/
│ │ │ │ └── I.csproj
│ │ │ ├── J/
│ │ │ │ └── J.csproj
│ │ │ ├── K/
│ │ │ │ └── K.csproj
│ │ │ ├── L/
│ │ │ │ └── L.csproj
│ │ │ ├── M/
│ │ │ │ └── M.csproj
│ │ │ ├── N/
│ │ │ │ └── N.csproj
│ │ │ ├── O/
│ │ │ │ └── O.csproj
│ │ │ ├── P/
│ │ │ │ └── P.csproj
│ │ │ ├── Q/
│ │ │ │ └── Q.csproj
│ │ │ ├── R/
│ │ │ │ └── R.csproj
│ │ │ ├── S/
│ │ │ │ └── S.csproj
│ │ │ ├── T/
│ │ │ │ └── T.csproj
│ │ │ ├── U/
│ │ │ │ └── U.csproj
│ │ │ ├── V/
│ │ │ │ └── V.csproj
│ │ │ ├── W/
│ │ │ │ └── W.csproj
│ │ │ ├── X/
│ │ │ │ └── X.csproj
│ │ │ ├── Y/
│ │ │ │ └── Y.csproj
│ │ │ └── Z/
│ │ │ └── Z.csproj
│ │ ├── Csharp10/
│ │ │ ├── CallerArgument/
│ │ │ │ ├── AllCallerInfo/
│ │ │ │ │ ├── AllCallerInfo.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── CallerArgument/
│ │ │ │ │ ├── CallerArgument.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── ThrowIfNull/
│ │ │ │ ├── Program.cs
│ │ │ │ └── ThrowIfNull.csproj
│ │ │ ├── Csharp10.sln
│ │ │ ├── InterpolatedStrings/
│ │ │ │ ├── AppendFormattedOverload/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── AppendFormattedOverload.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── Benchmark/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── Benchmark.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── BoolReturn/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── BoolReturn.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ConstString/
│ │ │ │ │ ├── ConstString.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── DefaultInterpolatedStringHandler/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── DefaultInterpolatedStringHandler.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── FormattingHandler/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── FormattingHandler.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ImprovedInterpolatedStrings/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── ImprovedInterpolatedStrings.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── InterpolatedStringHandlerArgument/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── InterpolatedStringHandlerArgument.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── InvariantGlobalization/
│ │ │ │ │ ├── Invariant.cs
│ │ │ │ │ ├── InvariantGlobalization.csproj
│ │ │ │ │ ├── Iso8601.cs
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── MinimalHandler/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── MinimalHandler.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── OverloadResolution/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── C1.cs
│ │ │ │ │ ├── C2.cs
│ │ │ │ │ ├── OverloadResolution.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── ParamsDictionary/
│ │ │ │ ├── ParamsDictionary.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Lambda/
│ │ │ │ ├── AttributeAndReturn/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── AttributeAndReturn.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── AttributeWeb/
│ │ │ │ │ ├── AttributeWeb.csproj
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── launchSettings.json
│ │ │ │ │ ├── appsettings.Development.json
│ │ │ │ │ └── appsettings.json
│ │ │ │ ├── NaturalType/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── NaturalType.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── SimpleReturn/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── SimpleReturn.csproj
│ │ │ │ ├── SimpleWeb/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── launchSettings.json
│ │ │ │ │ ├── SimpleWeb.csproj
│ │ │ │ │ ├── appsettings.Development.json
│ │ │ │ │ └── appsettings.json
│ │ │ │ └── TargetTypedReturn/
│ │ │ │ ├── Program.cs
│ │ │ │ └── TargetTypedReturn.csproj
│ │ │ ├── Others/
│ │ │ │ ├── ExtendedPropertyPetterns/
│ │ │ │ │ ├── ExtendedPropertyPetterns.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── MixedDeconstruction/
│ │ │ │ ├── MixedDeconstruction.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ParameterlessConstructors/
│ │ │ │ ├── ActivatorBug/
│ │ │ │ │ ├── ActivatorBug.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── CreateInstanceBenchmark/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── CreateInstanceBenchmark.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── DefaultParameter/
│ │ │ │ │ ├── DefaultParameter.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── FieldInitializer/
│ │ │ │ │ ├── FieldInitializer.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── GenericNew/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── GenericNew.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ImmutableArray/
│ │ │ │ │ ├── ImmutableArray.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── NewOrDefault/
│ │ │ │ │ ├── NewOrDefault.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── NonPublicConstructor/
│ │ │ │ │ ├── NonPublicConstructor.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── RecordStruct/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RecordStruct.csproj
│ │ │ │ └── Zeroed/
│ │ │ │ ├── .editorconfig
│ │ │ │ ├── Program.cs
│ │ │ │ └── Zeroed.csproj
│ │ │ ├── RecordStruct/
│ │ │ │ ├── HidingField/
│ │ │ │ │ ├── HidingField.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── Metadata/
│ │ │ │ │ ├── Metadata.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── RecordStruct/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RecordStruct.csproj
│ │ │ │ ├── VsClass/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── VsClass.csproj
│ │ │ │ ├── VsNormalStruct/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── VsNormalStruct.csproj
│ │ │ │ └── With/
│ │ │ │ ├── Program.cs
│ │ │ │ └── With.csproj
│ │ │ ├── StaticAbstract/
│ │ │ │ └── GenericMath/
│ │ │ │ ├── Algebra/
│ │ │ │ │ ├── GaloisField.cs
│ │ │ │ │ ├── IConstant.cs
│ │ │ │ │ ├── IField.cs
│ │ │ │ │ └── Natural.cs
│ │ │ │ ├── GenericMath.csproj
│ │ │ │ └── Program.cs
│ │ │ └── readme.md
│ │ ├── Csharp9/
│ │ │ ├── Csharp9.sln
│ │ │ ├── Record/
│ │ │ │ └── InParams/
│ │ │ │ ├── InParams.csproj
│ │ │ │ └── Program.cs
│ │ │ └── readme.md
│ │ ├── EmojiData/
│ │ │ └── readme.md
│ │ ├── GenericMath/
│ │ │ ├── GenericMath/
│ │ │ │ ├── FixedArray.cs
│ │ │ │ ├── GenericMath.csproj
│ │ │ │ ├── MathInterfaces.cs
│ │ │ │ └── Program.cs
│ │ │ └── GenericMath.sln
│ │ ├── ImplicitUsings/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ConsoleAppDesktop/
│ │ │ │ ├── ConsoleAppDesktop.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ConsoleAppUseWinForms/
│ │ │ │ ├── ConsoleAppUseWinForms.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ConsoleAppUseWpf/
│ │ │ │ ├── ConsoleAppUseWpf.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Directory.Build.props
│ │ │ ├── ImplicitUsings.sln
│ │ │ └── WebApplication1/
│ │ │ ├── Pages/
│ │ │ │ ├── Error.cshtml
│ │ │ │ ├── Error.cshtml.cs
│ │ │ │ ├── Index.cshtml
│ │ │ │ ├── Index.cshtml.cs
│ │ │ │ ├── Privacy.cshtml
│ │ │ │ ├── Privacy.cshtml.cs
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ ├── _Layout.cshtml.css
│ │ │ │ │ └── _ValidationScriptsPartial.cshtml
│ │ │ │ ├── _ViewImports.cshtml
│ │ │ │ └── _ViewStart.cshtml
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── launchSettings.json
│ │ │ ├── WebApplication1.csproj
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ └── wwwroot/
│ │ │ ├── css/
│ │ │ │ └── site.css
│ │ │ ├── js/
│ │ │ │ └── site.js
│ │ │ └── lib/
│ │ │ ├── bootstrap/
│ │ │ │ ├── LICENSE
│ │ │ │ └── dist/
│ │ │ │ ├── css/
│ │ │ │ │ ├── bootstrap-grid.css
│ │ │ │ │ ├── bootstrap-grid.rtl.css
│ │ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ │ ├── bootstrap-reboot.rtl.css
│ │ │ │ │ ├── bootstrap-utilities.css
│ │ │ │ │ ├── bootstrap-utilities.rtl.css
│ │ │ │ │ ├── bootstrap.css
│ │ │ │ │ └── bootstrap.rtl.css
│ │ │ │ └── js/
│ │ │ │ ├── bootstrap.bundle.js
│ │ │ │ ├── bootstrap.esm.js
│ │ │ │ └── bootstrap.js
│ │ │ ├── jquery/
│ │ │ │ ├── LICENSE.txt
│ │ │ │ └── dist/
│ │ │ │ └── jquery.js
│ │ │ ├── jquery-validation/
│ │ │ │ ├── LICENSE.md
│ │ │ │ └── dist/
│ │ │ │ ├── additional-methods.js
│ │ │ │ └── jquery.validate.js
│ │ │ └── jquery-validation-unobtrusive/
│ │ │ ├── LICENSE.txt
│ │ │ └── jquery.validate.unobtrusive.js
│ │ ├── ModuleInitializerNet48/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ └── ModuleInitializerNet48.sln
│ │ ├── NewTemplatesInNet6/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NewTemplatesInNet6.sln
│ │ │ ├── WebApplication1/
│ │ │ │ ├── Pages/
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ ├── Error.cshtml.cs
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ ├── Index.cshtml.cs
│ │ │ │ │ ├── Privacy.cshtml
│ │ │ │ │ ├── Privacy.cshtml.cs
│ │ │ │ │ ├── Shared/
│ │ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ │ └── _ValidationScriptsPartial.cshtml
│ │ │ │ │ ├── _ViewImports.cshtml
│ │ │ │ │ └── _ViewStart.cshtml
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── launchSettings.json
│ │ │ │ ├── WebApplication1.csproj
│ │ │ │ ├── appsettings.Development.json
│ │ │ │ ├── appsettings.json
│ │ │ │ └── wwwroot/
│ │ │ │ ├── css/
│ │ │ │ │ └── site.css
│ │ │ │ ├── js/
│ │ │ │ │ └── site.js
│ │ │ │ └── lib/
│ │ │ │ ├── bootstrap/
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── dist/
│ │ │ │ │ ├── css/
│ │ │ │ │ │ ├── bootstrap-grid.css
│ │ │ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ │ │ └── bootstrap.css
│ │ │ │ │ └── js/
│ │ │ │ │ ├── bootstrap.bundle.js
│ │ │ │ │ └── bootstrap.js
│ │ │ │ ├── jquery/
│ │ │ │ │ ├── LICENSE.txt
│ │ │ │ │ └── dist/
│ │ │ │ │ └── jquery.js
│ │ │ │ ├── jquery-validation/
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ └── dist/
│ │ │ │ │ ├── additional-methods.js
│ │ │ │ │ └── jquery.validate.js
│ │ │ │ └── jquery-validation-unobtrusive/
│ │ │ │ ├── LICENSE.txt
│ │ │ │ └── jquery.validate.unobtrusive.js
│ │ │ └── WebApplication2/
│ │ │ ├── Controllers/
│ │ │ │ └── HomeController.cs
│ │ │ ├── Models/
│ │ │ │ └── ErrorViewModel.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── launchSettings.json
│ │ │ ├── Views/
│ │ │ │ ├── Home/
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ └── Privacy.cshtml
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ └── _ValidationScriptsPartial.cshtml
│ │ │ │ ├── _ViewImports.cshtml
│ │ │ │ └── _ViewStart.cshtml
│ │ │ ├── WebApplication2.csproj
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ └── wwwroot/
│ │ │ ├── css/
│ │ │ │ └── site.css
│ │ │ ├── js/
│ │ │ │ └── site.js
│ │ │ └── lib/
│ │ │ ├── bootstrap/
│ │ │ │ ├── LICENSE
│ │ │ │ └── dist/
│ │ │ │ ├── css/
│ │ │ │ │ ├── bootstrap-grid.css
│ │ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ │ └── bootstrap.css
│ │ │ │ └── js/
│ │ │ │ ├── bootstrap.bundle.js
│ │ │ │ └── bootstrap.js
│ │ │ ├── jquery/
│ │ │ │ ├── LICENSE.txt
│ │ │ │ └── dist/
│ │ │ │ └── jquery.js
│ │ │ ├── jquery-validation/
│ │ │ │ ├── LICENSE.md
│ │ │ │ └── dist/
│ │ │ │ ├── additional-methods.js
│ │ │ │ └── jquery.validate.js
│ │ │ └── jquery-validation-unobtrusive/
│ │ │ ├── LICENSE.txt
│ │ │ └── jquery.validate.unobtrusive.js
│ │ └── NoThrowAwaiter/
│ │ ├── NoThrowAwaiter/
│ │ │ ├── IgnoreCancelBenchmark.cs
│ │ │ ├── NoThrowAwaiter.csproj
│ │ │ ├── NoThrowOnCancelAwaiter.cs
│ │ │ ├── Program.cs
│ │ │ ├── ResultOrCancel.cs
│ │ │ └── TaskExtensions.cs
│ │ └── NoThrowAwaiter.sln
│ ├── 2022/
│ │ ├── Algebra/
│ │ │ ├── Algebra/
│ │ │ │ ├── Algebra.csproj
│ │ │ │ ├── Constants/
│ │ │ │ │ ├── IConstant.cs
│ │ │ │ │ ├── IntConstants.cs
│ │ │ │ │ ├── IntegerConstant.cs
│ │ │ │ │ └── RationalConstant.cs
│ │ │ │ ├── Conversion.cs
│ │ │ │ ├── EuclideanAlgorithm.cs
│ │ │ │ ├── QuadraticField.cs
│ │ │ │ ├── Rational.cs
│ │ │ │ └── RationalQuadraticField.cs
│ │ │ ├── Algebra.sln
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ └── TestAlgebra/
│ │ │ ├── EuclideanAlgorithmTest.cs
│ │ │ ├── TestAlgebra.csproj
│ │ │ └── Usings.cs
│ │ ├── Csharp11/
│ │ │ ├── 17.0/
│ │ │ │ └── GenericAttribute/
│ │ │ │ ├── GenericAttribute.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── 17.1p1/
│ │ │ │ └── NewlineInInterpolation/
│ │ │ │ ├── NewlineInInterpolation.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── 17.1p2/
│ │ │ │ └── ListPattern/
│ │ │ │ ├── ListPattern.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── 17.1p3/
│ │ │ │ └── NullCheck/
│ │ │ │ ├── NullCheck.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── 17.2p1/
│ │ │ │ ├── CacheDelegate/
│ │ │ │ │ ├── CacheDelegate.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── RawStringLiteral/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RawStringLiteral.csproj
│ │ │ │ └── Whitespaces.cs
│ │ │ ├── 17.3p1/
│ │ │ │ ├── AutoDefaultStruct/
│ │ │ │ │ ├── AutoDefaultStruct.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── CheckedOperator/
│ │ │ │ │ ├── CheckedOperator.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── PatternROS/
│ │ │ │ │ ├── PatternROS.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── UnsignedRightShift/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── UnsignedRightShift.csproj
│ │ │ │ └── Utf8Literal/
│ │ │ │ ├── Program.cs
│ │ │ │ └── Utf8Literal.csproj
│ │ │ ├── 17.3p2/
│ │ │ │ ├── NameOfParameter/
│ │ │ │ │ ├── NameOfParameter.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── NumericIntPtr/
│ │ │ │ │ ├── NumericIntPtr.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── RelaxingShiftOperator/
│ │ │ │ │ ├── Background.cs
│ │ │ │ │ ├── Drawback.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RelaxingShiftOperator.csproj
│ │ │ │ ├── RequiredMembers/
│ │ │ │ │ ├── MembersNotNull.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RequiredMembers.csproj
│ │ │ │ └── StaticVirtual/
│ │ │ │ ├── GenericMath.cs
│ │ │ │ ├── Parsable.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StaticAbstract.cs
│ │ │ │ ├── StaticBehavior.cs
│ │ │ │ └── StaticVirtual.csproj
│ │ │ ├── 17.4p1/
│ │ │ │ ├── FileLocal/
│ │ │ │ │ ├── A.cs
│ │ │ │ │ ├── FileLocal.csproj
│ │ │ │ │ ├── Inheritance.cs
│ │ │ │ │ ├── Interface.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── R.cs
│ │ │ │ └── RefField/
│ │ │ │ ├── FixedArray.cs
│ │ │ │ ├── MultipleRefReturn.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RefField.csproj
│ │ │ │ └── TypedRef.cs
│ │ │ ├── Csharp11.sln
│ │ │ └── Directory.build.targets
│ │ ├── EmbeddedLanguages/
│ │ │ ├── .editorconfig
│ │ │ ├── Directory.Build.targets
│ │ │ ├── EmbeddedLanguages.sln
│ │ │ ├── Example/
│ │ │ │ ├── Example.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── WithFeatures/
│ │ │ │ └── WithFeatures.csproj
│ │ │ ├── WithoutFeatures/
│ │ │ │ ├── Program.cs
│ │ │ │ └── WithoutFeatures.csproj
│ │ │ └── readme.md
│ │ ├── NBitInt/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NBitInt/
│ │ │ │ ├── IConstant.cs
│ │ │ │ ├── Int.cs
│ │ │ │ ├── IntConstant.cs
│ │ │ │ └── NBitInt.csproj
│ │ │ └── NBitInt.sln
│ │ ├── NoMoreT4/
│ │ │ ├── Benchmark/
│ │ │ │ ├── Benchmark.csproj
│ │ │ │ ├── GeneratorBenchmark.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Sample.cs
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── ClassLibrary1.csproj
│ │ │ │ ├── IGenerator.cs
│ │ │ │ ├── InterpolationGenerator.cs
│ │ │ │ ├── T4Generator.cs
│ │ │ │ ├── T4Generator.partial.cs
│ │ │ │ └── T4Generator.tt
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Sample.cs
│ │ │ ├── FileGenerator/
│ │ │ │ ├── FileGenerator.csproj
│ │ │ │ ├── X.scriban
│ │ │ │ └── Y.cs
│ │ │ ├── NoMoreT4.sln
│ │ │ └── readme.md
│ │ ├── StringJoin/
│ │ │ ├── JoinBenchmark.cs
│ │ │ ├── Joiner.cs
│ │ │ ├── Program.cs
│ │ │ ├── StringJoin.csproj
│ │ │ ├── StringJoin.sln
│ │ │ └── readme.md
│ │ └── Whitespace/
│ │ ├── Program.cs
│ │ └── Whitespace.csproj
│ ├── 2023/
│ │ └── MemberOrder/
│ │ ├── .vscode/
│ │ │ └── settings.json
│ │ ├── A.cs
│ │ ├── Ab/
│ │ │ └── Ab.csproj
│ │ ├── B.cs
│ │ ├── Ba/
│ │ │ └── Ba.csproj
│ │ ├── Directory.Build.props
│ │ ├── Explicit/
│ │ │ └── Explicit.csproj
│ │ ├── Implicit/
│ │ │ └── Implicit.csproj
│ │ ├── MemberOrder.sln
│ │ ├── Program.cs
│ │ ├── Z.cs
│ │ ├── readme.md
│ │ ├── À.cs
│ │ ├── α.cs
│ │ ├── д.cs
│ │ ├── ア.cs
│ │ ├── 漢字.cs
│ │ ├── ア.cs
│ │ ├── 🐈.cs
│ │ └── 𩸽.cs
│ ├── 2024/
│ │ ├── Distinct/
│ │ │ ├── .editorconfig
│ │ │ ├── Directory.Build.props
│ │ │ ├── Distinct/
│ │ │ │ ├── Binary.cs
│ │ │ │ ├── Distinct.csproj
│ │ │ │ ├── Hash.cs
│ │ │ │ ├── Linear.cs
│ │ │ │ └── SpanHashSet.cs
│ │ │ ├── Distinct.slnx
│ │ │ ├── DistinctBenchmark/
│ │ │ │ ├── DistinctBenchmark.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── DistinctTest/
│ │ │ │ ├── BinaryTest.cs
│ │ │ │ ├── DistinctTest.csproj
│ │ │ │ ├── GlobalUsings.cs
│ │ │ │ ├── HashTest.cs
│ │ │ │ ├── LinearTest.cs
│ │ │ │ └── TestData.cs
│ │ │ └── readme.md
│ │ └── ValueList/
│ │ ├── Collections/
│ │ │ ├── IListImpl.cs
│ │ │ ├── PooledValueList.cs
│ │ │ ├── ReferenceImplementation.cs
│ │ │ ├── ValueList.cs
│ │ │ └── ValueListBuilder.cs
│ │ ├── Program.cs
│ │ ├── ValueList.csproj
│ │ ├── ValueList.sln
│ │ └── ValueListBenchmark.cs
│ ├── 2025/
│ │ ├── InPlaceGroupBy/
│ │ │ ├── .editorconfig
│ │ │ ├── BenchmarkInPlaceGroupBy/
│ │ │ │ ├── BenchmarkInPlaceGroupBy.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Directory.Build.props
│ │ │ ├── InPlaceGroupBy/
│ │ │ │ ├── InPlaceGroupBy.csproj
│ │ │ │ ├── InPlaceSpanExtensions.cs
│ │ │ │ └── SortedSpanGrouping.cs
│ │ │ ├── InPlaceGroupBy.slnx
│ │ │ ├── TestInPlaceGroupBy/
│ │ │ │ ├── Common.cs
│ │ │ │ ├── InPlaceGroupBy.cs
│ │ │ │ └── TestInPlaceGroupBy.csproj
│ │ │ └── readme.md
│ │ ├── PseudoDictionary/
│ │ │ ├── .editorconfig
│ │ │ ├── BenchmarkPseudoDictionary/
│ │ │ │ ├── BenchmarkPseudoDictionary.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Directory.Build.props
│ │ │ ├── PseudoDictionary/
│ │ │ │ ├── IListImpl.cs
│ │ │ │ ├── PseudoDictionary.csproj
│ │ │ │ ├── PseudoDictionaryExtensions.ValueList.cs
│ │ │ │ ├── PseudoDictionaryExtensions.cs
│ │ │ │ └── ValueListBuilder.cs
│ │ │ ├── PseudoDictionary.slnx
│ │ │ ├── TestPseudoDictionary/
│ │ │ │ ├── Common.cs
│ │ │ │ ├── PseudoDictionaryExtensionsTest.cs
│ │ │ │ ├── PseudoDictionaryExtensionsValueListTest.cs
│ │ │ │ └── TestPseudoDictionary.csproj
│ │ │ └── readme.md
│ │ ├── RefReflection/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Example/
│ │ │ │ │ ├── A.cs
│ │ │ │ │ └── Program1.cs
│ │ │ │ ├── Formatter/
│ │ │ │ │ ├── ArrayFormatter.cs
│ │ │ │ │ ├── FormatterProvider.cs
│ │ │ │ │ ├── IFormatter.cs
│ │ │ │ │ ├── Primitives.cs
│ │ │ │ │ └── RecordFormatter.cs
│ │ │ │ ├── ITupleAccessor.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── TupleAccessor2.cs
│ │ │ │ ├── TupleAccessor3.cs
│ │ │ │ ├── TupleEnumerator.cs
│ │ │ │ ├── TypedRef.cs
│ │ │ │ └── UnsafeRef.cs
│ │ │ └── RefReflection.slnx
│ │ └── StringInDataSection/
│ │ ├── DataSectionAscii/
│ │ │ ├── Class1.cs
│ │ │ └── DataSectionAscii.csproj
│ │ ├── DataSectionJapanese/
│ │ │ ├── Class1.cs
│ │ │ └── DataSectionJapanese.csproj
│ │ ├── Directory.build.props
│ │ ├── NormalAscii/
│ │ │ ├── Class1.cs
│ │ │ └── NormalAscii.csproj
│ │ ├── NormalJapanese/
│ │ │ ├── Class1.cs
│ │ │ └── NormalJapanese.csproj
│ │ ├── StringInDataSection.slnx
│ │ └── readme.md
│ ├── 2026/
│ │ └── DependencyPropertyGenerator/
│ │ ├── ClassLibrary1/
│ │ │ ├── Class1.cs
│ │ │ └── ClassLibrary1.csproj
│ │ ├── ClassLibrary1.slnx
│ │ ├── Generator/
│ │ │ ├── DependencyPropertyGenerator.cs
│ │ │ ├── Generator.csproj
│ │ │ └── PolyFill.cs
│ │ └── Generator.UnitTests/
│ │ ├── DependencyPropertyGenerator.cs
│ │ └── Generator.UnitTests.csproj
│ ├── Csharp6/
│ │ ├── Csharp6/
│ │ │ ├── App.config
│ │ │ ├── Csharp5/
│ │ │ │ ├── IndexInitializerSample.cs
│ │ │ │ ├── NameOfSample.cs
│ │ │ │ ├── NullConditional.cs
│ │ │ │ ├── Point.cs
│ │ │ │ ├── PointJson.cs
│ │ │ │ ├── Polygon.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StaticUsingSample.cs
│ │ │ │ └── StringInterpolationSample.cs
│ │ │ ├── Csharp6/
│ │ │ │ ├── AwaitInCatchFinally.cs
│ │ │ │ ├── ExceptionFilter.cs
│ │ │ │ ├── ExtensionCollectionInitializer.cs
│ │ │ │ ├── IndexInitializerSample.cs
│ │ │ │ ├── NameOfSample.cs
│ │ │ │ ├── NullConditional.cs
│ │ │ │ ├── Point.cs
│ │ │ │ ├── PointJson.cs
│ │ │ │ ├── Polygon.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StaticUsingSample.cs
│ │ │ │ └── StringInterpolationSample.cs
│ │ │ ├── Csharp6.csproj
│ │ │ ├── Misc/
│ │ │ │ ├── AwaitOptimization.cs
│ │ │ │ ├── SmallChanges.cs
│ │ │ │ ├── StringInterpolationSample.cs
│ │ │ │ ├── UsingStaticEnum.cs
│ │ │ │ ├── UsingStaticExtensions.cs
│ │ │ │ └── UsingStaticNormalClass.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── packages.config
│ │ ├── Csharp6.sln
│ │ └── 旧/
│ │ └── Csharp6_CTP3/
│ │ ├── AutoProperty/
│ │ │ ├── App.config
│ │ │ ├── AutoProperty.csproj
│ │ │ ├── Point.GetterOnly.cs
│ │ │ ├── Point.Intializer.cs
│ │ │ ├── Point.cs
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Build2014Demo/
│ │ │ ├── App.config
│ │ │ ├── Build2014Demo.csproj
│ │ │ ├── Csharp5/
│ │ │ │ ├── Point.cs
│ │ │ │ ├── PointJson.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Csharp6/
│ │ │ │ ├── Point.cs
│ │ │ │ ├── PointJson.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Csharp6.sln
│ │ ├── PrimaryConstructor/
│ │ │ ├── App.config
│ │ │ ├── FirstQuadrant.cs
│ │ │ ├── Point.GetterOnly.cs
│ │ │ ├── PrimaryConstructor.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── readme.txt
│ └── Csharp7/
│ └── 201603/
│ ├── 201603.sln
│ └── ConsoleApplication1/
│ ├── App.config
│ ├── ConsoleApplication1.csproj
│ ├── LocalFunctions/
│ │ └── Closure.cs
│ ├── Program.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── RefReturns/
│ ├── BasedArray.cs
│ ├── Point.cs
│ └── RefParamsAndReturns.cs
├── Directory.Build.props
├── LICENSE
├── LanguageAndFrameworkVersion/
│ ├── Compatibility 2/
│ │ ├── CallerInfoAttributes.cs
│ │ ├── Compatibility 2.csproj
│ │ ├── Enumerable.cs
│ │ ├── ExtensionAttribute.cs
│ │ ├── FormattableString.cs
│ │ ├── Func.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── readme.txt
│ ├── Compatibility 3/
│ │ ├── Compatibility 3.csproj
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── readme.txt
│ ├── Compatibility 4/
│ │ ├── Compatibility 4.csproj
│ │ └── Properties/
│ │ └── AssemblyInfo.cs
│ ├── LanguageAndFrameworkVersion.sln
│ ├── SharedProject/
│ │ ├── Csharp3/
│ │ │ ├── AnonymousTypeSample.cs
│ │ │ ├── ExtensionMethodSample.cs
│ │ │ ├── LinqToObjectSample.cs
│ │ │ ├── PartialMethodSample.cs
│ │ │ ├── QueryExpressionSample.cs
│ │ │ └── SyntaxSugarSample.cs
│ │ ├── Csharp4/
│ │ │ ├── DefaultParameterSample.cs
│ │ │ ├── DynamicSample.cs
│ │ │ ├── VarianceSample.cs
│ │ │ └── note.txt
│ │ ├── Csharp5/
│ │ │ ├── AsyncSample.cs
│ │ │ ├── CallerInfoSample.cs
│ │ │ └── ForeachBreakingChangeSample.cs
│ │ ├── Csharp6/
│ │ │ ├── AsyncSample.cs
│ │ │ ├── ExtensionListInitializerSample.cs
│ │ │ ├── NullConditionalSample.cs
│ │ │ ├── StringInterpolationSample.cs
│ │ │ └── SyntaxSugarSample.cs
│ │ ├── Program.cs
│ │ ├── SharedProject.projitems
│ │ └── SharedProject.shproj
│ ├── Ver2/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 2.csproj
│ │ └── readme.txt
│ ├── Ver2Plus/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 2 Plus.csproj
│ │ └── readme.txt
│ ├── Ver3/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 3.csproj
│ │ ├── app.config
│ │ └── readme.txt
│ ├── Ver3Plus/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 3 Plus.csproj
│ │ └── readme.txt
│ ├── Ver4/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 4.csproj
│ │ └── readme.txt
│ ├── Ver4Plus/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 4 Plus.csproj
│ │ ├── packages.config
│ │ └── readme.txt
│ ├── Ver4_5/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 4.5.csproj
│ │ └── readme.txt
│ ├── Ver4_5Plus/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 4.5 Plus.csproj
│ │ └── readme.txt
│ └── Ver4_6/
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Ver 4.6.csproj
│ └── readme.txt
├── Palindrome/
│ ├── ConsoleApplication1/
│ │ ├── App.config
│ │ ├── ConsoleApplication1.csproj
│ │ ├── Doc/
│ │ │ ├── Beginning.pptx
│ │ │ └── Conclusion.pptx
│ │ ├── Program.cs
│ │ └── Properties/
│ │ └── AssemblyInfo.cs
│ ├── ConsoleApplication2/
│ │ ├── App.config
│ │ ├── ConsoleApplication2.csproj
│ │ ├── Doc/
│ │ │ ├── Beginning.pptx
│ │ │ └── Conclusion.pptx
│ │ ├── Implementation1.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── SimpleImplementation.cs
│ ├── ConsoleApplication3/
│ │ ├── App.config
│ │ ├── ConsoleApplication3.csproj
│ │ ├── Doc/
│ │ │ ├── Beginning.pptx
│ │ │ └── Conclusion.pptx
│ │ ├── Implementation1.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── SimpleImplementation.cs
│ ├── ConsoleApplication4/
│ │ ├── App.config
│ │ ├── ConsoleApplication4.csproj
│ │ ├── Doc/
│ │ │ ├── Beginning.pptx
│ │ │ └── Conclusion.pptx
│ │ ├── Implementation1.cs
│ │ ├── Implementation2.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── SimpleImplementation.cs
│ ├── Introduction.pptx
│ └── Palindrome.sln
├── README.md
├── Scribble/
│ ├── ContextFreeTask/
│ │ ├── ContextFreeTask.sln
│ │ └── SampleWpfApp1/
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── SampleWpfApp1.csproj
│ │ ├── app.config
│ │ └── project.json
│ ├── FindSingleStatementBody/
│ │ ├── App.config
│ │ ├── CodeAnalysisForCSharp6.csproj
│ │ ├── MethodAnalyzer.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── PropertyAnalysis.cs
│ │ ├── SolutionLoader.cs
│ │ └── packages.config
│ ├── Inventories/
│ │ ├── DictionaryInventory.cs
│ │ ├── Events.cs
│ │ ├── IChangeable.cs
│ │ ├── IIdentifiable.cs
│ │ ├── IInventory.cs
│ │ ├── IObservableEnumerable.cs
│ │ ├── IObservableInventory.cs
│ │ ├── IdComparer.cs
│ │ ├── Inventories.csproj
│ │ ├── ItemChangedAction.cs
│ │ ├── ItemChangedArgs.cs
│ │ ├── ObservableEnumerable.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── packages.config
│ ├── Inventory/
│ │ ├── App.config
│ │ ├── DataModels/
│ │ │ ├── IApi.cs
│ │ │ ├── SyncResult.cs
│ │ │ └── Unit.cs
│ │ ├── Dummy/
│ │ │ ├── DummyApi.cs
│ │ │ ├── DummyMasters.cs
│ │ │ └── UnitMaster.cs
│ │ ├── InventoriesSample.csproj
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── packages.config
│ ├── MigrateToProjectJson/
│ │ ├── App.config
│ │ ├── MigrateToProjectJson.csproj
│ │ ├── Package.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── packages.config
│ │ └── readme.md
│ ├── OverloadResolutionWithDefaultParameter/
│ │ ├── .gitignore
│ │ ├── Program.cs
│ │ ├── Run.ps1
│ │ └── X/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── X.cs
│ │ ├── X.csproj
│ │ └── X.sln
│ ├── Scribble.sln
│ ├── UnsafeMamberAccessor/
│ │ ├── FixedPacker/
│ │ │ ├── App.config
│ │ │ ├── FixedPacker.csproj
│ │ │ ├── Packer.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Samples/
│ │ │ │ ├── DefinitionData/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── Sample.cs
│ │ │ │ └── GeneratedData/
│ │ │ │ ├── Program.cs
│ │ │ │ └── Sample.cs
│ │ │ ├── Unpacker.cs
│ │ │ └── project.json
│ │ ├── SampleApp/
│ │ │ ├── App.config
│ │ │ ├── Diagnostics/
│ │ │ │ └── Measure.cs
│ │ │ ├── Lib/
│ │ │ │ ├── IMemberAccessor.cs
│ │ │ │ ├── IRecordAccessor.cs
│ │ │ │ ├── NameIndexTable.cs
│ │ │ │ ├── TypedPointer.cs
│ │ │ │ └── ValueTupleAccessor.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SampleApp.csproj
│ │ │ ├── Samples/
│ │ │ │ ├── Entry.cs
│ │ │ │ └── Point.cs
│ │ │ └── project.json
│ │ └── UnsafeMamberAccessor.sln
│ ├── ValueTuple/
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Reflection/
│ │ │ ├── ArrayTypeInfo.cs
│ │ │ ├── IRecordAccessor.cs
│ │ │ ├── Primitives.cs
│ │ │ ├── RecordFieldInfo.cs
│ │ │ ├── RecordTypeInfo.cs
│ │ │ └── TypeRepository.cs
│ │ ├── Sample/
│ │ │ ├── Fighter.cs
│ │ │ ├── Mage.cs
│ │ │ ├── Pair.cs
│ │ │ ├── Point.cs
│ │ │ ├── PolyLine.cs
│ │ │ ├── Thief.cs
│ │ │ └── Unit.cs
│ │ ├── Serialization/
│ │ │ ├── IDeserializer.cs
│ │ │ ├── ISerializer.cs
│ │ │ ├── ISerializerFactory.cs
│ │ │ ├── MiniMessagePack.cs
│ │ │ ├── MyBinarySerializer.cs
│ │ │ ├── MySerializer.cs
│ │ │ ├── Number.tt
│ │ │ └── Number1.cs
│ │ ├── ValueTuple.csproj
│ │ └── 旧/
│ │ ├── IDeepCloneable.cs
│ │ ├── IRecord.cs
│ │ ├── ITuple.cs
│ │ ├── Line.cs
│ │ ├── Person.cs
│ │ ├── Point.cs
│ │ ├── Program.cs
│ │ ├── Serialization旧/
│ │ │ ├── IDeserializer.cs
│ │ │ ├── ISerializer.cs
│ │ │ └── MySerializer.cs
│ │ ├── Student.cs
│ │ ├── ValueTuple.cs
│ │ ├── ValueTuples.cs
│ │ └── ValueTuples.tt
│ ├── WhereNonNull/
│ │ ├── NullableExtensions.AsEnumerable.cs
│ │ ├── NullableExtensions.NonNullIterator.cs
│ │ ├── NullableExtensions.NonNullStruct.cs
│ │ ├── OfTypeBenchmark.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── WhereNonNull.csproj
│ │ └── project.json
│ ├── WhereNonNull.sln
│ └── readme.md
├── Style/
│ └── code.css
├── Tools/
│ ├── DnxMigration/
│ │ ├── DnxMigration.sln
│ │ ├── GenerateWrapJson/
│ │ │ ├── App.config
│ │ │ ├── GenerateWrapJson.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── MigrateToMsbuild15/
│ │ │ ├── App.config
│ │ │ ├── MigrateToMsbuild15.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── MigrateToProjectJson/
│ │ │ ├── App.config
│ │ │ ├── MigrateToProjectJson.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── project.json
│ │ │ └── readme.md
│ │ ├── ProjectModels/
│ │ │ ├── Csproj.cs
│ │ │ ├── CsprojOutputType.cs
│ │ │ ├── Package.cs
│ │ │ ├── PackagesConfig.cs
│ │ │ ├── ProjectJson.cs
│ │ │ ├── ProjectModels.csproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Solution.cs
│ │ │ └── project.json
│ │ ├── Test/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Test.csproj
│ │ └── TestData/
│ │ ├── .gitignore
│ │ └── Source/
│ │ ├── .gitignore
│ │ ├── ClassLibraryNet35/
│ │ │ ├── Class1.cs
│ │ │ ├── ClassLibraryNet35.csproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── packages.config
│ │ ├── ClassLibraryNet35X/
│ │ │ ├── Class1.cs
│ │ │ ├── ClassLibraryNet35X.csproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── project.json
│ │ ├── ClassLibraryNet46/
│ │ │ ├── Class1.cs
│ │ │ ├── ClassLibraryNet46.csproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── packages.config
│ │ ├── ClassLibraryNet46X/
│ │ │ ├── Class1.cs
│ │ │ ├── ClassLibraryNet46X.csproj
│ │ │ ├── ClassLibraryNet46X.xproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── project.json
│ │ ├── CommonNet35/
│ │ │ ├── CommonNet35.csproj
│ │ │ ├── IInterface1.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── packages.config
│ │ ├── XprojInterop.sln
│ │ ├── global.json
│ │ └── src/
│ │ ├── WebApplication1/
│ │ │ ├── Properties/
│ │ │ │ └── launchSettings.json
│ │ │ ├── Startup.cs
│ │ │ ├── WebApplication1.xproj
│ │ │ ├── project.json
│ │ │ └── wwwroot/
│ │ │ └── web.config
│ │ └── XprojLibrary/
│ │ ├── Class1.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── XprojLibrary.xproj
│ │ └── project.json
│ ├── KeyLogger/
│ │ ├── Gma.UserActivityMonitor/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── GlobalEventProvider.cs
│ │ │ ├── Gma.UserActivityMonitor.csproj
│ │ │ ├── HookManager.Callbacks.cs
│ │ │ ├── HookManager.Structures.cs
│ │ │ ├── HookManager.Windows.cs
│ │ │ ├── HookManager.cs
│ │ │ └── MouseEventExtArgs.cs
│ │ ├── KeyLogger/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── KeyLogger.csproj
│ │ │ ├── NativeWin32.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ ├── Window1.xaml
│ │ │ └── Window1.xaml.cs
│ │ └── KeyLogger.sln
│ ├── ProjectReferenceGraph/
│ │ ├── Program.cs
│ │ ├── Project.cs
│ │ ├── ProjectReferenceGraph.csproj
│ │ ├── ProjectReferenceGraph.sln
│ │ └── Solution.cs
│ ├── RoslynClassifier/
│ │ └── readme.md
│ ├── SyntaxHighlighter/
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── AsmFormatter.cs
│ │ ├── Color.cs
│ │ ├── HtmlParser.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Mode.cs
│ │ ├── RtfParser.cs
│ │ └── SyntaxHighlighter.csproj
│ ├── Tools.sln
│ └── UnicodeService/
│ ├── UnicodeService/
│ │ ├── Pages/
│ │ │ ├── Extensions.cs
│ │ │ ├── Grapheme.cshtml
│ │ │ └── Index.cshtml
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── launchSettings.json
│ │ ├── Startup.cs
│ │ ├── UnicodeService.csproj
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ └── wwwroot/
│ │ └── css/
│ │ └── site.css
│ ├── UnicodeService.sln
│ └── readme.md
├── _config.yml
└── docs/
└── canvas-fill-text.html
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
root = true
[*.{cs,vb}]
charset = utf-8
end_of_line = lf
csharp_style_namespace_declarations=file_scoped:suggestion
dotnet_naming_rule.private_or_internal_field_should_be_begin_with__.severity = suggestion
dotnet_naming_rule.private_or_internal_field_should_be_begin_with__.symbols = private_or_internal_field
dotnet_naming_rule.private_or_internal_field_should_be_begin_with__.style = begin_with__
dotnet_naming_symbols.private_or_internal_field.applicable_kinds = field
dotnet_naming_symbols.private_or_internal_field.applicable_accessibilities = internal, private
dotnet_naming_symbols.private_or_internal_field.required_modifiers =
dotnet_naming_style.begin_with__.required_prefix = _
dotnet_naming_style.begin_with__.required_suffix =
dotnet_naming_style.begin_with__.word_separator =
dotnet_naming_style.begin_with__.capitalization = camel_case
[*.{csproj,props,slnx}]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
================================================
FILE: .gitattributes
================================================
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
.editorconfig text eol=lf
*.cs text eol=lf
*.csproj text eol=lf
*.props text eol=lf
*.sln text eol=lf
*.slnx text eol=lf
*.md text eol=lf
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: ufcpp
#patreon: # Replace with a single Patreon username
#open_collective: # Replace with a single Open Collective username
#ko_fi: # Replace with a single Ko-fi username
#tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
#community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
#liberapay: # Replace with a single Liberapay username
#issuehunt: # Replace with a single IssueHunt username
#otechie: # Replace with a single Otechie username
#custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
================================================
FILE: .gitignore
================================================
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
# User-specific files
*.suo
*.user
*.sln.docstates
*.lock.json
.vs
BenchmarkDotNet.Artifacts
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
build/
bld/
[Bb]in/
[Oo]bj/
# Roslyn cache directories
*.ide/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
#NUNIT
*.VisualState.xml
TestResult.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
*_i.c
*_p.c
*_i.h
*.ilk
*.meta
*.obj
*.pch
*.pdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opensdf
*.sdf
*.cachefile
# Visual Studio profiler
*.psess
*.vsp
*.vspx
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# JustCode is a .NET coding addin-in
.JustCode
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# NCrunch
_NCrunch_*
.*crunch*.local.xml
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# NuGet Packages
*.nupkg
# The packages folder can be ignored because of Package Restore
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# If using the old MSBuild-Integrated Package Restore, uncomment this:
#!**/packages/repositories.config
# Windows Azure Build Output
csx/
*.build.csdef
# Windows Store app package directory
AppPackages/
# Others
sql/
*.Cache
ClientBin/
[Ss]tyle[Cc]op.*
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.pfx
*.publishsettings
node_modules/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
# SQL Server files
*.mdf
*.ldf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
# Microsoft Fakes
FakesAssemblies/
================================================
FILE: BreakingChanges/.gitignore
================================================
*.dll
================================================
FILE: BreakingChanges/BreakingChanges.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.22609.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VS2008_CS3", "VS2008_CS3\VS2008_CS3.csproj", "{2C819A49-E770-42EC-A321-32FC4D28E214}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VS2010_CS4", "VS2010_CS4\VS2010_CS4.csproj", "{D18D1AE4-906E-482E-9716-744929638744}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VS2012_CS5", "VS2012_CS5\VS2012_CS5.csproj", "{B1DD6F07-3D4D-4CBD-AB00-BD1CED9741B3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VS2015_CS6", "VS2015_CS6\VS2015_CS6.csproj", "{77FCE248-EF2D-4D3B-AB10-BC845FA01450}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2C819A49-E770-42EC-A321-32FC4D28E214}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2C819A49-E770-42EC-A321-32FC4D28E214}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C819A49-E770-42EC-A321-32FC4D28E214}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2C819A49-E770-42EC-A321-32FC4D28E214}.Release|Any CPU.Build.0 = Release|Any CPU
{D18D1AE4-906E-482E-9716-744929638744}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D18D1AE4-906E-482E-9716-744929638744}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D18D1AE4-906E-482E-9716-744929638744}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D18D1AE4-906E-482E-9716-744929638744}.Release|Any CPU.Build.0 = Release|Any CPU
{B1DD6F07-3D4D-4CBD-AB00-BD1CED9741B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B1DD6F07-3D4D-4CBD-AB00-BD1CED9741B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B1DD6F07-3D4D-4CBD-AB00-BD1CED9741B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B1DD6F07-3D4D-4CBD-AB00-BD1CED9741B3}.Release|Any CPU.Build.0 = Release|Any CPU
{77FCE248-EF2D-4D3B-AB10-BC845FA01450}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{77FCE248-EF2D-4D3B-AB10-BC845FA01450}.Debug|Any CPU.Build.0 = Debug|Any CPU
{77FCE248-EF2D-4D3B-AB10-BC845FA01450}.Release|Any CPU.ActiveCfg = Release|Any CPU
{77FCE248-EF2D-4D3B-AB10-BC845FA01450}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: BreakingChanges/VS2008_CS3/OverloadResolutionArraysOfPointer.cs
================================================
using System.Collections.Generic;
/// <summary>
/// Changed in VS 2008 SP1
///
/// #1 in https://msdn.microsoft.com/en-us/library/cc713578.aspx
/// Type inference is now included on arrays of pointer types in method overload resolution.
/// </summary>
unsafe class OverloadResolutionArraysOfPointer
{
static void Main()
{
IEnumerable<int*[]> y = null;
Test(y);
}
// Selected by Visual C# 2008 SP1.
static void Test<S>(IEnumerable<S> x) { System.Console.WriteLine("Test<S>(IEnumerable<S> x)"); }
// Selected by Visual C# 2005.
static void Test(object o) { System.Console.WriteLine("Test(object o)"); }
}
================================================
FILE: BreakingChanges/VS2008_CS3/ParamsOverride.cs
================================================
interface I
{
int this[int[] p] { set; }
}
class Base : I
{
// Produces CS0466:
int I.this[params int[] p] { set { } }
}
/// <summary>
/// Changed in VS 2008 SP1
/// Can be compiled in: C# 2, 3 (no SP1)
///
/// #2 in https://msdn.microsoft.com/en-us/library/cc713578.aspx
/// Compiler now produces error CS0466 for indexers and properties in addition to methods.
/// </summary>
/// <remarks>
/// For methods, All versions of C# compilers produce CS0466, which meets the specification. This breaking change for indexers is a bug fix.
/// <code><![CDATA[
/// interface I
/// {
/// void F(int[] p);
/// }
///
/// class Base : I
/// {
/// // Produces CS0466:
/// void I.F(params int[] p) { }
/// }
/// ]]></code>
///
/// FYI, it is legal if the indexer is implicitly implemented:
/// <code><![CDATA[
/// interface I
/// {
/// int this[int[] p] { set; }
/// }
///
/// class Base : I
/// {
/// public int this[params int[] p] { set { } }
/// }
/// ]]></code>
/// </remarks>
class ParamsOverride { static void Main() { } }
================================================
FILE: BreakingChanges/VS2008_CS3/VS2008_CS3.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<LangVersion>3</LangVersion>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
</Project>
================================================
FILE: BreakingChanges/VS2010_CS4/ImplicitConversionCausedByVariance.cs
================================================
using System;
using System.Collections;
using System.Collections.Generic;
/// <summary>
/// Changed in VS 2010
///
/// In https://msdn.microsoft.com/en-us/library/vstudio/ee855831.aspx
/// A new implicit conversion is added for generic interfaces and delegates such as <see cref="IEnumerable{T}"/> and <see cref="Func{TResult}"/>.
/// </summary>
/// <remarks>
/// Type parameter T of <see cref="IEnumerable{T}"/> has been covariant since .NET 4 (VS 2010).
///
/// <code><![CDATA[
/// IEnumerable<string> s;
///
/// IEnumerable x = s; // OK in all versions. IEnumerable<string> is inherited from IEnumerable.
/// IEnumerable<object> y = s; // OK in .NET 4 or later. string is inherited from object, so IEnumerable<string> can be treated like a subtype of IEnumerable<object> because of covariance.
/// ]]></code>
/// </remarks>
class ImplicitConversionCausedByVariance
{
public static void Test(IEnumerable e)
{
Console.WriteLine("IEnumerable");
}
public static void Test(IEnumerable<object> e)
{
Console.WriteLine("IEnumerable<object>");
}
static void Main(string[] args)
{
Test(new List<string>());
// Prints different results.
// C# 2008: IEnumerable
// C# 2010: IEnumerable<object>
IEnumerable<string> strings =
new List<string>();
if (strings is IEnumerable<object>)
Console.WriteLine("True");
else
Console.WriteLine("False");
// Prints different results.
// C# 2008: False
// C# 2010: True
}
}
================================================
FILE: BreakingChanges/VS2010_CS4/VS2010_CS4.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<LangVersion>4</LangVersion>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
</Project>
================================================
FILE: BreakingChanges/VS2012_CS5/IterationVariableOfForeach.cs
================================================
using System;
using System.Collections.Generic;
/// <summary>
/// Changed in VS 2012
///
/// In https://msdn.microsoft.com/en-us/library/hh678682(v=vs.110).aspx
/// You can use the iteration variable of a foreach statement in a lambda expression that’s contained in the body of the loop.
/// </summary>
class IterationVariableOfForeach
{
static void Main()
{
var methods = new List<Action>();
foreach (var word in new string[] { "hello", "world" })
{
methods.Add(() => Console.Write(word + " "));
}
methods[0]();
methods[1]();
}
// Output in Visual Studio 2012:
// hello world
// Output in Visual Studio 2010:
// world world
}
================================================
FILE: BreakingChanges/VS2012_CS5/VS2012_CS5.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<LangVersion>5</LangVersion>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
</Project>
================================================
FILE: BreakingChanges/VS2015_CS6/CyclicalConstructorChaining.cs
================================================
class C
{
public C(int x) : this() { }
public C() : this(0) { }
}
// In C# it is a compile-time error to write a constructor that recursively chains directly to itself
//class C1
//{
// public C(int x) : this(x + 1) { }
//}
class CyclicalConstructorChaining
{
static void Main() { }
}
================================================
FILE: BreakingChanges/VS2015_CS6/DefiniteAssignment.cs
================================================
/// <summary>
/// Can be compiled in: C# 2, 6
///
/// https://github.com/dotnet/roslyn/blob/master/docs/compilers/CSharp/Definite%20Assignment.md
/// </summary>
class DefiniteAssignment
{
static void Main(string[] args)
{
int x;
if (false && x == 3) // Dev10 does not consider x definitely assigned
{
x = x + 1;
}
}
}
================================================
FILE: BreakingChanges/VS2015_CS6/EnumBaseTypeSystemInt32.cs
================================================
enum X : System.Int32
{
A, B, C,
}
/// <summary>
/// Can be compiled in: C# 6
///
/// Changed: enum base type can be a type expression like System.Int32
/// </summary>
/// <remarks>
/// The ealier versions produce:
/// error CS1008: Type byte, sbyte, short, ushort, int, uint, long, or ulong expected
/// </remarks>
class EnumBaseTypeSystemInt32 { static void Main() { } }
================================================
FILE: BreakingChanges/VS2015_CS6/FuncOfFuncTypeInference.cs
================================================
using System;
class FuncOfFuncTypeInference
{
static void Main()
{
X(() => () => 10);
Y(() => () => 10);
}
private static int X(Func<Func<int>> f) { return f()(); }
private static int X(Func<Func<int?>> f) { return f()() ?? 0; }
private static int Y(Func<Func<int>> f) { return f()(); }
private static double Y(Func<Func<double>> f) { return f()(); }
}
================================================
FILE: BreakingChanges/VS2015_CS6/InvariantMeaningInBlock.cs
================================================
/// <summary>
/// Can be compiled in: C# 6
///
/// https://github.com/dotnet/roslyn/issues/2110
///
/// The C# specification had "invariant meaning" rule: https://msdn.microsoft.com/en-us/library/aa691351(v=vs.71).aspx
/// Roslyn has gotten rid of the "invariant meaning" rule.
/// </summary>
class InvariantMeaningInBlock
{
double x;
void F(bool b)
{
x = 1.0;
if (b)
{
int x;
x = 1;
}
}
#if false
// FYI
void F1(bool b)
{
if (b)
{
int x; // generates CS0136 still in C# 6.0.
x = 1;
}
int x = 1.0;
}
#endif
static void Main()
{
var x = new InvariantMeaningInBlock();
x.F(true);
x.F(false);
}
}
================================================
FILE: BreakingChanges/VS2015_CS6/KatakanaMiddleDot.cs
================================================
using System;
/// <summary>
/// Can be compiled in: C# 2, 3, 4, 5
///
/// Breaking Change in C# 6.0, Roslyn new compiler.
/// Katakana Middle Dot "・" (カタカナ中点、中黒、U+30FB) no longer available for identifiers in C# 6.0.
/// </summary>
/// <remarks>
/// Katakana Middle Dot is a Japanese character whose usage is similar to hyphen in English.
/// Its Unicode class was Pc (Punctuation, Connector) in Unicode 5.1 or older, but it becomes Po (Punctuation, Other).
/// Pc characters can be used for C# identifiers, but Po cannot.
/// Looks like Roslyn adopts Unicode 6.0 or newer, so Katakana Middle Dot cannot be used for identifiers in C# 6.0. Java 7 has faced the same problem.
/// </remarks>
class KatakanaMiddleDot
{
static void Main(string[] args)
{
int x・y = 10;
Console.WriteLine(x・y);
}
}
================================================
FILE: BreakingChanges/VS2015_CS6/VS2015_CS6.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<LangVersion>6</LangVersion>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
</PropertyGroup>
</Project>
================================================
FILE: BreakingChanges/a.cs
================================================
using System;
interface X<in U, out T>
{
Func<U, T> X(Func<T, U> f);
}
class P
{
static void Main() { }
}
================================================
FILE: BreakingChanges/csc-all.ps1
================================================
$sourceCodes = ls *.cs -Recurse | ?{ ($_ -notmatch '\\obj\\') -and ($_ -notmatch '\\Properties\\') }
foreach ($src in $sourceCodes)
{
cls
$x = $src.FullName.Split('\\')
$name = $x[$x.Length - 2] + '/' + $x[$x.Length - 1]
Write-Host $name
Write-Host
.\read-summary.ps1 $src
Write-Host
.\csc.ps1 $src
Write-Host
Write-Host [press enter to continue]
Read-Host
}
================================================
FILE: BreakingChanges/csc.ps1
================================================
param([string] $src)
$compilers = @(
@{ 'compiler' = $env:windir + '\Microsoft.NET\Framework64\v2.0.50727\csc.exe'; 'color' = 'DarkCyan' }
@{ 'compiler' = $env:windir + '\Microsoft.NET\Framework64\v3.5\csc.exe' ; 'color' = 'DarkMagenta' }
@{ 'compiler' = $env:windir + '\Microsoft.NET\Framework64\v4.0.30319\csc.exe'; 'color' = 'DarkGreen' }
@{ 'compiler' = ${env:ProgramFiles(x86)} + '\MSBuild\12.0\Bin\csc.exe' ; 'color' = 'DarkRed' }
@{ 'compiler' = ${env:ProgramFiles(x86)} + '\MSBuild\14.0\Bin\csc.exe' ; 'color' = 'DarkYellow' }
@{ 'compiler' = ${env:ProgramFiles(x86)} + '\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\csc.exe' ; 'color' = 'DarkBlue' }
)
$line = '━' * 40
foreach($item in $compilers)
{
. {
$line
. $item.compiler -out:out.exe $src /unsafe+
if(Test-Path out.exe)
{
.\out.exe
[void](rm out.exe)
}
} | Write-Host -ForegroundColor $item.color
}
================================================
FILE: BreakingChanges/read-summary.ps1
================================================
param([string] $src)
$state = 0
Get-Content $src | % {
if($state -eq 0)
{
if($_ -match '\<summary\>')
{
$state = 1
}
}
elseif($state -eq 1)
{
if($_ -match '\<\/summary\>')
{
$state = 2
}
else
{
$_.Replace('///', '')
}
}
}
================================================
FILE: Chapters/Algorithm/Algorithm.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<Nullable>disable</Nullable>
</PropertyGroup>
</Project>
================================================
FILE: Chapters/Algorithm/Algorithm.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23103.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Algorithm", "Algorithm.csproj", "{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: Chapters/Algorithm/App.config
================================================
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
</startup>
</configuration>
================================================
FILE: Chapters/Algorithm/Collections/ArrayList.cs
================================================
using System.Collections.Generic;
namespace Collections
{
/// <summary>
/// 配列リスト。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
public class ArrayList<T> : IEnumerable<T>
{
#region フィールド
T[] data;
int count;
#endregion
#region 初期化
public ArrayList() : this(256) {}
/// <summary>
/// 初期最大容量を指定して初期化。
/// </summary>
/// <param name="capacity">初期最大容量</param>
public ArrayList(int capacity)
{
this.data = new T[capacity];
this.count = 0;
}
#endregion
#region プロパティ
/// <summary>
/// 格納されている要素数。
/// </summary>
public int Count
{
get { return this.count; }
}
/// <summary>
/// i 番目の要素を読み書き。
/// </summary>
/// <param name="i">読み書き位置</param>
/// <returns>読み出した要素</returns>
public T this[int i]
{
get { return this.data[i]; }
set { this.data[i] = value; }
}
#endregion
#region 挿入・削除
/// <summary>
/// 配列を確保しなおす。
/// </summary>
/// <remarks>
/// 配列長は2倍ずつ拡張していきます。
/// </remarks>
void Extend()
{
T[] data = new T[this.data.Length * 2];
for (int i = 0; i < this.data.Length; ++i) data[i] = this.data[i];
this.data = data;
}
/// <summary>
/// i 番目の位置に新しい要素を追加。
/// </summary>
/// <param name="i">追加位置</param>
/// <param name="elem">追加する要素</param>
public void Insert(int i, T elem)
{
if (this.count >= this.data.Length)
this.Extend();
for (int n = this.count; n > i; --n)
{
this.data[n] = this.data[n - 1];
}
this.data[i] = elem;
++this.count;
}
/// <summary>
/// 末尾に新しい要素を追加。
/// </summary>
/// <param name="elem">追加する要素</param>
public void InsertLast(T elem)
{
if (this.count >= this.data.Length)
this.Extend();
this.data[this.count] = elem;
++this.count;
}
/// <summary>
/// i 番目の要素を削除。
/// </summary>
/// <param name="i">削除位置</param>
public void Erase(int i)
{
for (int n = i; n < this.count - 1; ++n)
{
this.data[n] = this.data[n + 1];
}
--this.count;
}
/// <summary>
/// 末尾の要素を削除。
/// </summary>
public void EraseLast()
{
--this.count;
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < this.count; ++i)
yield return this.data[i];
}
System.Collections.IEnumerator
System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/BinaryTree.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Collections
{
/// <summary>
/// 2分探索木。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
class BinaryTree<T> : ISet<T>
where T: IComparable<T>
{
#region 内部クラス
/// <summary>
/// 2文探索木のノード。
/// </summary>
public class Node
{
#region フィールド
internal T val;
internal Node left, right, parent;
#endregion
#region 初期化
internal Node() : this(default(T), null) { }
internal Node(T val, Node parent)
{
this.val = val;
this.parent = parent;
this.left = this.right = null;
}
#endregion
#region プロパティ
/// <summary>
/// 格納している要素を取得。
/// </summary>
public T Value
{
get { return this.val; }
set { this.val = value; }
}
/// <summary>
/// このノードの次のノードを返す。
/// (要素の値の小さい順にノードをたどる。)
/// </summary>
public Node Next
{
get
{
Node n = this;
if (n.right != null)
return n.right.Min;
for (; n.parent != null && n.parent.left != n; n = n.parent) ;
return n.parent;
}
}
/// <summary>
/// このノードの前のノードを返す。
/// (要素の値の小さい順にノードをたどる。)
/// </summary>
public Node Previous
{
get
{
Node n = this;
if (n.left != null)
return n.left.Max;
for (; n.parent != null && n.parent.right != n; n = n.parent) ;
return n.parent;
}
}
/// <summary>
/// このノード以下の部分木中で、最小の要素を持つノード(=左端ノード)を返す。
/// </summary>
internal Node Min
{
get
{
Node n = this;
for (; n.left != null; n = n.left) ;
return n;
}
}
/// <summary>
/// このノード以下の部分木中で、最大の要素を持つノード(=右端ノード)を返す。
/// </summary>
internal Node Max
{
get
{
Node n = this;
for (; n.right != null; n = n.right) ;
return n;
}
}
#endregion
#region デバッグ用
[System.Diagnostics.Conditional("DEBUG")]
virtual public void Output(System.IO.TextWriter writer, int level)
{
for (int i = 0; i < level; ++i)
writer.Write("\t");
writer.Write("{0}\n", this.val);
++level;
if (this.left != null) this.left.Output(writer, level);
else
{
for (int i = 0; i < level; ++i)
writer.Write("\t");
writer.Write("null\n");
}
if (this.right != null) this.right.Output(writer, level);
else
{
for (int i = 0; i < level; ++i)
writer.Write("\t");
writer.Write("null\n");
}
}
#endregion
}
#endregion
#region フィールド
/// <summary>
/// 根ノード。
/// </summary>
Node root;
#endregion
#region 初期化
public BinaryTree()
{
this.root = null;
}
#endregion
#region プロパティ
/// <summary>
/// 木構造を逐次探索する際の始点。
/// </summary>
public Node Begin
{
get
{
if (this.root == null)
return this.End;
return this.root.Min;
}
}
/// <summary>
/// 木構造を逐次探索する際の終端(末尾よりも後ろの番兵に当たるノード)。
/// </summary>
public Node End
{
get { return null; }
}
#endregion
#region 要素の挿入・削除・検索
/// <summary>
/// 新しい要素を挿入する。
/// </summary>
/// <param name="elem">新しい要素</param>
/// <returns>新しい要素を格納するノード</returns>
public void Insert(T elem)
{
if (this.root == null)
{
this.root = new Node(elem, null);
return;
}
Node n = this.root;
Node p = null;
while (n != null)
{
p = n;
if (n.val.CompareTo(elem) > 0) n = n.left;
else n = n.right;
}
n = new Node(elem, p);
if (p.val.CompareTo(elem) > 0) p.left = n;
else p.right = n;
}
/// <summary>
/// n の片方の子は null、もう片方の子は m という前提の元で、
/// ノード n の位置を子ノード m で置き換える。
/// </summary>
/// <param name="n">削除するノード</param>
/// <param name="m">置き換える子ノード</param>
void Replace(Node n, Node m)
{
Node p = n.parent;
if (m != null) m.parent = p;
if (n == this.root) this.root = m;
else if (p.left == n) p.left = m;
else p.right = m;
}
/// <summary>
/// ノード n を削除する。
/// </summary>
/// <param name="n">削除したいノード</param>
public void Erase(Node n)
{
if (n == null) return;
if (n.left == null) this.Replace(n, n.right);
else if(n.right == null) this.Replace(n, n.left);
else
{
Node m = n.right.Min;
n.Value = m.Value;
this.Replace(m, m.right);
}
}
/// <summary>
/// 要素を削除する。
/// </summary>
/// <param name="elem">削除したい要素</param>
public void Erase(T elem)
{
this.Erase(this.Find(elem));
}
/// <summary>
/// ある値を持つノードを検索。
/// (同じ値が複数ある場合、最初のノード。)
/// 見つからなかった場合は null を返す。
/// </summary>
/// <param name="elem">探したい要素</param>
/// <returns>見つけたノード</returns>
public Node Find(T elem)
{
Node n = this.root;
while (n != null)
{
if (n.val.CompareTo(elem) > 0) n = n.left;
else if (n.val.CompareTo(elem) < 0) n = n.right;
else break;
}
return n;
}
public bool Contains(T elem)
{
return this.Find(elem) != this.End;
}
/// <summary>
/// ある値のノードを検索。
/// (同じ値を持つノード全部を IEnumerable で一覧として返す。)
/// </summary>
/// <param name="elem">探したい要素</param>
/// <returns>見つけたノード一覧</returns>
public IEnumerable<T> FindRange(T elem)
{
for (Node n = this.Find(elem); n != this.End && n.Value.CompareTo(elem) == 0; n = n.Next)
yield return n.Value;
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<T> GetEnumerator()
{
for (Node n = this.Begin; n != this.End; n = n.Next)
yield return n.Value;
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
#region デバッグ用
[System.Diagnostics.Conditional("DEBUG")]
public void Output(System.IO.TextWriter writer)
{
if (this.root != null)
this.root.Output(writer, 0);
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/CircularBuffer.cs
================================================
using System.Collections.Generic;
namespace Collections
{
/// <summary>
/// 循環バッファ。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
public class CircularBuffer<T> : IEnumerable<T>
{
#region フィールド
T[] data;
int top, bottom;
int mask;
#endregion
#region 初期化
public CircularBuffer() : this(256) {}
/// <summary>
/// 初期最大容量を指定して初期化。
/// </summary>
/// <param name="capacity">初期最大容量</param>
public CircularBuffer(int capacity)
{
capacity = Pow2((uint)capacity);
this.data = new T[capacity];
this.top = this.bottom = 0;
this.mask = capacity - 1;
}
static int Pow2(uint n)
{
--n;
int p = 0;
for (; n != 0; n >>= 1) p = (p << 1) + 1;
return p + 1;
}
#endregion
#region プロパティ
/// <summary>
/// 格納されている要素数。
/// </summary>
public int Count
{
get
{
int count = this.bottom - this.top;
if (count < 0) count += this.data.Length;
return count;
}
}
/// <summary>
/// i 番目の要素を読み書き。
/// </summary>
/// <param name="i">読み書き位置</param>
/// <returns>読み出した要素</returns>
public T this[int i]
{
get { return this.data[(i + this.top) & this.mask]; }
set { this.data[(i + this.top) & this.mask] = value; }
}
#endregion
#region 挿入・削除
/// <summary>
/// 配列を確保しなおす。
/// </summary>
/// <remarks>
/// 配列長は2倍ずつ拡張していきます。
/// </remarks>
void Extend()
{
T[] data = new T[this.data.Length * 2];
int i = 0;
foreach (T elem in this)
{
data[i] = elem;
++i;
}
this.top = 0;
this.bottom = this.Count;
this.data = data;
this.mask = data.Length - 1;
}
/// <summary>
/// i 番目の位置に新しい要素を追加。
/// </summary>
/// <param name="i">追加位置</param>
/// <param name="elem">追加する要素</param>
public void Insert(int i, T elem)
{
if (this.Count >= this.data.Length - 1)
this.Extend();
if (i < this.Count / 2)
{
for (int n = 0; n <= i; ++n)
{
this[n - 1] = this[n];
}
this.top = (this.top - 1) & this.mask;
this[i] = elem;
}
else
{
for (int n = this.Count; n > i; --n)
{
this[n] = this[n - 1];
}
this[i] = elem;
this.bottom = (this.bottom + 1) & this.mask;
}
}
/// <summary>
/// 先頭に新しい要素を追加。
/// </summary>
/// <param name="elem">追加する要素</param>
public void InsertFirst(T elem)
{
if (this.Count >= this.data.Length - 1)
this.Extend();
this.top = (this.top - 1) & this.mask;
this.data[this.top] = elem;
}
/// <summary>
/// 末尾に新しい要素を追加。
/// </summary>
/// <param name="elem">追加する要素</param>
public void InsertLast(T elem)
{
if (this.Count >= this.data.Length - 1)
this.Extend();
this.data[this.bottom] = elem;
this.bottom = (this.bottom + 1) & this.mask;
}
/// <summary>
/// i 番目の要素を削除。
/// </summary>
/// <param name="i">削除位置</param>
public void Erase(int i)
{
for (int n = i; n < this.Count - 1; ++n)
{
this[n] = this[n + 1];
}
this.bottom = (this.bottom - 1) & this.mask;
}
/// <summary>
/// 先頭の要素を削除。
/// </summary>
public void EraseFirst()
{
this.top = (this.top + 1) & this.mask;
}
/// <summary>
/// 末尾の要素を削除。
/// </summary>
public void EraseLast()
{
this.bottom = (this.bottom - 1) & this.mask;
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<T> GetEnumerator()
{
if (this.top <= this.bottom)
{
for (int i = this.top; i < this.bottom; ++i)
yield return this.data[i];
}
else
{
for (int i = this.top; i < this.data.Length; ++i)
yield return this.data[i];
for (int i = 0; i < this.bottom; ++i)
yield return this.data[i];
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/Dictionary.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Collections
{
/// <summary>
/// 辞書。
/// </summary>
/// <typeparam name="TKey">鍵の型</typeparam>
/// <typeparam name="TValue">値の型</typeparam>
public interface IDictionary<TKey, TValue>
: IEnumerable<KeyValuePair<TKey, TValue>>
{
/// <summary>
/// 新しい要素の挿入。
/// </summary>
/// <param name="key">新しい要素の鍵</param>
/// <param name="elem">新しい要素の値</param>
void Insert(TKey key, TValue val);
/// <summary>
/// 要素の削除。
/// </summary>
/// <param name="elem">削除したい要素</param>
void Erase(TKey key);
/// <summary>
/// 要素を含むかどうか。
/// </summary>
/// <param name="elem">検索したい要素</param>
/// <returns>見つかった場合 true</returns>
bool Contains(TKey key);
/// <summary>
/// [] を使って値を取り出す。
/// </summary>
/// <param name="key">鍵</param>
/// <returns>値</returns>
TValue this[TKey key]
{
set;
get;
}
/// <summary>
/// 鍵一覧取得
/// </summary>
IEnumerable<TKey> Keys { get; }
/// <summary>
/// 値一覧取得
/// </summary>
IEnumerable<TValue> Values { get; }
}
/// <summary>
/// 辞書のエントリー。
/// </summary>
/// <typeparam name="TKey">鍵の型</typeparam>
/// <typeparam name="TValue">値の型</typeparam>
internal class Entry<TKey, TValue>
{
internal TKey key;
internal TValue val;
internal Entry(TKey key) : this(key, default(TValue)) { }
internal Entry(TKey key, TValue val)
{
this.key = key;
this.val = val;
}
#region object メンバ
public override int GetHashCode()
{
return this.key.GetHashCode();
}
public override bool Equals(object obj)
{
Entry<TKey, TValue> ent = obj as Entry<TKey, TValue>;
if (ent == null) return false;
return this.key.Equals(ent.key);
}
#endregion
}
/// <summary>
/// 辞書のエントリー。
/// (SortedArray, Tree 用)
/// 鍵が IComparable を実装している必要あり。
/// </summary>
/// <typeparam name="TKey">鍵の型</typeparam>
/// <typeparam name="TValue">値の型</typeparam>
internal class ComparableEntry<TKey, TValue>
: Entry<TKey, TValue>,
IComparable<ComparableEntry<TKey, TValue>>
where TKey : IComparable<TKey>
{
internal ComparableEntry(TKey key) : base(key) { }
internal ComparableEntry(TKey key, TValue val) : base(key, val) { }
#region IComparable<ComparableEntry<TKey,TValue>> メンバ
public int CompareTo(ComparableEntry<TKey, TValue> other)
{
return this.key.CompareTo(other.key);
}
#endregion
}
public class HashDictionary<TKey, TValue> : IDictionary<TKey, TValue>
{
#region フィールド
HashTable<Entry<TKey, TValue>> table;
#endregion
#region 初期化
public HashDictionary() : this(256) { }
public HashDictionary(int capacity)
{
this.table = new HashTable<Entry<TKey, TValue>>(capacity);
}
#endregion
#region IDictionary<TKey,TValue> メンバ
public void Insert(TKey key, TValue val)
{
this.table.Insert(new Entry<TKey, TValue>(key, val));
}
public void Erase(TKey key)
{
this.table.Erase(new Entry<TKey, TValue>(key));
}
public bool Contains(TKey key)
{
return this.table.Contains(new Entry<TKey, TValue>(key));
}
public TValue this[TKey key]
{
get
{
Entry<TKey, TValue> entry = this.table.Find(new Entry<TKey, TValue>(key));
if (entry == null) return default(TValue);
return entry.val;
}
set
{
Entry<TKey, TValue> entry = this.table.Find(new Entry<TKey, TValue>(key));
if (entry == null) this.Insert(key, value);
else entry.val = value;
}
}
public IEnumerable<TKey> Keys
{
get
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return ent.key;
}
}
}
public IEnumerable<TValue> Values
{
get
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return ent.val;
}
}
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return new KeyValuePair<TKey, TValue>(ent.key, ent.val);
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
public class SortedDictionary<TKey, TValue> : IDictionary<TKey, TValue>
where TKey : IComparable<TKey>
{
#region フィールド
SortedArray<ComparableEntry<TKey, TValue>> table;
#endregion
#region 初期化
public SortedDictionary() : this(256) { }
public SortedDictionary(int capacity)
{
this.table = new SortedArray<ComparableEntry<TKey, TValue>>(capacity);
}
#endregion
#region IDictionary<TKey,TValue> メンバ
public void Insert(TKey key, TValue val)
{
this.table.Insert(new ComparableEntry<TKey, TValue>(key, val));
}
public void Erase(TKey key)
{
this.table.Erase(new ComparableEntry<TKey, TValue>(key));
}
public bool Contains(TKey key)
{
return this.table.Contains(new ComparableEntry<TKey, TValue>(key));
}
public TValue this[TKey key]
{
get
{
ComparableEntry<TKey, TValue> entry = this.table.Find(new ComparableEntry<TKey, TValue>(key));
if (entry == null) return default(TValue);
return entry.val;
}
set
{
ComparableEntry<TKey, TValue> entry = this.table.Find(new ComparableEntry<TKey, TValue>(key));
if (entry == null) this.Insert(key, value);
else entry.val = value;
}
}
public IEnumerable<TKey> Keys
{
get
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return ent.key;
}
}
}
public IEnumerable<TValue> Values
{
get
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return ent.val;
}
}
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return new KeyValuePair<TKey, TValue>(ent.key, ent.val);
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
public class TreeDictionary<TKey, TValue> : IDictionary<TKey, TValue>
where TKey : IComparable<TKey>
{
#region フィールド
BinaryTree<ComparableEntry<TKey, TValue>> table;
#endregion
#region 初期化
public TreeDictionary()
{
this.table = new BinaryTree<ComparableEntry<TKey, TValue>>();
}
#endregion
#region IDictionary<TKey,TValue> メンバ
public void Insert(TKey key, TValue val)
{
this.table.Insert(new ComparableEntry<TKey, TValue>(key, val));
}
public void Erase(TKey key)
{
this.table.Erase(new ComparableEntry<TKey, TValue>(key));
}
public bool Contains(TKey key)
{
return this.table.Contains(new ComparableEntry<TKey, TValue>(key));
}
public TValue this[TKey key]
{
get
{
BinaryTree<ComparableEntry<TKey, TValue>>.Node node
= this.table.Find(new ComparableEntry<TKey, TValue>(key));
if (node == null) return default(TValue);
return node.Value.val;
}
set
{
BinaryTree<ComparableEntry<TKey, TValue>>.Node node
= this.table.Find(new ComparableEntry<TKey, TValue>(key));
if (node == null) this.Insert(key, value);
else node.Value.val = value;
}
}
public IEnumerable<TKey> Keys
{
get
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return ent.key;
}
}
}
public IEnumerable<TValue> Values
{
get
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return ent.val;
}
}
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
{
foreach (Entry<TKey, TValue> ent in this.table)
{
yield return new KeyValuePair<TKey, TValue>(ent.key, ent.val);
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/ForwardLinkedList.cs
================================================
using System.Collections.Generic;
namespace Collections
{
/// <summary>
/// 片方向連結リスト。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
public class ForwardLinkedList<T> : IEnumerable<T>
{
#region 内部クラス
/// <summary>
/// 片方向連結リストのノード。
/// </summary>
public class Node
{
#region フィールド
T val;
Node next;
#endregion
#region 初期化
internal Node(T val, Node next)
{
this.val = val;
this.next = next;
}
#endregion
#region プロパティ
/// <summary>
/// 格納している要素を取得。
/// </summary>
public T Value
{
get { return this.val; }
set { this.val = value; }
}
/// <summary>
/// 次のノード。
/// </summary>
public Node Next
{
get { return this.next; }
internal set { this.next = value; }
}
#endregion
}
#endregion
#region フィールド
Node first;
#endregion
#region 初期化
public ForwardLinkedList()
{
this.first = null;
}
#endregion
#region プロパティ
/// <summary>
/// リストの先頭ノード。
/// </summary>
public Node First
{
get { return this.first; }
}
/// <summary>
/// 要素の個数。
/// </summary>
public int Count
{
get
{
int i = 0;
for(Node n = this.first; n!=null; n=n.Next)
++i;
return i;
}
}
#endregion
#region 挿入・削除
/// <summary>
/// ノード n の後ろに新しい要素を追加。
/// </summary>
/// <param name="n">要素の挿入位置</param>
/// <param name="elem">新しい要素</param>
/// <returns>新しく挿入されたノード</returns>
public Node InsertAfter(Node n, T elem)
{
Node m = new Node(elem, n.Next);
n.Next = m;
return m;
}
/// <summary>
/// 先頭に新しい要素を追加。
/// </summary>
/// <param name="elem">新しい要素</param>
/// <returns>新しく挿入されたノード</returns>
public Node InsertFirst(T elem)
{
Node m = new Node(elem, this.first);
this.first = m;
return m;
}
/// <summary>
/// ノード n の後ろの要素を削除。
/// </summary>
/// <param name="n">要素の削除位置</param>
public void EraseAfter(Node n)
{
if (n != null && n.Next != null)
n.Next = n.Next.Next;
}
/// <summary>
/// ノード n の自身を削除。
/// </summary>
/// <param name="n">要素の削除位置</param>
/// <returns>削除した要素の次のノード</returns>
public Node Erase(Node n)
{
Node prev = this.first;
for (; prev != null && prev.Next != n; prev = prev.Next) ;
if (prev == this.first)
{
this.first = null;
return null;
}
if (prev != null)
{
this.EraseAfter(prev);
return prev.Next;
}
return null;
}
/// <summary>
/// 先頭の要素を削除。
/// </summary>
public void EraseFirst()
{
if (this.first != null)
this.first = this.first.Next;
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<T> GetEnumerator()
{
for (Node n = this.first; n != null; n = n.Next)
yield return n.Value;
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/HashTable.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Collections
{
/// <summary>
/// ハッシュテーブル。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
class HashTable<T> : ISet<T>
{
#region 内部クラス
class Node
{
internal T val;
internal Node next;
internal Node(T val, Node next)
{
this.val = val;
this.next = next;
}
}
#endregion
#region フィールド
Node[] table;
int mask;
#endregion
#region 初期化
public HashTable() : this(256) { }
public HashTable(int capacity)
{
capacity = Pow2((uint)capacity);
this.mask = capacity - 1;
this.table = new Node[capacity];
}
static int Pow2(uint n)
{
--n;
int p = 0;
for (; n != 0; n >>= 1) p = (p << 1) + 1;
return p + 1;
}
#endregion
#region 挿入・削除・検索
/// <summary>
/// 要素の挿入。
/// </summary>
/// <param name="elem">挿入する要素</param>
public void Insert(T elem)
{
int code = elem.GetHashCode() & this.mask;
Node n = this.table[code];
Node m = new Node(elem, n);
m.next = n;
this.table[code] = m;
}
/// <summary>
/// 要素の削除。
/// </summary>
/// <param name="elem">削除する要素</param>
public void Erase(T elem)
{
int code = elem.GetHashCode() & this.mask;
Node n = this.table[code];
if (n == null) return;
if (n.next == null)
this.table[code] = null;
while (n.next != null && n.next.val.Equals(elem)) n = n.next;
if(n.next != null)
n.next = n.next.next;
}
/// <summary>
/// テーブル中に要素が含まれているかどうか判別。
/// </summary>
/// <param name="elem">探したい要素</param>
/// <returns>含まれていれば true</returns>
public bool Contains(T elem)
{
int code = elem.GetHashCode() & this.mask;
Node n = this.table[code];
while (n != null && !n.val.Equals(elem)) n = n.next;
return n != null;
}
/// <summary>
/// テーブル中の要素を検索。
/// </summary>
/// <param name="elem">探したい要素</param>
/// <returns>含まれていればその要素を、なければ default(T)</returns>
public T Find(T elem)
{
int code = elem.GetHashCode();
Node n = this.table[code & this.mask];
while (n != null && !n.val.Equals(elem)) n = n.next;
if (n == null) return default(T);
return n.val;
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < this.table.Length; ++i)
for (Node n = this.table[i]; n != null; n = n.next)
yield return n.val;
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/LinkedList.cs
================================================
using System.Collections.Generic;
namespace Collections
{
/// <summary>
/// 双方向連結リスト。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
public class LinkedList<T> : IEnumerable<T>
{
#region 内部クラス
/// <summary>
/// 連結リストのノード。
/// </summary>
public class Node
{
#region フィールド
T val;
Node prev;
Node next;
#endregion
#region 初期化
internal Node(T val, Node prev, Node next)
{
this.val = val;
this.prev = prev;
this.next = next;
}
#endregion
#region プロパティ
/// <summary>
/// 格納している要素を取得。
/// </summary>
public T Value
{
get { return this.val; }
set { this.val = value; }
}
/// <summary>
/// 次のノード。
/// </summary>
public Node Next
{
get { return this.next; }
internal set { this.next = value; }
}
/// <summary>
/// 次のノード。
/// </summary>
public Node Previous
{
get { return this.prev; }
internal set { this.prev = value; }
}
#endregion
}
#endregion
#region フィールド
Node dummy;
#endregion
#region 初期化
public LinkedList()
{
this.dummy = new Node(default(T), null, null);
this.dummy.Next = this.dummy;
this.dummy.Previous = this.dummy;
}
#endregion
#region プロパティ
/// <summary>
/// リストの先頭ノード。
/// </summary>
public Node First
{
get { return this.dummy.Next; }
}
/// <summary>
/// リストの末尾ノード。
/// </summary>
public Node Last
{
get { return this.dummy.Previous; }
}
/// <summary>
/// リストの終端(末尾よりも後ろの番兵に当たるノード)。
/// </summary>
public Node End
{
get { return this.dummy; }
}
/// <summary>
/// 要素の個数。
/// </summary>
public int Count
{
get
{
int i = 0;
for (Node n = this.First; n != this.End; n = n.Next)
++i;
return i;
}
}
#endregion
#region 挿入・削除
/// <summary>
/// ノード n の後ろに新しい要素を追加。
/// </summary>
/// <param name="n">要素の挿入位置</param>
/// <param name="elem">新しい要素</param>
/// <returns>新しく挿入されたノード</returns>
public Node InsertAfter(Node n, T elem)
{
Node m = new Node(elem, n, n.Next);
n.Next.Previous = m;
n.Next = m;
return m;
}
/// <summary>
/// ノード n の前に新しい要素を追加。
/// </summary>
/// <param name="n">要素の挿入位置</param>
/// <param name="elem">新しい要素</param>
/// <returns>新しく挿入されたノード</returns>
public Node InsertBefore(Node n, T elem)
{
Node m = new Node(elem, n.Previous, n);
n.Previous.Next = m;
n.Previous = m;
return m;
}
/// <summary>
/// 先頭に新しい要素を追加。
/// </summary>
/// <param name="elem">新しい要素</param>
/// <returns>新しく挿入されたノード</returns>
public Node InsertFirst(T elem)
{
return this.InsertAfter(this.dummy, elem);
}
/// <summary>
/// 末尾に新しい要素を追加。
/// </summary>
/// <param name="elem">新しい要素</param>
/// <returns>新しく挿入されたノード</returns>
public Node InsertLast(T elem)
{
return this.InsertBefore(this.dummy, elem);
}
/// <summary>
/// ノード n の自身を削除。
/// </summary>
/// <param name="n">要素の削除位置</param>
/// <returns>削除した要素の次のノード</returns>
public Node Erase(Node n)
{
if (n == this.dummy)
{
return this.dummy;
}
n.Previous.Next = n.Next;
n.Next.Previous = n.Previous;
return n.Next;
}
/// <summary>
/// 先頭の要素を削除。
/// </summary>
public void EraseFirst()
{
this.Erase(this.First);
}
/// <summary>
/// 末尾の要素を削除。
/// </summary>
public void EraseLast()
{
this.Erase(this.Last);
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<T> GetEnumerator()
{
for (Node n = this.First; n != this.End; n = n.Next)
yield return n.Value;
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/PriorityQueue.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Collections
{
/// <summary>
/// 優先度付き待ち行列
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
class PriorityQueue<T>
where T : IComparable<T>
{
#region フィールド
ArrayList<T> buffer;
#endregion
#region 初期化
public PriorityQueue() { this.buffer = new ArrayList<T>(); }
public PriorityQueue(int capacity) { this.buffer = new ArrayList<T>(capacity); }
#endregion
#region ヒープ操作
/// <summary>
/// ヒープ化されている配列リストに新しい要素を追加する。
/// </summary>
/// <param name="array">対象の配列リスト</param>
static void PushHeap(ArrayList<T> array, T elem)
{
int n = array.Count;
array.InsertLast(elem);
while (n != 0)
{
int i = (n - 1) / 2;
if (array[n].CompareTo(array[i]) > 0)
{
T tmp = array[n]; array[n] = array[i]; array[i] = tmp;
}
n = i;
}
}
/// <summary>
/// ヒープから最大値を削除する。
/// </summary>
/// <param name="array">対象の配列リスト</param>
static void PopHeap(ArrayList<T> array)
{
int n = array.Count - 1;
array[0] = array[n];
array.EraseLast();
for (int i = 0, j; (j = 2 * i + 1) < n; )
{
if ((j != n - 1) && (array[j].CompareTo(array[j + 1]) < 0))
j++;
if (array[i].CompareTo(array[j]) < 0)
{
T tmp = array[j]; array[j] = array[i]; array[i] = tmp;
}
i = j;
}
}
#endregion
#region 要素の挿入・削除
/// <summary>
/// 要素のプッシュ。
/// </summary>
/// <param name="elem">挿入したい要素</param>
public void Push(T elem)
{
PushHeap(this.buffer, elem);
}
/// <summary>
/// 要素を1つポップ。
/// </summary>
/// <remarks>
/// 今回の実装では、先頭要素の読み出しと削除は別に行う。
/// この Pop では削除のみ。
/// 読み出しには Top プロパティを使う。
/// </remarks>
public void Pop()
{
PopHeap(this.buffer);
}
/// <summary>
/// 先頭要素の読み出し。
/// </summary>
public T Top
{
get { return this.buffer[0]; }
}
public int Count
{
get { return this.buffer.Count; }
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/Queue.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Collections
{
/// <summary>
/// スタック(FILOバッファ)。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
class Queue<T>
{
#region フィールド
CircularBuffer<T> buffer;
#endregion
#region 初期化
public Queue() { this.buffer = new CircularBuffer<T>(); }
public Queue(int capacity) { this.buffer = new CircularBuffer<T>(capacity); }
#endregion
#region 要素の挿入・削除
/// <summary>
/// 要素のエンキュー。
/// </summary>
/// <param name="elem">挿入したい要素</param>
/// <remarks>
/// 名前は Stack に合わせて Push にしてある。
/// </remarks>
public void Push(T elem)
{
this.buffer.InsertLast(elem);
}
/// <summary>
/// 要素を1つデキュー。
/// </summary>
/// <remarks>
/// 名前は Stack に合わせて Pop にしてある。
/// 今回の実装では、先頭要素の読み出しと削除は別に行う。
/// この Pop では削除のみ。
/// 読み出しには Top プロパティを使う。
/// </remarks>
public void Pop()
{
this.buffer.EraseFirst();
}
/// <summary>
/// 先頭要素の読み出し。
/// </summary>
public T Top
{
get { return this.buffer[0]; }
}
public int Count
{
get { return this.buffer.Count; }
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/Set.cs
================================================
using System.Collections.Generic;
namespace Collections
{
/// <summary>
/// セット。
/// 数学で「集合」と呼ぶ奴。
/// 要素の順序には意味がなくて、要素が含まれているかどうかだけが問題。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
interface ISet<T> : IEnumerable<T>
{
void Insert(T elem);
void Erase(T elem);
bool Contains(T elem);
}
}
================================================
FILE: Chapters/Algorithm/Collections/SortedArray.cs
================================================
using System;
using System.Collections.Generic;
namespace Collections
{
/// <summary>
/// ソート済み配列。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
/// <remarks>
/// 2分探索できるので、検索は O(log n)。
/// ソート済みの状態を保つため、要素の挿入・削除には O(n) 必要。
/// </remarks>
class SortedArray<T> : ISet<T>
where T: IComparable<T>
{
#region フィールド
ArrayList<T> buffer;
#endregion
#region 初期化
public SortedArray() : this(256) { }
public SortedArray(int capacity)
{
this.buffer = new ArrayList<T>(capacity);
}
#endregion
#region 要素の挿入・削除・検索
/// <summary>
/// 要素の挿入。
/// </summary>
/// <param name="elem">挿入する要素</param>
public void Insert(T elem)
{
if (this.buffer.Count == 0)
{
this.buffer.InsertLast(elem);
return;
}
int r = this.buffer.Count - 1;
int l = 0;
int comp;
while (l < r)
{
int m = (r + l) >> 1;
comp = this.buffer[m].CompareTo(elem);
if (comp > 0) r = m - 1;
else if (comp < 0) l = m + 1;
else return; // 重複不可
}
comp = this.buffer[l].CompareTo(elem);
if(comp < 0)
this.buffer.Insert(l + 1, elem);
else if(comp > 0)
this.buffer.Insert(l, elem);
}
/// <summary>
/// 要素の検索。
/// </summary>
/// <param name="elem">検索する要素</param>
/// <returns>要素の位置(見つからなかった場合、配列長)</returns>
public int IndexOf(T elem)
{
if (this.buffer.Count == 0)
return 0;
int r = this.buffer.Count - 1;
int l = 0;
while (l < r)
{
int m = (r + l) >> 1;
int comp = this.buffer[m].CompareTo(elem);
if (comp > 0) r = m - 1;
else if (comp < 0) l = m + 1;
else return m;
}
if(this.buffer[l].CompareTo(elem) == 0)
return l;
return this.buffer.Count;
}
/// <summary>
/// テーブル中に要素が含まれているかどうか判別。
/// </summary>
/// <param name="elem">探したい要素</param>
/// <returns>含まれていれば true</returns>
public bool Contains(T elem)
{
return this.IndexOf(elem) != this.buffer.Count;
}
/// <summary>
/// テーブル中の要素を検索。
/// </summary>
/// <param name="elem">探したい要素</param>
/// <returns>含まれていればその要素を、なければ default(T)</returns>
public T Find(T elem)
{
int i = this.IndexOf(elem);
if (i == this.buffer.Count)
return default(T);
return this.buffer[i];
}
/// <summary>
/// 要素の削除。
/// </summary>
/// <param name="elem">削除する要素</param>
public void Erase(T elem)
{
int i = this.IndexOf(elem);
if (i < this.buffer.Count)
this.buffer.Erase(i);
}
#endregion
#region IEnumerable<T> メンバ
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < this.buffer.Count; ++i)
yield return this.buffer[i];
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Collections/Stack.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Collections
{
/// <summary>
/// スタック(FILOバッファ)。
/// </summary>
/// <typeparam name="T">要素の型</typeparam>
class Stack<T>
{
#region フィールド
ArrayList<T> buffer;
#endregion
#region 初期化
public Stack() { this.buffer = new ArrayList<T>(); }
public Stack(int capacity) { this.buffer = new ArrayList<T>(capacity); }
#endregion
#region 要素の挿入・削除
/// <summary>
/// 要素のプッシュ。
/// </summary>
/// <param name="elem">挿入したい要素</param>
public void Push(T elem)
{
this.buffer.InsertLast(elem);
}
/// <summary>
/// 要素を1つポップ。
/// </summary>
/// <remarks>
/// 今回の実装では、先頭要素の読み出しと削除は別に行う。
/// この Pop では削除のみ。
/// 読み出しには Top プロパティを使う。
/// </remarks>
public void Pop()
{
this.buffer.EraseLast();
}
/// <summary>
/// 先頭要素の読み出し。
/// </summary>
public T Top
{
get { return this.buffer[this.buffer.Count - 1]; }
}
public int Count
{
get { return this.buffer.Count; }
}
#endregion
}
}
================================================
FILE: Chapters/Algorithm/Program.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Algorithm
{
class Program
{
static void Main(string[] args)
{
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/BubbleSort.cs
================================================
using System;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// バブルソート。
/// </summary>
/// <param name="a">対象の配列</param>
public static void BubbleSort<T>(T[] a)
where T : IComparable<T>
{
int n = a.Length;
for (int i = 0; i < n - 1; i++)
for (int j = n - 1; j > i; j--)
if (a[j].CompareTo(a[j - 1]) < 0)
Swap(ref a[j], ref a[j - 1]);
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/BucketSort.cs
================================================
using System.Collections.Generic;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// [0, max] の範囲の整数をバケットソート。
/// </summary>
/// <param name="a">対象の配列</param>
/// <param name="max">配列 a 中の最大値</param>
public static void BucketSort(int[] a, int max)
{
// バケツを用意
int[] bucket = new int[max + 1];
// バケツに値を入れる
for (int i = 0; i < a.Length; ++i) ++bucket[a[i]];
// バケツ中の値の結合
for (int j = 0, i = 0; j < bucket.Length; ++j)
for (int k = bucket[j]; k != 0; --k, ++i)
a[i] = j;
}
/// <summary>
/// [0, max] の範囲の整数をキーに持つデータ構造をバケットソート。
/// </summary>
/// <typeparam name="T">値の型</typeparam>
/// <param name="a">対象の配列</param>
/// <param name="max">キーの最大値</param>
public static void BucketSort<T>(KeyValuePair<int, T>[] a, int max)
{
// バケツを用意
List<T>[] bucket = new List<T>[max + 1];
// バケツに値を入れる
for (int i = 0; i < a.Length; ++i)
{
if (bucket[a[i].Key] == null) bucket[a[i].Key] = new List<T>();
bucket[a[i].Key].Add(a[i].Value);
}
// バケツ中の値の結合
for (int j = 0, i = 0; j < bucket.Length; ++j)
if (bucket[j] != null)
foreach (T val in bucket[j])
a[i++] = new KeyValuePair<int, T>(j, val);
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/HeapSort.cs
================================================
using System;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// ヒープソート。
/// </summary>
/// <param name="a">対象の配列</param>
public static void HeapSort<T>(T[] a)
where T : IComparable<T>
{
for (int i = 1; i < a.Length; ++i)
MakeHeap(a, i);
for (int i = a.Length - 1; i >= 0; --i)
a[i] = PopHeap(a, i);
}
/// <summary>
/// 配列をヒープ化する。
/// n - 1 番目までの要素は既にヒープ化されていることを仮定して、
/// n 番目の要素をヒープに追加。
/// </summary>
/// <param name="a">対象の配列</param>
/// <param name="n">要素数</param>
static void MakeHeap<T>(T[] a, int n)
where T : IComparable<T>
{
while (n != 0)
{
int i = (n - 1) / 2;
if (a[n].CompareTo(a[i]) > 0) Swap(ref a[n], ref a[i]);
n = i;
}
}
/// <summary>
/// ヒープから最大値を取り出す。
/// </summary>
/// <param name="a">対象の配列</param>
/// <param name="n">要素数 - 1</param>
/// <returns>取り出した最大値</returns>
static T PopHeap<T>(T[] a, int n)
where T : IComparable<T>
{
T max = a[0];
a[0] = a[n];
for (int i = 0, j; (j = 2 * i + 1) < n;)
{
if ((j != n - 1) && (a[j].CompareTo(a[j + 1]) < 0)) j++;
if (a[i].CompareTo(a[j]) < 0) Swap(ref a[i], ref a[j]);
i = j;
}
return max;
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/InsertSort.cs
================================================
using System;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// 挿入ソート。
/// </summary>
/// <param name="a">対象の配列</param>
public static void InsertSort<T>(T[] a)
where T : IComparable<T>
{
int n = a.Length;
for (int i = 1; i < n; i++)
for (int j = i; j >= 1 && a[j - 1].CompareTo(a[j]) > 0; --j)
Swap(ref a[j], ref a[j - 1]);
}
/// <summary>
/// 挿入ソート。
/// 配列のどこからどこまでをソートするかを指定するバージョン。
/// <see cref="MergeSort{T}(T[])"/>, <see cref="QuickSort{T}(T[])"/>
/// </summary>
/// <param name="a">対象の配列</param>
/// <param name="first">ソート対象の先頭インデックス</param>
/// <param name="last">ソート対象の末尾インデックス</param>
static void InsertSort<T>(T[] a, int first, int last)
where T : IComparable<T>
{
for (int i = first + 1; i <= last; i++)
for (int j = i; j > first && a[j - 1].CompareTo(a[j]) > 0; --j)
Swap(ref a[j], ref a[j - 1]);
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/MergeSort.cs
================================================
using System;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// マージソート。
/// </summary>
/// <param name="a">対象の配列</param>
public static void MergeSort<T>(T[] a)
where T : IComparable<T>
{
T[] work = new T[a.Length / 2];
MergeSort(a, 0, a.Length, work);
}
/// <summary>
/// マージソート → 挿入ソートに切り替える配列長の閾値。
/// </summary>
const int MERGE_THREASHOLD = 64;
/// <summary>
/// マージソート。
/// 配列のどこからどこまでをソートするかを指定するバージョン。
/// </summary>
/// <param name="a">対象の配列</param>
/// <param name="begin">ソート対象部分の先頭</param>
/// <param name="end">ソート対象部分の末尾+1</param>
/// <param name="work">作業領域。a の 1/2 のサイズが必要。</param>
static void MergeSort<T>(T[] a, int begin, int end, T[] work)
where T : IComparable<T>
{
if (end - begin < MERGE_THREASHOLD)
{
InsertSort(a, begin, end - 1);
return;
}
int mid = (begin + end) / 2;
MergeSort(a, begin, mid, work);
MergeSort(a, mid, end, work);
Merge(a, begin, mid, end, work);
}
/// <summary>
/// 配列 a の、[begin, mid) の部分と [mid, end) の部分をマージ。
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="a">マージ対象の配列</param>
/// <param name="begin1">aの先頭</param>
/// <param name="mid">aの分割点</param>
/// <param name="end">aの末尾+1</param>
/// <param name="work">作業領域</param>
static void Merge<T>(T[] a, int begin, int mid, int end, T[] work)
where T : IComparable<T>
{
int i, j, k;
for (i = begin, j = 0; i != mid; ++i, ++j) work[j] = a[i];
mid -= begin;
for (j = 0, k = begin; i != end && j != mid; ++k)
{
if (a[i].CompareTo(work[j]) < 0)
{
a[k] = a[i];
++i;
}
else
{
a[k] = work[j];
++j;
}
}
for (; i < end; ++i, ++k) a[k] = a[i];
for (; j < mid; ++j, ++k) a[k] = work[j];
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/QuickSort.cs
================================================
using System;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// クイックソート。
/// </summary>
/// <param name="a">対象の配列</param>
public static void QuickSort<T>(T[] a)
where T : IComparable<T>
{
QuickSort(a, 0, a.Length - 1);
}
/// <summary>
/// クイックソート → 挿入ソートに切り替える配列長の閾値。
/// </summary>
const int QUICK_THREASHOLD = 64;
/// <summary>
/// クイックソート本体。
/// 配列のどこからどこまでをソートするかを指定するバージョン。
/// </summary>
/// <param name="a">対象の配列</param>
/// <param name="first">ソート対象の先頭インデックス</param>
/// <param name="last">ソート対象の末尾インデックス</param>
static void QuickSort<T>(T[] a, int first, int last)
where T : IComparable<T>
{
// 要素数が少なくなってきたら挿入ソートに切り替え
if (last - first < QUICK_THREASHOLD)
{
InsertSort(a, first, last);
return;
}
// 枢軸決定(配列の先頭、ど真ん中、末尾の3つの値の中央値を使用。)
T pivot = Median(a[first], a[(first + last) / 2], a[last]);
// 左右分割
int l = first;
int r = last;
while (l <= r)
{
while (l < last && a[l].CompareTo(pivot) < 0) l++;
while (r > first && a[r].CompareTo(pivot) >= 0) r--;
if (l > r) break;
Swap(ref a[l], ref a[r]);
l++; r--;
}
// 再帰呼び出し
QuickSort(a, first, l - 1);
QuickSort(a, l, last);
}
/// <summary>
/// 3つの値の中央値を求める。
/// </summary>
/// <param name="a">オペランドa</param>
/// <param name="b">オペランドb</param>
/// <param name="c">オペランドc</param>
/// <returns>中央値</returns>
static T Median<T>(T a, T b, T c)
where T : IComparable<T>
{
if (a.CompareTo(b) > 0) Swap(ref a, ref b);
if (a.CompareTo(c) > 0) Swap(ref a, ref c);
if (b.CompareTo(c) > 0) Swap(ref b, ref c);
return b;
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/RadixSort.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// 基数ソート。
/// 概念説明用の簡易版。
/// 10進数で3桁(0~999)までしかソートできない。
/// </summary>
/// <param name="a">対象の配列</param>
/// <param name="max">配列 a 中の最大値</param>
public static void RadixSort10(int[] a)
{
// バケツを用意
List<int>[] bucket = new List<int>[10];
for (int d = 0, r = 1; d < 3; ++d, r *= 10)
{
// バケツに値を入れる
for (int i = 0; i < a.Length; ++i)
{
int key = (a[i] / r) % 10; // a[i] の d 桁目だけを取り出す。
if (bucket[key] == null) bucket[key] = new List<int>();
bucket[key].Add(a[i]);
}
// バケツ中の値の結合
for (int j = 0, i = 0; j < bucket.Length; ++j)
if (bucket[j] != null)
foreach (int val in bucket[j])
a[i++] = val;
// バケツを一度空にする
for (int j = 0; j < bucket.Length; ++j)
bucket[j] = null;
}
}
/// <summary>
/// 基数ソート。
/// </summary>
/// <param name="a">対象の配列</param>
/// <param name="max">配列 a 中の最大値</param>
public static void RadixSort(int[] a)
{
// バケツを用意
List<int>[] bucket = new List<int>[256];
for (int d = 0, logR = 0; d < 4; ++d, logR += 8)
{
// バケツに値を入れる
for (int i = 0; i < a.Length; ++i)
{
int key = (a[i] >> logR) & 255; // a[i] を256進 d 桁目だけを取り出す。
if (bucket[key] == null) bucket[key] = new List<int>();
bucket[key].Add(a[i]);
}
// バケツ中の値の結合
for (int j = 0, i = 0; j < bucket.Length; ++j)
if (bucket[j] != null)
foreach (int val in bucket[j])
a[i++] = val;
// バケツを一度空にする
for (int j = 0; j < bucket.Length; ++j)
bucket[j] = null;
}
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/SelectSort.cs
================================================
using System;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// 選択ソート。
/// </summary>
/// <param name="a">対象の配列</param>
public static void SelectSort<T>(T[] a)
where T : IComparable<T>
{
int n = a.Length;
for (int i = 0; i < n; i++)
{
int min = i;
for (int j = i + 1; j < n; j++)
if (a[min].CompareTo(a[j]) > 0)
min = j;
Swap(ref a[i], ref a[min]);
}
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/ShellSort.cs
================================================
using System;
namespace Algorithm.Sort
{
partial class Sort
{
/// <summary>
/// シェルソート。
/// </summary>
/// <param name="a">対象の配列</param>
public static void ShellSort<T>(T[] a)
where T : IComparable<T>
{
int n = a.Length;
int h;
for (h = 1; h < n / 9; h = h * 3 + 1) ;
for (; h > 0; h /= 3)
for (int i = h; i < n; i++)
for (int j = i; j >= h && a[j - h].CompareTo(a[j]) > 0; j -= h)
Swap(ref a[j], ref a[j - h]);
}
}
}
================================================
FILE: Chapters/Algorithm/Sort/Sort.cs
================================================
using System;
namespace Algorithm.Sort
{
partial class Sort
{
private static void Swap<T>(ref T t1, ref T t2) where T : IComparable<T>
{
var t = t1;
t1 = t2;
t2 = t;
}
}
}
================================================
FILE: Chapters/AllInOne.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28407.52
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Async", "Async", "{2ED58793-4F5C-43C8-95B2-ACE56426DF10}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Lock", "Async\Lock\Lock.csproj", "{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TaskLike", "Async\TaskLike\TaskLike.csproj", "{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{F1D776AA-9064-489C-92C4-9671FB7761AA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Deconstruction", "Data\Deconstruction\Deconstruction.csproj", "{A3E46235-D020-4AEC-918A-F315DA6E9012}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discards", "Data\Discards\Discards.csproj", "{80197711-36D4-4A93-B75B-3B6DDD4799A7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OutVar", "Data\OutVar\OutVar.csproj", "{4A20CE71-0214-4289-A730-0D90C5E009B7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tuples", "Data\Tuples\Tuples.csproj", "{9851C940-EF7D-414C-89DC-441A3B22B5B5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TypeSwitch", "Data\TypeSwitch\TypeSwitch.csproj", "{A953159C-7BFB-4BF2-897D-45FE4886C2F1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Event", "Event", "{4E9F5E97-2C87-4A72-B90C-7B6645EA372B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EventDriven", "Event\EventDriven\EventDriven.csproj", "{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Observable", "Event\Observable\Observable.csproj", "{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Functional", "Functional", "{F3EA519B-5D56-4099-94D7-CB390289D130}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExtensionMethods", "Functional\ExtensionMethods\ExtensionMethods.csproj", "{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LocalFunctions", "Functional\LocalFunctions\LocalFunctions.csproj", "{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Interop", "Interop", "{48EB640A-D40F-433F-ACF7-A6360228DE5C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Win32Dll", "Interop\Win32Dll\Win32Dll.vcxproj", "{4C367220-4A86-4F8F-94A4-E303A882EC38}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Unsafe", "Interop\Unsafe\Unsafe\Unsafe.csproj", "{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TypedReference", "Interop\TypedReference\TypedReference.csproj", "{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MemoryManagement", "MemoryManagement", "{C53EC418-52D5-4539-8926-EFA66AB51C91}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UninitializedMemory", "MemoryManagement\UninitializedMemory\UninitializedMemory.vcxproj", "{5846FD63-297A-41FE-BDCF-5E1A44418953}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DefaultValue", "MemoryManagement\DefaultValue\DefaultValue.csproj", "{012FD17A-1F55-4BB6-B923-BEF210AD83B1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{A1594DA0-6962-4715-B63D-DD8474D529CE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Keywords", "Misc\Keywords\Keywords.csproj", "{F324CA0E-2847-4B65-A84B-0350026F563C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Oop", "Oop", "{D865F0C6-CEB1-4142-A138-EC0E8A53B23B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GenericsSample", "Oop\GenericsSample\GenericsSample.csproj", "{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InterfaceSample", "Oop\InterfaceSample\InterfaceSample.csproj", "{BFFD4218-2CD6-488E-A01F-77B4DA544F20}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ValueTypeGenerics", "Oop\ValueTypeGenerics\ValueTypeGenerics.csproj", "{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Variance", "Oop\Variance\Variance.csproj", "{491A0653-DCF1-43A9-8589-E5422E7C9279}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TopLevelAccessibility", "TopLevelAccessibility", "{168983F2-7C04-43CC-A84D-F815E3BCAF30}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ReferredClassLibrary", "Oop\TopLevelAccessibility\ReferredClassLibrary\ReferredClassLibrary.csproj", "{56B750BA-36B5-453C-A288-4783C48F9FD4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsoleApplication", "Oop\TopLevelAccessibility\ConsoleApplication\ConsoleApplication.csproj", "{1E06949A-F394-4BE8-853A-94BBAB8AA836}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Resource", "Resource", "{E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Boxing", "Resource\Boxing\Boxing.csproj", "{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ByRef", "Resource\ByRef\ByRef.csproj", "{DAB14A91-2EB1-493C-A5B9-E846E1299938}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ClassOrStruct", "Resource\ClassOrStruct\ClassOrStruct.csproj", "{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RecursiveReadOnly", "Resource\RecursiveReadOnly\RecursiveReadOnly.csproj", "{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RefAndPointer", "Resource\RefAndPointer\RefAndPointer.csproj", "{33541ADA-A350-4C7E-AA45-BA1565A885E1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Span", "Resource\Span\Span.csproj", "{7236CBC9-6395-4D97-A934-98798CCD5F27}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructLayoutSample", "Resource\StructLayoutSample\StructLayoutSample.csproj", "{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StructPerformance", "Resource\StructPerformance\StructPerformance.csproj", "{4E3E8CFD-6DB9-4D95-845D-1E955796C061}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WeakReference", "Resource\WeakReference\WeakReference.csproj", "{83481B0E-62A6-4427-B645-FCE090A3F8C3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Start", "Start", "{0B4399BF-B82E-437D-BC87-AD363FEC9B4F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IdentifierScope", "Start\IdentifierScope\IdentifierScope.csproj", "{183C51EE-B17B-4607-991B-16A01FE5A66E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Variables", "Start\Variables\Variables.csproj", "{C1933686-B6BC-49A4-87FA-69AAB0C1500B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "StructuredProgramming", "StructuredProgramming", "{5D997394-516B-4C50-83F8-49766EE5FD09}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BackportEnumerable", "StructuredProgramming\BackportEnumerable\BackportEnumerable.csproj", "{B63BA635-EA21-4D00-B7C1-2104FCDD169D}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Exceptions", "StructuredProgramming\Exceptions\Exceptions.csproj", "{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Expressions", "StructuredProgramming\Expressions\Expressions.csproj", "{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExternAliasConsoleApplication", "StructuredProgramming\ExternAliasConsoleApplication\ExternAliasConsoleApplication.csproj", "{134218F9-5B38-4E19-A74D-F05A3F179B53}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Function", "StructuredProgramming\Function\Function.csproj", "{6F24F522-37B0-422E-93F2-F9617C253987}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Inlining", "StructuredProgramming\Inlining\Inlining.csproj", "{575D7157-6997-4BDA-840A-D272EEDBACBD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Namespaces", "StructuredProgramming\Namespaces\Namespaces.csproj", "{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Params", "StructuredProgramming\Params\Params.csproj", "{9ED86973-D986-40DD-9068-627FE33D9F5A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tuples", "StructuredProgramming\Tuples\Tuples.csproj", "{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LambdaInternal", "Functional\LambdaInternal\LambdaInternal.csproj", "{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DelegateInternal", "Functional\DelegateInternal\DelegateInternal.csproj", "{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Algorithm", "Algorithm", "{603BF91B-95EB-478E-9CBE-21B85C671BD8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Algorithm", "Algorithm\Algorithm.csproj", "{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Patterns", "Data\Patterns\Patterns.csproj", "{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NativeLib", "Interop\NativeMemory\NativeLib\NativeLib.vcxproj", "{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ManagedApp", "Interop\NativeMemory\ManagedApp\ManagedApp.csproj", "{8522EEF7-9D46-424E-A75B-5F2366228316}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NativeInterop", "Interop\NativeInterop\NativeInterop.csproj", "{A61313F7-3BEF-4321-B8E3-4E49E71E1502}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NativeMemory", "NativeMemory", "{BA683E0C-98ED-402B-9141-1B9DAD7B929A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PatternBased", "Misc\PatternBased\PatternBased.csproj", "{3A4328F3-8559-4943-8677-1B31FEE9F739}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StringInterplation", "Start\StringInterplation\StringInterplation.csproj", "{36830F66-D52D-4294-B393-749FB829342C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OverloadResolution", "StructuredProgramming\OverloadResolution\OverloadResolution\OverloadResolution.csproj", "{4E377107-E269-4A9A-BD67-DA2F437D20E6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Debug|x64.ActiveCfg = Debug|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Debug|x64.Build.0 = Debug|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Debug|x86.ActiveCfg = Debug|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Debug|x86.Build.0 = Debug|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Release|Any CPU.Build.0 = Release|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Release|x64.ActiveCfg = Release|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Release|x64.Build.0 = Release|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Release|x86.ActiveCfg = Release|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Release|x86.Build.0 = Release|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Debug|x64.ActiveCfg = Debug|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Debug|x64.Build.0 = Debug|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Debug|x86.ActiveCfg = Debug|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Debug|x86.Build.0 = Debug|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Release|Any CPU.Build.0 = Release|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Release|x64.ActiveCfg = Release|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Release|x64.Build.0 = Release|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Release|x86.ActiveCfg = Release|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Release|x86.Build.0 = Release|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Debug|x64.ActiveCfg = Debug|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Debug|x64.Build.0 = Debug|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Debug|x86.ActiveCfg = Debug|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Debug|x86.Build.0 = Debug|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Release|Any CPU.Build.0 = Release|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Release|x64.ActiveCfg = Release|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Release|x64.Build.0 = Release|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Release|x86.ActiveCfg = Release|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Release|x86.Build.0 = Release|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Debug|x64.ActiveCfg = Debug|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Debug|x64.Build.0 = Debug|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Debug|x86.ActiveCfg = Debug|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Debug|x86.Build.0 = Debug|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Release|Any CPU.Build.0 = Release|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Release|x64.ActiveCfg = Release|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Release|x64.Build.0 = Release|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Release|x86.ActiveCfg = Release|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Release|x86.Build.0 = Release|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Debug|x64.ActiveCfg = Debug|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Debug|x64.Build.0 = Debug|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Debug|x86.ActiveCfg = Debug|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Debug|x86.Build.0 = Debug|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Release|Any CPU.Build.0 = Release|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Release|x64.ActiveCfg = Release|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Release|x64.Build.0 = Release|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Release|x86.ActiveCfg = Release|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Release|x86.Build.0 = Release|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Debug|x64.ActiveCfg = Debug|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Debug|x64.Build.0 = Debug|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Debug|x86.ActiveCfg = Debug|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Debug|x86.Build.0 = Debug|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Release|Any CPU.Build.0 = Release|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Release|x64.ActiveCfg = Release|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Release|x64.Build.0 = Release|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Release|x86.ActiveCfg = Release|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Release|x86.Build.0 = Release|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Debug|x64.ActiveCfg = Debug|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Debug|x64.Build.0 = Debug|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Debug|x86.ActiveCfg = Debug|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Debug|x86.Build.0 = Debug|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Release|Any CPU.Build.0 = Release|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Release|x64.ActiveCfg = Release|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Release|x64.Build.0 = Release|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Release|x86.ActiveCfg = Release|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Release|x86.Build.0 = Release|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Debug|x64.ActiveCfg = Debug|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Debug|x64.Build.0 = Debug|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Debug|x86.ActiveCfg = Debug|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Debug|x86.Build.0 = Debug|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Release|Any CPU.Build.0 = Release|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Release|x64.ActiveCfg = Release|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Release|x64.Build.0 = Release|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Release|x86.ActiveCfg = Release|Any CPU
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7}.Release|x86.Build.0 = Release|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Debug|x64.ActiveCfg = Debug|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Debug|x64.Build.0 = Debug|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Debug|x86.ActiveCfg = Debug|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Debug|x86.Build.0 = Debug|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Release|Any CPU.Build.0 = Release|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Release|x64.ActiveCfg = Release|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Release|x64.Build.0 = Release|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Release|x86.ActiveCfg = Release|Any CPU
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429}.Release|x86.Build.0 = Release|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Debug|x64.ActiveCfg = Debug|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Debug|x64.Build.0 = Debug|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Debug|x86.ActiveCfg = Debug|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Debug|x86.Build.0 = Debug|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Release|Any CPU.Build.0 = Release|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Release|x64.ActiveCfg = Release|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Release|x64.Build.0 = Release|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Release|x86.ActiveCfg = Release|Any CPU
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B}.Release|x86.Build.0 = Release|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Debug|x64.ActiveCfg = Debug|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Debug|x64.Build.0 = Debug|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Debug|x86.ActiveCfg = Debug|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Debug|x86.Build.0 = Debug|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Release|Any CPU.Build.0 = Release|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Release|x64.ActiveCfg = Release|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Release|x64.Build.0 = Release|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Release|x86.ActiveCfg = Release|Any CPU
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3}.Release|x86.Build.0 = Release|Any CPU
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Debug|Any CPU.ActiveCfg = Debug|Win32
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Debug|x64.ActiveCfg = Debug|x64
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Debug|x64.Build.0 = Debug|x64
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Debug|x86.ActiveCfg = Debug|Win32
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Debug|x86.Build.0 = Debug|Win32
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Release|Any CPU.ActiveCfg = Release|Win32
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Release|x64.ActiveCfg = Release|x64
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Release|x64.Build.0 = Release|x64
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Release|x86.ActiveCfg = Release|Win32
{4C367220-4A86-4F8F-94A4-E303A882EC38}.Release|x86.Build.0 = Release|Win32
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Debug|x64.ActiveCfg = Debug|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Debug|x64.Build.0 = Debug|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Debug|x86.ActiveCfg = Debug|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Debug|x86.Build.0 = Debug|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Release|Any CPU.Build.0 = Release|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Release|x64.ActiveCfg = Release|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Release|x64.Build.0 = Release|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Release|x86.ActiveCfg = Release|Any CPU
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9}.Release|x86.Build.0 = Release|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Debug|x64.ActiveCfg = Debug|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Debug|x64.Build.0 = Debug|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Debug|x86.ActiveCfg = Debug|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Debug|x86.Build.0 = Debug|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Release|Any CPU.Build.0 = Release|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Release|x64.ActiveCfg = Release|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Release|x64.Build.0 = Release|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Release|x86.ActiveCfg = Release|Any CPU
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A}.Release|x86.Build.0 = Release|Any CPU
{5846FD63-297A-41FE-BDCF-5E1A44418953}.Debug|Any CPU.ActiveCfg = Debug|Win32
{5846FD63-297A-41FE-BDCF-5E1A44418953}.Debug|x64.ActiveCfg = Debug|Win32
{5846FD63-297A-41FE-BDCF-5E1A44418953}.Debug|x86.ActiveCfg = Debug|Win32
{5846FD63-297A-41FE-BDCF-5E1A44418953}.Debug|x86.Build.0 = Debug|Win32
{5846FD63-297A-41FE-BDCF-5E1A44418953}.Release|Any CPU.ActiveCfg = Release|Win32
{5846FD63-297A-41FE-BDCF-5E1A44418953}.Release|x64.ActiveCfg = Release|Win32
{5846FD63-297A-41FE-BDCF-5E1A44418953}.Release|x86.ActiveCfg = Release|Win32
{5846FD63-297A-41FE-BDCF-5E1A44418953}.Release|x86.Build.0 = Release|Win32
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Debug|x64.ActiveCfg = Debug|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Debug|x64.Build.0 = Debug|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Debug|x86.ActiveCfg = Debug|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Debug|x86.Build.0 = Debug|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Release|Any CPU.Build.0 = Release|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Release|x64.ActiveCfg = Release|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Release|x64.Build.0 = Release|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Release|x86.ActiveCfg = Release|Any CPU
{012FD17A-1F55-4BB6-B923-BEF210AD83B1}.Release|x86.Build.0 = Release|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Debug|x64.ActiveCfg = Debug|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Debug|x64.Build.0 = Debug|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Debug|x86.ActiveCfg = Debug|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Debug|x86.Build.0 = Debug|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Release|Any CPU.Build.0 = Release|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Release|x64.ActiveCfg = Release|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Release|x64.Build.0 = Release|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Release|x86.ActiveCfg = Release|Any CPU
{F324CA0E-2847-4B65-A84B-0350026F563C}.Release|x86.Build.0 = Release|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Debug|x64.ActiveCfg = Debug|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Debug|x64.Build.0 = Debug|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Debug|x86.ActiveCfg = Debug|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Debug|x86.Build.0 = Debug|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Release|Any CPU.Build.0 = Release|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Release|x64.ActiveCfg = Release|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Release|x64.Build.0 = Release|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Release|x86.ActiveCfg = Release|Any CPU
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C}.Release|x86.Build.0 = Release|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Debug|x64.ActiveCfg = Debug|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Debug|x64.Build.0 = Debug|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Debug|x86.ActiveCfg = Debug|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Debug|x86.Build.0 = Debug|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Release|Any CPU.Build.0 = Release|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Release|x64.ActiveCfg = Release|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Release|x64.Build.0 = Release|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Release|x86.ActiveCfg = Release|Any CPU
{BFFD4218-2CD6-488E-A01F-77B4DA544F20}.Release|x86.Build.0 = Release|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Debug|x64.ActiveCfg = Debug|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Debug|x64.Build.0 = Debug|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Debug|x86.ActiveCfg = Debug|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Debug|x86.Build.0 = Debug|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Release|Any CPU.Build.0 = Release|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Release|x64.ActiveCfg = Release|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Release|x64.Build.0 = Release|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Release|x86.ActiveCfg = Release|Any CPU
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A}.Release|x86.Build.0 = Release|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Debug|Any CPU.Build.0 = Debug|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Debug|x64.ActiveCfg = Debug|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Debug|x64.Build.0 = Debug|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Debug|x86.ActiveCfg = Debug|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Debug|x86.Build.0 = Debug|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Release|Any CPU.ActiveCfg = Release|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Release|Any CPU.Build.0 = Release|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Release|x64.ActiveCfg = Release|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Release|x64.Build.0 = Release|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Release|x86.ActiveCfg = Release|Any CPU
{491A0653-DCF1-43A9-8589-E5422E7C9279}.Release|x86.Build.0 = Release|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Debug|x64.ActiveCfg = Debug|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Debug|x64.Build.0 = Debug|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Debug|x86.ActiveCfg = Debug|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Debug|x86.Build.0 = Debug|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Release|Any CPU.Build.0 = Release|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Release|x64.ActiveCfg = Release|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Release|x64.Build.0 = Release|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Release|x86.ActiveCfg = Release|Any CPU
{56B750BA-36B5-453C-A288-4783C48F9FD4}.Release|x86.Build.0 = Release|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Debug|x64.ActiveCfg = Debug|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Debug|x64.Build.0 = Debug|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Debug|x86.ActiveCfg = Debug|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Debug|x86.Build.0 = Debug|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Release|Any CPU.Build.0 = Release|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Release|x64.ActiveCfg = Release|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Release|x64.Build.0 = Release|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Release|x86.ActiveCfg = Release|Any CPU
{1E06949A-F394-4BE8-853A-94BBAB8AA836}.Release|x86.Build.0 = Release|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Debug|x64.ActiveCfg = Debug|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Debug|x64.Build.0 = Debug|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Debug|x86.ActiveCfg = Debug|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Debug|x86.Build.0 = Debug|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Release|Any CPU.Build.0 = Release|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Release|x64.ActiveCfg = Release|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Release|x64.Build.0 = Release|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Release|x86.ActiveCfg = Release|Any CPU
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8}.Release|x86.Build.0 = Release|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Debug|x64.ActiveCfg = Debug|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Debug|x64.Build.0 = Debug|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Debug|x86.ActiveCfg = Debug|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Debug|x86.Build.0 = Debug|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Release|Any CPU.Build.0 = Release|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Release|x64.ActiveCfg = Release|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Release|x64.Build.0 = Release|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Release|x86.ActiveCfg = Release|Any CPU
{DAB14A91-2EB1-493C-A5B9-E846E1299938}.Release|x86.Build.0 = Release|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Debug|x64.ActiveCfg = Debug|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Debug|x64.Build.0 = Debug|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Debug|x86.ActiveCfg = Debug|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Debug|x86.Build.0 = Debug|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Release|Any CPU.Build.0 = Release|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Release|x64.ActiveCfg = Release|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Release|x64.Build.0 = Release|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Release|x86.ActiveCfg = Release|Any CPU
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16}.Release|x86.Build.0 = Release|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Debug|x64.ActiveCfg = Debug|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Debug|x64.Build.0 = Debug|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Debug|x86.ActiveCfg = Debug|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Debug|x86.Build.0 = Debug|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Release|Any CPU.Build.0 = Release|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Release|x64.ActiveCfg = Release|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Release|x64.Build.0 = Release|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Release|x86.ActiveCfg = Release|Any CPU
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4}.Release|x86.Build.0 = Release|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Debug|x64.ActiveCfg = Debug|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Debug|x64.Build.0 = Debug|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Debug|x86.ActiveCfg = Debug|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Debug|x86.Build.0 = Debug|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Release|Any CPU.Build.0 = Release|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Release|x64.ActiveCfg = Release|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Release|x64.Build.0 = Release|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Release|x86.ActiveCfg = Release|Any CPU
{33541ADA-A350-4C7E-AA45-BA1565A885E1}.Release|x86.Build.0 = Release|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Debug|x64.ActiveCfg = Debug|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Debug|x64.Build.0 = Debug|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Debug|x86.ActiveCfg = Debug|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Debug|x86.Build.0 = Debug|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Release|Any CPU.Build.0 = Release|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Release|x64.ActiveCfg = Release|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Release|x64.Build.0 = Release|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Release|x86.ActiveCfg = Release|Any CPU
{7236CBC9-6395-4D97-A934-98798CCD5F27}.Release|x86.Build.0 = Release|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Debug|x64.ActiveCfg = Debug|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Debug|x64.Build.0 = Debug|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Debug|x86.ActiveCfg = Debug|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Debug|x86.Build.0 = Debug|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Release|Any CPU.Build.0 = Release|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Release|x64.ActiveCfg = Release|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Release|x64.Build.0 = Release|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Release|x86.ActiveCfg = Release|Any CPU
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC}.Release|x86.Build.0 = Release|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Debug|x64.ActiveCfg = Debug|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Debug|x64.Build.0 = Debug|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Debug|x86.ActiveCfg = Debug|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Debug|x86.Build.0 = Debug|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Release|Any CPU.Build.0 = Release|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Release|x64.ActiveCfg = Release|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Release|x64.Build.0 = Release|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Release|x86.ActiveCfg = Release|Any CPU
{4E3E8CFD-6DB9-4D95-845D-1E955796C061}.Release|x86.Build.0 = Release|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Debug|x64.ActiveCfg = Debug|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Debug|x64.Build.0 = Debug|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Debug|x86.ActiveCfg = Debug|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Debug|x86.Build.0 = Debug|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Release|Any CPU.Build.0 = Release|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Release|x64.ActiveCfg = Release|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Release|x64.Build.0 = Release|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Release|x86.ActiveCfg = Release|Any CPU
{83481B0E-62A6-4427-B645-FCE090A3F8C3}.Release|x86.Build.0 = Release|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Debug|x64.ActiveCfg = Debug|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Debug|x64.Build.0 = Debug|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Debug|x86.ActiveCfg = Debug|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Debug|x86.Build.0 = Debug|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Release|Any CPU.Build.0 = Release|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Release|x64.ActiveCfg = Release|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Release|x64.Build.0 = Release|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Release|x86.ActiveCfg = Release|Any CPU
{183C51EE-B17B-4607-991B-16A01FE5A66E}.Release|x86.Build.0 = Release|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Debug|x64.ActiveCfg = Debug|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Debug|x64.Build.0 = Debug|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Debug|x86.ActiveCfg = Debug|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Debug|x86.Build.0 = Debug|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Release|Any CPU.Build.0 = Release|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Release|x64.ActiveCfg = Release|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Release|x64.Build.0 = Release|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Release|x86.ActiveCfg = Release|Any CPU
{C1933686-B6BC-49A4-87FA-69AAB0C1500B}.Release|x86.Build.0 = Release|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Debug|x64.ActiveCfg = Debug|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Debug|x64.Build.0 = Debug|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Debug|x86.ActiveCfg = Debug|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Debug|x86.Build.0 = Debug|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Release|Any CPU.Build.0 = Release|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Release|x64.ActiveCfg = Release|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Release|x64.Build.0 = Release|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Release|x86.ActiveCfg = Release|Any CPU
{B63BA635-EA21-4D00-B7C1-2104FCDD169D}.Release|x86.Build.0 = Release|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Debug|x64.ActiveCfg = Debug|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Debug|x64.Build.0 = Debug|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Debug|x86.ActiveCfg = Debug|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Debug|x86.Build.0 = Debug|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Release|Any CPU.Build.0 = Release|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Release|x64.ActiveCfg = Release|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Release|x64.Build.0 = Release|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Release|x86.ActiveCfg = Release|Any CPU
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57}.Release|x86.Build.0 = Release|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Debug|x64.ActiveCfg = Debug|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Debug|x64.Build.0 = Debug|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Debug|x86.ActiveCfg = Debug|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Debug|x86.Build.0 = Debug|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Release|Any CPU.Build.0 = Release|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Release|x64.ActiveCfg = Release|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Release|x64.Build.0 = Release|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Release|x86.ActiveCfg = Release|Any CPU
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B}.Release|x86.Build.0 = Release|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Debug|Any CPU.Build.0 = Debug|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Debug|x64.ActiveCfg = Debug|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Debug|x64.Build.0 = Debug|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Debug|x86.ActiveCfg = Debug|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Debug|x86.Build.0 = Debug|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Release|Any CPU.ActiveCfg = Release|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Release|Any CPU.Build.0 = Release|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Release|x64.ActiveCfg = Release|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Release|x64.Build.0 = Release|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Release|x86.ActiveCfg = Release|Any CPU
{134218F9-5B38-4E19-A74D-F05A3F179B53}.Release|x86.Build.0 = Release|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Debug|x64.ActiveCfg = Debug|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Debug|x64.Build.0 = Debug|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Debug|x86.ActiveCfg = Debug|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Debug|x86.Build.0 = Debug|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Release|Any CPU.Build.0 = Release|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Release|x64.ActiveCfg = Release|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Release|x64.Build.0 = Release|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Release|x86.ActiveCfg = Release|Any CPU
{6F24F522-37B0-422E-93F2-F9617C253987}.Release|x86.Build.0 = Release|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Debug|x64.ActiveCfg = Debug|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Debug|x64.Build.0 = Debug|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Debug|x86.ActiveCfg = Debug|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Debug|x86.Build.0 = Debug|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Release|Any CPU.Build.0 = Release|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Release|x64.ActiveCfg = Release|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Release|x64.Build.0 = Release|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Release|x86.ActiveCfg = Release|Any CPU
{575D7157-6997-4BDA-840A-D272EEDBACBD}.Release|x86.Build.0 = Release|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Debug|x64.ActiveCfg = Debug|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Debug|x64.Build.0 = Debug|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Debug|x86.ActiveCfg = Debug|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Debug|x86.Build.0 = Debug|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Release|Any CPU.Build.0 = Release|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Release|x64.ActiveCfg = Release|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Release|x64.Build.0 = Release|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Release|x86.ActiveCfg = Release|Any CPU
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA}.Release|x86.Build.0 = Release|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Debug|x64.ActiveCfg = Debug|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Debug|x64.Build.0 = Debug|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Debug|x86.ActiveCfg = Debug|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Debug|x86.Build.0 = Debug|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Release|Any CPU.Build.0 = Release|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Release|x64.ActiveCfg = Release|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Release|x64.Build.0 = Release|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Release|x86.ActiveCfg = Release|Any CPU
{9ED86973-D986-40DD-9068-627FE33D9F5A}.Release|x86.Build.0 = Release|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Debug|Any CPU.Build.0 = Debug|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Debug|x64.ActiveCfg = Debug|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Debug|x64.Build.0 = Debug|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Debug|x86.ActiveCfg = Debug|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Debug|x86.Build.0 = Debug|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Release|Any CPU.ActiveCfg = Release|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Release|Any CPU.Build.0 = Release|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Release|x64.ActiveCfg = Release|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Release|x64.Build.0 = Release|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Release|x86.ActiveCfg = Release|Any CPU
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185}.Release|x86.Build.0 = Release|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Debug|x64.ActiveCfg = Debug|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Debug|x64.Build.0 = Debug|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Debug|x86.ActiveCfg = Debug|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Debug|x86.Build.0 = Debug|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Release|Any CPU.Build.0 = Release|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Release|x64.ActiveCfg = Release|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Release|x64.Build.0 = Release|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Release|x86.ActiveCfg = Release|Any CPU
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD}.Release|x86.Build.0 = Release|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Debug|x64.ActiveCfg = Debug|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Debug|x64.Build.0 = Debug|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Debug|x86.ActiveCfg = Debug|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Debug|x86.Build.0 = Debug|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Release|Any CPU.Build.0 = Release|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Release|x64.ActiveCfg = Release|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Release|x64.Build.0 = Release|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Release|x86.ActiveCfg = Release|Any CPU
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638}.Release|x86.Build.0 = Release|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Debug|x64.ActiveCfg = Debug|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Debug|x64.Build.0 = Debug|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Debug|x86.ActiveCfg = Debug|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Debug|x86.Build.0 = Debug|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Release|Any CPU.Build.0 = Release|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Release|x64.ActiveCfg = Release|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Release|x64.Build.0 = Release|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Release|x86.ActiveCfg = Release|Any CPU
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1}.Release|x86.Build.0 = Release|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Debug|x64.ActiveCfg = Debug|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Debug|x64.Build.0 = Debug|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Debug|x86.ActiveCfg = Debug|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Debug|x86.Build.0 = Debug|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Release|Any CPU.Build.0 = Release|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Release|x64.ActiveCfg = Release|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Release|x64.Build.0 = Release|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Release|x86.ActiveCfg = Release|Any CPU
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9}.Release|x86.Build.0 = Release|Any CPU
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Debug|Any CPU.ActiveCfg = Debug|Win32
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Debug|x64.ActiveCfg = Debug|x64
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Debug|x64.Build.0 = Debug|x64
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Debug|x86.ActiveCfg = Debug|Win32
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Debug|x86.Build.0 = Debug|Win32
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Release|Any CPU.ActiveCfg = Release|Win32
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Release|x64.ActiveCfg = Release|x64
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Release|x64.Build.0 = Release|x64
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Release|x86.ActiveCfg = Release|Win32
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A}.Release|x86.Build.0 = Release|Win32
{8522EEF7-9D46-424E-A75B-5F2366228316}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Debug|x64.ActiveCfg = Debug|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Debug|x64.Build.0 = Debug|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Debug|x86.ActiveCfg = Debug|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Debug|x86.Build.0 = Debug|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Release|Any CPU.Build.0 = Release|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Release|x64.ActiveCfg = Release|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Release|x64.Build.0 = Release|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Release|x86.ActiveCfg = Release|Any CPU
{8522EEF7-9D46-424E-A75B-5F2366228316}.Release|x86.Build.0 = Release|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Debug|x64.ActiveCfg = Debug|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Debug|x64.Build.0 = Debug|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Debug|x86.ActiveCfg = Debug|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Debug|x86.Build.0 = Debug|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Release|Any CPU.Build.0 = Release|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Release|x64.ActiveCfg = Release|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Release|x64.Build.0 = Release|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Release|x86.ActiveCfg = Release|Any CPU
{A61313F7-3BEF-4321-B8E3-4E49E71E1502}.Release|x86.Build.0 = Release|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Debug|x64.ActiveCfg = Debug|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Debug|x64.Build.0 = Debug|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Debug|x86.ActiveCfg = Debug|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Debug|x86.Build.0 = Debug|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Release|Any CPU.ActiveCfg = Release|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Release|Any CPU.Build.0 = Release|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Release|x64.ActiveCfg = Release|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Release|x64.Build.0 = Release|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Release|x86.ActiveCfg = Release|Any CPU
{3A4328F3-8559-4943-8677-1B31FEE9F739}.Release|x86.Build.0 = Release|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Debug|x64.ActiveCfg = Debug|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Debug|x64.Build.0 = Debug|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Debug|x86.ActiveCfg = Debug|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Debug|x86.Build.0 = Debug|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Release|Any CPU.Build.0 = Release|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Release|x64.ActiveCfg = Release|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Release|x64.Build.0 = Release|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Release|x86.ActiveCfg = Release|Any CPU
{36830F66-D52D-4294-B393-749FB829342C}.Release|x86.Build.0 = Release|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Debug|x64.ActiveCfg = Debug|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Debug|x64.Build.0 = Debug|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Debug|x86.ActiveCfg = Debug|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Debug|x86.Build.0 = Debug|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Release|Any CPU.Build.0 = Release|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Release|x64.ActiveCfg = Release|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Release|x64.Build.0 = Release|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Release|x86.ActiveCfg = Release|Any CPU
{4E377107-E269-4A9A-BD67-DA2F437D20E6}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236} = {2ED58793-4F5C-43C8-95B2-ACE56426DF10}
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B} = {2ED58793-4F5C-43C8-95B2-ACE56426DF10}
{A3E46235-D020-4AEC-918A-F315DA6E9012} = {F1D776AA-9064-489C-92C4-9671FB7761AA}
{80197711-36D4-4A93-B75B-3B6DDD4799A7} = {F1D776AA-9064-489C-92C4-9671FB7761AA}
{4A20CE71-0214-4289-A730-0D90C5E009B7} = {F1D776AA-9064-489C-92C4-9671FB7761AA}
{9851C940-EF7D-414C-89DC-441A3B22B5B5} = {F1D776AA-9064-489C-92C4-9671FB7761AA}
{A953159C-7BFB-4BF2-897D-45FE4886C2F1} = {F1D776AA-9064-489C-92C4-9671FB7761AA}
{B9F1BFC7-12D7-4434-8335-DDC9E7D0F9D7} = {4E9F5E97-2C87-4A72-B90C-7B6645EA372B}
{9DA4DAFA-81CA-47C6-B953-A7D1AD376429} = {4E9F5E97-2C87-4A72-B90C-7B6645EA372B}
{6F25470E-E1AB-4254-A8D1-68E6CD40A38B} = {F3EA519B-5D56-4099-94D7-CB390289D130}
{B1636BC9-0B5A-4FED-9E19-8CD0957737B3} = {F3EA519B-5D56-4099-94D7-CB390289D130}
{4C367220-4A86-4F8F-94A4-E303A882EC38} = {48EB640A-D40F-433F-ACF7-A6360228DE5C}
{F9244ECD-9764-466C-8346-BFC5DDB7AAD9} = {48EB640A-D40F-433F-ACF7-A6360228DE5C}
{FFB96C42-7EF5-4A9D-9D50-DBBD001D840A} = {48EB640A-D40F-433F-ACF7-A6360228DE5C}
{5846FD63-297A-41FE-BDCF-5E1A44418953} = {C53EC418-52D5-4539-8926-EFA66AB51C91}
{012FD17A-1F55-4BB6-B923-BEF210AD83B1} = {C53EC418-52D5-4539-8926-EFA66AB51C91}
{F324CA0E-2847-4B65-A84B-0350026F563C} = {A1594DA0-6962-4715-B63D-DD8474D529CE}
{4D36C405-ACFB-45E1-9F65-A8C1DA4F527C} = {D865F0C6-CEB1-4142-A138-EC0E8A53B23B}
{BFFD4218-2CD6-488E-A01F-77B4DA544F20} = {D865F0C6-CEB1-4142-A138-EC0E8A53B23B}
{AC426EA1-3118-4A20-BC62-0EAB2F82A17A} = {D865F0C6-CEB1-4142-A138-EC0E8A53B23B}
{491A0653-DCF1-43A9-8589-E5422E7C9279} = {D865F0C6-CEB1-4142-A138-EC0E8A53B23B}
{168983F2-7C04-43CC-A84D-F815E3BCAF30} = {D865F0C6-CEB1-4142-A138-EC0E8A53B23B}
{56B750BA-36B5-453C-A288-4783C48F9FD4} = {168983F2-7C04-43CC-A84D-F815E3BCAF30}
{1E06949A-F394-4BE8-853A-94BBAB8AA836} = {168983F2-7C04-43CC-A84D-F815E3BCAF30}
{EB51A057-60F6-44C8-AEDD-6591B5DC88A8} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{DAB14A91-2EB1-493C-A5B9-E846E1299938} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{F937FF67-EC5A-4F85-8DFC-843EF96FAE16} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{B78D2711-96CB-4FA9-BB46-2B61142FA7C4} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{33541ADA-A350-4C7E-AA45-BA1565A885E1} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{7236CBC9-6395-4D97-A934-98798CCD5F27} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{D5D09AA6-99FE-43B3-9EEE-44E5DDBB8EEC} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{4E3E8CFD-6DB9-4D95-845D-1E955796C061} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{83481B0E-62A6-4427-B645-FCE090A3F8C3} = {E8980CC4-17BE-48D9-ADA1-6ADB28E3E076}
{183C51EE-B17B-4607-991B-16A01FE5A66E} = {0B4399BF-B82E-437D-BC87-AD363FEC9B4F}
{C1933686-B6BC-49A4-87FA-69AAB0C1500B} = {0B4399BF-B82E-437D-BC87-AD363FEC9B4F}
{B63BA635-EA21-4D00-B7C1-2104FCDD169D} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{AB9184CF-DAE4-4F7A-BF14-7E7140C2DD57} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{99FD4D50-6E34-4C43-9730-DAB97F81ED8B} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{134218F9-5B38-4E19-A74D-F05A3F179B53} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{6F24F522-37B0-422E-93F2-F9617C253987} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{575D7157-6997-4BDA-840A-D272EEDBACBD} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{44CB7746-43BB-47FD-B2B9-D0CD2E15E2AA} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{9ED86973-D986-40DD-9068-627FE33D9F5A} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{33BE0F4E-B7DC-45F1-8386-CC79EAD1E185} = {5D997394-516B-4C50-83F8-49766EE5FD09}
{7C9B9329-6ADC-4BCB-860A-312F727F0DAD} = {F3EA519B-5D56-4099-94D7-CB390289D130}
{D83A7939-277A-4AA6-8EFC-1A0ABEAAD638} = {F3EA519B-5D56-4099-94D7-CB390289D130}
{57D965D9-F3CE-4EFE-857C-AFA7B454D9A1} = {603BF91B-95EB-478E-9CBE-21B85C671BD8}
{CFBBEA8F-75B8-4952-AD74-8A5997E374B9} = {F1D776AA-9064-489C-92C4-9671FB7761AA}
{2E1BF66B-21CD-4FF6-AAEE-81ABA52CB39A} = {BA683E0C-98ED-402B-9141-1B9DAD7B929A}
{8522EEF7-9D46-424E-A75B-5F2366228316} = {BA683E0C-98ED-402B-9141-1B9DAD7B929A}
{A61313F7-3BEF-4321-B8E3-4E49E71E1502} = {48EB640A-D40F-433F-ACF7-A6360228DE5C}
{BA683E0C-98ED-402B-9141-1B9DAD7B929A} = {48EB640A-D40F-433F-ACF7-A6360228DE5C}
{3A4328F3-8559-4943-8677-1B31FEE9F739} = {A1594DA0-6962-4715-B63D-DD8474D529CE}
{36830F66-D52D-4294-B393-749FB829342C} = {0B4399BF-B82E-437D-BC87-AD363FEC9B4F}
{4E377107-E269-4A9A-BD67-DA2F437D20E6} = {5D997394-516B-4C50-83F8-49766EE5FD09}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E587F394-82FE-4D5C-AF44-4E1B031AAEAC}
EndGlobalSection
EndGlobal
================================================
FILE: Chapters/Async/Async.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lock", "Lock\Lock.csproj", "{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TaskLike", "TaskLike\TaskLike.csproj", "{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Debug|Any CPU.Build.0 = Debug|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Release|Any CPU.ActiveCfg = Release|Any CPU
{93D7A6DA-7BD2-48CC-B9FE-FBF0603BE236}.Release|Any CPU.Build.0 = Release|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{1395B24A-5B30-4312-8D8B-17AD0FF0B64B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: Chapters/Async/Lock/Lock.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<StartupObject>Lock.Program</StartupObject>
</PropertyGroup>
</Project>
================================================
FILE: Chapters/Async/Lock/Monitor.cs
================================================
namespace Lock.Monitor
{
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static void Main()
{
const int ThreadNum = 20;
const int LoopNum = 20;
var num = 0;
var syncObject = new object();
Parallel.For(0, ThreadNum, i =>
{
for (int j = 0; j < LoopNum; j++)
{
bool lockTaken = false;
try
{
Monitor.TryEnter(syncObject, ref lockTaken); // ロック取得
//↓クリティカルセクション
int tmp = num;
Thread.Sleep(1);
num = tmp + 1;
//↑クリティカルセクション
}
finally
{
if (lockTaken)
Monitor.Exit(syncObject); // ロック解放
}
}
});
Console.WriteLine(num);
}
}
}
================================================
FILE: Chapters/Async/Lock/Program.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Lock
{
class Program
{
static void Main(string[] args)
{
}
}
}
================================================
FILE: Chapters/Async/TaskLike/Program.cs
================================================
namespace TaskLike
{
using System;
using System.Threading.Tasks;
class Program
{
static async ValueTask<int> XAsync(Random r)
{
if (r.NextDouble() < 0.99)
{
// 99% ここを通る。
// この場合、await が1度もなく、非同期処理にならない。
// 非同期処理じゃないのに Task<int> のインスタンスが作られるのはもったいない
return 1;
}
// こちら側は本当に非同期処理なので、Task<int> が必要。
await Task.Delay(100);
return 0;
}
static Task<int>? _cache;
// キャッシュしてるものなので、少し時間がたてば、確実に完了済みになる。
static Task<int> CachedX => _cache ?? (_cache = Task.Run(() => 1));
// 完了済みだと非同期処理にならない。
// 非同期処理じゃないのに Task<int> のインスタンスが作られるのはもったいない
static async ValueTask<int> Y() => await CachedX;
static async ValueTask<int> Z() => await Y();
}
}
================================================
FILE: Chapters/Async/TaskLike/TaskLike.cs
================================================
using System;
using System.Runtime.CompilerServices;
[AsyncMethodBuilder(typeof(AsyncValueTaskMethodBuilder<>))]
struct TaskLike<TResult>
{
}
struct AsyncValueTaskMethodBuilder<TResult>
{
public static AsyncValueTaskMethodBuilder<TResult> Create() => default(AsyncValueTaskMethodBuilder<TResult>);
public void Start<TStateMachine>(ref TStateMachine stateMachine) where TStateMachine : IAsyncStateMachine { }
public void SetStateMachine(IAsyncStateMachine stateMachine) { }
public void SetResult(TResult result) { }
public void SetException(Exception exception) { }
public TaskLike<TResult> Task { get; }
public void AwaitOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine)
where TAwaiter : INotifyCompletion
where TStateMachine : IAsyncStateMachine
{ }
public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awaiter, ref TStateMachine stateMachine)
where TAwaiter : ICriticalNotifyCompletion
where TStateMachine : IAsyncStateMachine
{ }
}
#if false
namespace System.Runtime.CompilerServices
{
sealed class AsyncMethodBuilderAttribute : Attribute
{
public AsyncMethodBuilderAttribute(Type builderType)
{
BuilderType = builderType;
}
public Type BuilderType { get; }
}
}
#endif
================================================
FILE: Chapters/Async/TaskLike/TaskLike.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>
================================================
FILE: Chapters/Blogs/UnityAsync/UnityAsync0Introduction.md
================================================
# Unity上でasync/await: はじめに (UnityAsync0Introduction)
たまにはAdvent Calendar参加。
このブログは[Unity Advent Calendar 2015](http://qiita.com/advent-calendar/2015/unity)の12月1日の記事です。
7月に書いた「[Unity(ゲームエンジン)上で async/await](http://ufcpp.net/blog/2015/07/unityasyncbridge/)」の続報というか進捗。
あと、補足説明いろいろ。
あれから4か月くらいたったわけでさすがに安定したというか。
むしろ、大して問題出なかったというか。
以下のコミット履歴を見てのとおり、4か月でコミット79個しかないものの、これでもう安定してたりします。
[https://github.com/OrangeCube/MinimumAsyncBridge/commits/master](https://github.com/OrangeCube/MinimumAsyncBridge/commits/master)
これが、「最初から安定してるライブラリは不活性に見えて不安がられる」というやつか…
むしろ、IL2CPPの安定を待ってるというか…
長くなりそうなので3部構成になっています:
- [背景](UnityAsync1Background)
- [現状](UnityAsync2CurrentStatus)
- [課題と感想](UnityAsync3Retrospective)
================================================
FILE: Chapters/Blogs/UnityAsync/UnityAsync1Background.md
================================================
# Unity上でasync/await: 背景 (UnityAsync1Background)
まずasync/awaitについて、
(Unityでない)通常のC#開発の場合がどうとか、
Unityで何が問題で使えなかったかとか、
Rxとの住み分けとかについて書こうかと思います。
## C# 5.0: async/await の登場
C#界隈で非同期処理がらみの話題がホットになったのはだいたい2010年前後からです。
当時は、
- F# にコンピューテーション式による async ワークフローが登場
- 本家の[Rx](https://rx.codeplex.com/)
- これらから少し遅れて、C# 5.0 (async/await)のプレビュー版が登場
という感じです。
最近になって、Rxを参考にした非同期処理ライブラリが、
[Java](https://github.com/ReactiveX/RxJava)や
[JavaScript](https://github.com/Reactive-Extensions/RxJS)などで実装されていて注目されていますが、
その一方で、C#ではC# 5.0のasync/awaitが主流になりました。
理由はおおむね、
- async/await はプログラミング言語側のサポートが必要
- async/await が出ることが分かっていたので、それとは違うモデルの Rx の普及にはみな慎重だった
という辺りです。逆に言うと、
- C# のバージョンが古いUnityでは、いまだ[Rx](https://github.com/neuecc/UniRx)にかかる期待は大きい
- JavaScriptにもES7でasync/awaitが入り、(後述の住み分けはあるものの、それが合う場面では)async/awaitが主流になっていくと思われる
ということも言えます。
## async/awaitとRx
今回、「Unityでもasync/awaitを使えるようにしたよ」という話をするわけですが、
これでRxはお役御免になるかというとそうでもなくて、Rxの用途は残ります。基本的には、
- async/await: pull型で、1つの値を取りに行く場合に有効
- Rx: push型で、ストリームデータを送ってもらう場合に有効
という住み分けになります。
例えば、サーバーからデータを受け取るような場合を想定すると、async/awaitがよさそうな場面は
- ログイン時、ユーザーデータを一括で取りたい
- ユーザーの行動時、即座に決まる範囲で行動の結果を返してもらいたい
Rxがよさそうな場面は
- 他のユーザーの行動で、自分が受ける影響をサーバーからpush通知してほしい
とかになります。


## UnityでC# 6.0
Unityの問題は、使っているMonoのバージョンが古いことで、確か2.8系(.NET 3.5/C# 3.0相当、オプション引数とか一部だけC# 4.0機能を先行取り込み)だったはず。
ですが、C#は、古いフレームワーク上でも最新の言語機能を使えたりします。
詳しくは「[C#の言語バージョンと.NET Frameworkバージョン](http://ufcpp.net/study/csharp/cheatsheet/listfxlangversion/)」で書いていますが、
ここで「2.0や3.0で動く」となっている機能は、コンパイラーさえバージョンアップすればUnity上でも使えます。
例えば、C# 6.0の新機能の大半は何もしなくても古いフレームワーク上で動きます。
Caler Info属性や、`FormattedString` は、簡単なクラスの自作で動かせます。
async/await は結構重たいですが、頑張って実装すれば動かせます(これが本稿の主題)。
### コンパイラーの差し替え
C# 6.0コンパイラーを使う方法は大きく分けると2種類あって、
- Unity が使っているコンパイラーを差し替えてしまう(実際にやっている人あり: [Unity C# 5.0 and 6.0 Integration](https://bitbucket.org/alexzzzz/unity-c-5.0-and-6.0-integration/src))
- ロジックの大部分をUnityの外でコンパイルしてしまう
となります。
うちは、どのみちロジックの大部分をUnityの外でも使う(データ編集用のデスクトップ アプリや、サーバー上で動かす)ので、
後者のやり方をしています。
ちなみに、C# プロジェクトのVisual Studio上の「ビルド後処理」設定で、
コンパイルしたDLLをUnity Assetsフォルダー以下にコピーするスクリプトを書いて使っています。
- [CopyDllsAfterBuild](https://github.com/ufcpp/UnityTools/tree/master/CopyDllsAfterBuild)
### Unity に async/await 移植
Unity上でasync/awaitを使おうと思うと、[`Task`クラス](https://msdn.microsoft.com/ja-jp/library/system.threading.tasks.task.aspx)の移植が必要になります。
IL2CPP登場以前だと、そもそも`Task`クラスが内部で使っているいくつかのメソッド、
例えば[`Interlocked.CompareExchange<T>`](https://msdn.microsoft.com/ja-jp/library/bb297966.aspx)とかが
iOS上(AOTコンパイル)で動かないという問題があって、移植は絶望的でした。
が、IL2CPPが安定してきた今、やってみたら案外あっさり移植できたという状態です。
- [MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)
[導入文](UnityAsync0Introduction)でも書いていますが、あっさり動きすぎて、コミットが少なすぎて非アクティブに見える…
まあ、「Minimum」という名前通り、`Task`クラスのうち、async/awaitに必要な部分だけの実装になります。
例えば、`Run`メソッド(別スレッドで処理を開始する)は実装していません。
これに関しては、他の非同期処理ライブラリ(Unityのコルーチンとか、Rxとか)とつないで使う想定です。
ちなみに、Rxに対するつなぎ処理も書いています。
- [UniRx.AsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge/tree/master/src/UniRx.AsyncBridge)
`IObservable`に対するawaiter実装になります。
## まとめ
Unity の制限の多くは、Mono 2.8系のAOTコンパイルの制限に起因するものが多いです。
それが、IL2CPPが安定してきたことによって少し緩和しています。
C# 3.0に留まる理由もなくなっていて、async/awaitのバックポーティングもうまくいっています。
その移植したライブラリが以下のものです。
- [MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)
================================================
FILE: Chapters/Blogs/UnityAsync/UnityAsync2CurrentStatus.md
================================================
# Unity上でasync/await: 現状 (UnityAsync2CurrentStatus)
[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)の現状について。
どのくらいまっとうに動いているか。
ちなみに、[7月に書いたとき](http://ufcpp.net/blog/2015/07/unityasyncbridge/)には自分の個人アカウントのリポジトリにコードを置いていましたが、
今は、[会社アカウント]((https://github.com/OrangeCube/)の方に移っています。
## 実装状況
[背景](UnityAsync1Background)でも説明した通り、`Run`メソッド(別スレッドで処理を開始する)は実装していません。
ここはUnityコルーチンとかRxとつないで使う想定です。
一方で、Minimumと言いつつ、`Delay`、`WhenAll`、`WhenAny`は実装しました。
これで、実プロジェクトに組み込んで使っていますが、ほぼ要件足りています。
async/awaitを使いたい動機が主にサーバーとの通信(I/O非同期)で、スレッド処理(CPU非同期)をあまり必要としていないという背景はありますが。
4か月使ってみて、MinimumAsyncBridge由来の問題に当たって困ったことはほぼないですし、
困ったのはだいたい実装ミスで、現在では修正済みです。
## IteratorTasksからの移行
うちのプロジェクト、7月までは非同期処理に[IteratorTasks](https://github.com/OrangeCube/IteratorTasks)を使っていました。
IteratorTasksも「`Task`もどき」なので、移行作業、そこまでは苦労しませんでした。必要なのは、
- 名前空間を `IteratorTasks` から `System.Threading.Tasks` に変える
- `IEnumerator`、`yield return` を `Task`、`await` に変えて回る
を地道にやること。それなりに地道な作業なんですが… バグ修正含めて1・2週間ほど。
もし、IteratorTasksを使っていただけてる方で、この1・2週間ほどの時間は取れないという場合があれば、
IteratorTasksに対するawaiter実装もあるので、これが使えるかも。
- [IteratorTasks.AsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge/tree/master/src/IteratorTasks.AsyncBridge)
## 本家 Task の完全下位互換
`Run`メソッドみたいに意図して実装していないものをのぞいて、
本家`Task`クラスと互換性があります。
要するに、完全下位互換。
[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)を使って動けば、
.NET 4.5以降では本家`Task`を使って100%動きます
(逆は、実装していないメソッドを避けないとダメ)。
ちなみに、[型フォワーディング](http://ufcpp.net/study/csharp/package/typeforwarding/?p=3#backporting)という仕組みを使っていて、
- .NET 3.5 (Unity)向けライブラリで[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)を使う
- .NET 4.5向けライブラリで本家`Task`クラスを使う
- これらのライブラリを混在させて、.NET 4.5向けアプリを書く
というようなこともできます。.NET 4.5向けアプリから[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)を使うと、
本家`Task`クラスに転送されます。
実際、今作っているゲームは.NET 3.5と4.5混在です。
- ちょっとしたデバッグをコンソール アプリで
- ボット使った動作テストしたいときにボットをコンソール アプリで
- 可視化したいデータがあったときにWPFでGUIをちょろっと
- データの編集ツールはWPF製
- (基本、サーバー側は外注なので他社、かつ、PHPなものの)一部、CPU酷使しそうな機能はC#で実装
これらのアプリは全部、Unity上で動かすゲームのロジックを共有しています。
また、現在は、これらは全部.NET 4.6にバージョンアップ済みです。
### 既知の制限: .NET 4では使えない
.NET 3.5と4.5以上では問題なく動きますが、.NET 4では動きません。
おそらくピンポイントに.NET 4が必要になる(.NET 4は使えるけど4.5以上へのアップグレードはできない)場面はほとんどないと思いますが、一応。
これは、.NET 4に、async/awaitはできない中途半端なバージョンの`Task`クラスが存在するため、
型フォワーディングしづらいせいです
(新規クラスを足すのは簡単。既存クラスにメソッドを追加するのは無理)。
### NuGetパッケージ
[NuGetパッケージ化](https://www.nuget.org/packages/MinimumAsyncBridge/)してあって、
- .NET 3.5 のプロジェクトからこのNuGe パッケージを参照すると、バックポーティング実装が参照される
- .NET 4.5 のプロジェクトからだと、型フォワーディング実装が参照される
という挙動をします。とりあえず、NuGet経由で参照するとわずらわしい設定不要で、.NET 3.5と4.5の混在ができます。
### UniRx向け型フォワーディング
同じような仕組み、[UniRx](https://github.com/neuecc/UniRx)に対しても使えます。つまり、
- Unity向けライブラリではUniRx使う
- .NET 4.5向けライブラリでは[本家Rx](https://www.nuget.org/packages/Rx-Main/)を使う
- これらのライブラリを混在させて使う
とか。とりあえずこの作業やって、Pull Request は出してあったりします。
- [https://github.com/neuecc/UniRx/pull/88](https://github.com/neuecc/UniRx/pull/88)
やったことは、
- 名前空間が `UniRx` になっているところを`System.Reactive`に戻す
- 意図して本家Rxとは実装変えていた部分を元に戻す(`FirstAsync`→`First`とか)
- 別途、型フォワーディング用のライブラリを実装
- 元々のUniRx利用者に影響が出ないように、`#if`分岐
とかです。
### 既知の制限: C# 6.0 がらみ
[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)というかIL2CPP側の問題なんですが、
IL2CPPを使う場合(つまり、iOSで実行する場合)、ちょっとだけC# 6.0で使えない構文があります。
現状、以下の構文はIL2CPPでのビルドに失敗、あるいは、iOS実行時に実行時例外を起こします。
async/awaitの問題というか、だいたいは例外処理がらみの問題です。
- catch finally 内での await は使えない
- [catch句内での再スロー](http://ufcpp.net/study/csharp/misc_stacktrace.html#rethrow)ができない
- [例外フィルター](http://ufcpp.net/study/csharp/oo_exception.html#exception-filter)が使えない
## iOS実行・Android実行
iOSでの実行は、IL2CPPを使えば動きます。
IL2CPPのバグをいくつか踏み抜いて、Unity 5.2.2では動かなくなっていたりしましたが、
Unityへのフィードバックの結果、Unity 5.2.3では直っています。
(Unity 5.2.2の時は、ビルドで失敗していました。
ビルドまで成功したら、実行時エラーが出たことはこれまでどのバージョンでもありませんでした。)
ちなみに、Android実行では1度も問題出ていません。
## 本家Taskクラスらの劣化
`Run`メソッドを実装していないなど、意図的にそうした部分の他に、いくらか残念な部分があります。
- 一部、多少効率悪いはず
- 例外のスタックトレース紛失
### 効率
`TaskCompletionSource`クラスとかawaiterの実装などはほぼベタに本家からの移植なので、そんなに差はないはずです。
問題は`Delay`、`WhenAll`、`WhenAny`の実装。
本家はこの辺りをネイティブ実装していて、
[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)では別実装で移植しました。
この辺りは、本家ほど最適な実装はできないんで、さすがに効率ちょっと悪いはず。
- `Delay`: `System.Threading.Timer`で実装
- `WhenAll`/`WhenAny`: 複数の`Task`をリスト管理
- 本家実装だと同時実行するタスク数がむちゃくちゃ多くてもメモリ食わない実装になってるらしいけど、こっちはしっかりタスク数分のメモリを食う。
### スタックトレース
本家`Task`を使ったasync/awaitの何がすごいって、
スレッド間でスタックトレース情報を伝搬させて、スタックトレースを追えるようにしていることなんですが。
ここはさすがに移植できなかったというか、移植が不可能だったりします。
この機能の実現には.NET 4.5で追加された`System.Runtime.ExceptionServices.ExceptionDispatchInfo.Capture`が必須です。
.NET 3.5向けのバックポーティングはできません。
なので、デバッグは本家`Task`よりも少し大変になります(非同期メソッドの呼び出し元が分からなくなったりする)。
## まとめ
[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)、
実装し始めた当初の予想よりもだいぶあっさりと完成。
- .NET 3.5/4.5混在でも使えます
- .NET 4では使えません
- ほとんど問題起きず、少ない修正で安定してしまいました
- iOS(IL2CPP)でも動きます
- Unity 5.2.2でIL2CPPのバグで一瞬動かなくなっていたものの、5.2.3で修正されました
- 本家`Task`の完全下位互換です
- [MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)で動けば、本家では100%動く
- 一部、多少性能的に劣る
- スタックトレース紛失で少しデバッグが大変
================================================
FILE: Chapters/Blogs/UnityAsync/UnityAsync3Retrospective.md
================================================
# Unity上でasync/await: 課題と感想 (UnityAsync3Retrospective)
[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)化してみてどうかと、
[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)を作った感想など。
## 作業難易度
[参考にした元](http://referencesource.microsoft.com/)があって、書き換えが必要だった部分もごく少量で、
ほとんどコストかからず移植してます。最初から安定しているのも当たり前で。
まあほんとは、もっと昔から.NETがオープンソースだったら…というのはありますが。
IL2CPPで動かなくて困ったりした時期はありますが、この辺りは、別に`Task`クラスのせいじゃなくてそこかしろでバグだらけだったので。
## 導入した感想
やっぱり普通にC# 5.0のasync/awaitが書けるのはむちゃくちゃ楽です。
自分だけじゃなく、チーム全体で言っても、かなりの作業が浮いてるんじゃないかと。
途中まで[IteratorTasks](https://github.com/OrangeCube/IteratorTasks)を使っていて、
途中で[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBridge)に移行するのに1・2週間ほど使いましたが、
その作業分は余裕で取り戻せているのではないかと思います。
何よりも、
- 最新のC#を問題なく使える
- 「もどき」じゃなく、標準`Task`の完全下位互換で、完全にコード共通化できる
という辺りは非常に大きい。
## Taskクラスの問題
バックポーティング作業をやっていて感じたのは、`Task`クラスの債務がでかすぎるという問題。
`Task`クラスは、以下のような処理を全部担います。
- スレッド(`Task.Run`)
- I/O完了ポート(非同期API)
- ハードウェアタイマー(`Task.Delay`)
- 他とのつなぎ(`TaskCompletionSource`)、C++でいうfuture/promise
全部1つのクラス。他の言語だと、「他とのつなぎ」だけ用意して、
スレッドとかは別途そいつで軽く包んでるだけなことが多いんですけども。
.NETのTaskは割かし全部入り。
このうち、async/awaitを使うだけなら`TaskCompletionSource`だけあれば何とかなるんですよねぇ。
なのに、そこだけを抜き出して取ってこれない。
おまけでいろいろ、しかもスレッド関連とかいう難しい処理も持ってこないといけない。
例えば以下のような問題があったり。
- `GetAwaiter`が、.NET 4.5で`Task`クラスに追加されてる
- 型フォワーディングの仕組みで、クラスの追加はバック ポーティングできるけど、既存クラスへのメソッド追加は無理
- 結果、.NET 3.5と4.5では動くけど、.NET 4では動かないライブラリになってる
- 非同期メソッドの戻り値が`Task`固定で、インターフェイスとかになってない
- インターフェイスになっていれば、独自実装がしやすい
- `Task`クラスみたいにでかいものを移植しなくて済む
全部1つでやってるので性能はいいし、利用者視点の利便性はいいとは思います。
そもそもなぜ非同期処理なんて面倒な事するかというとパフォーマンスを求めてなわけで、
`Task`実装ではパフォーマンスを妥協できなかったというのはあるようです。
あと、async/awaitを変に汎用化しようとすると、
asyncメソッドのオーバーロード解決とかで苦労するらしい(非同期が絡むと型推論が効かなくなったり)。
利便性劣化に直結。
一方で、`Task`を実装する側、
例えば.NET Coreで今絶賛クロスプラットフォーム化作業してる方々とか、
Monoの方々とか、
今回の僕みたいに独自にバック ポーティングすることにした人にとってはこのでかい実装はほんとに面倒。
C#のasync/awaitはそういうでっかい一枚岩の上に乗っかっちゃってるって意味では将来リスクは結構負っています。
この辺りはF#方面の人らは「だからC#はダメだ」とか言ったりするものの。
ここは方向性の違いというか、C#的には「性能と利用者利便性を考えたらTaskに乗るしかなかった」と言われると妥協せざるを得ず。
最近他の言語でもasync/await対応し始めてますけど、それらの言語でも「どこまで汎用化するか」は大きな争点になってるはずです。
まあ、async/awaitに関してはF#もC#も先駆者なので、負の遺産にはなりやすいかもなぁ(F#はパフォーマンス的にペナルティ結構負ってるはずだし、C#は一枚岩の上に載ってるリスクあり)という気はしなくもないです。
もっとも、それを心配しないといけなくなるのはまだまだ5年10年先の話だと思いますが。
## まとめ
元コードがあるんであっさり動いて当然。
ただ、もっと最初からオープンだったらわざわざ自分が苦労する必要なかったという気もします。
C# 5.0登場時(アイディアが出たのは5・6年前。RTMが2012年)にも言われていたことではあるんですが、
`Task`クラスはちょっと債務がでかすぎるよなぁというのは改めて思いました。
まあ、とりあえず安定して動いたし、その結果、かなり開発が楽になったので実装してよかったと思います。
================================================
FILE: Chapters/Data/DataTypes.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.28531.58
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tuples", "Tuples\Tuples.csproj", "{9851C940-EF7D-414C-89DC-441A3B22B5B5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Deconstruction", "Deconstruction\Deconstruction.csproj", "{A3E46235-D020-4AEC-918A-F315DA6E9012}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OutVar", "OutVar\OutVar.csproj", "{4A20CE71-0214-4289-A730-0D90C5E009B7}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TypeSwitch", "TypeSwitch\TypeSwitch.csproj", "{A953159C-7BFB-4BF2-897D-45FE4886C2F1}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Discards", "Discards\Discards.csproj", "{80197711-36D4-4A93-B75B-3B6DDD4799A7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Patterns", "Patterns\Patterns.csproj", "{8212E7CA-2F62-4D24-92B3-ACA19EFFBD4E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9851C940-EF7D-414C-89DC-441A3B22B5B5}.Release|Any CPU.Build.0 = Release|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A3E46235-D020-4AEC-918A-F315DA6E9012}.Release|Any CPU.Build.0 = Release|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4A20CE71-0214-4289-A730-0D90C5E009B7}.Release|Any CPU.Build.0 = Release|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A953159C-7BFB-4BF2-897D-45FE4886C2F1}.Release|Any CPU.Build.0 = Release|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{80197711-36D4-4A93-B75B-3B6DDD4799A7}.Release|Any CPU.Build.0 = Release|Any CPU
{8212E7CA-2F62-4D24-92B3-ACA19EFFBD4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8212E7CA-2F62-4D24-92B3-ACA19EFFBD4E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8212E7CA-2F62-4D24-92B3-ACA19EFFBD4E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8212E7CA-2F62-4D24-92B3-ACA19EFFBD4E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {F6DEAD6E-2EF9-4D4F-847D-D50925152DEB}
EndGlobalSection
EndGlobal
================================================
FILE: Chapters/Data/Deconstruction/DeconstructMethod.cs
================================================
using System;
using System.Collections.Generic;
namespace Deconstruction.DeconstructMethod
{
class Program
{
static void Main()
{
var pair = new KeyValuePair<string, int>("one", 1);
var (k, v) = pair;
// 以下のようなコードに展開される
// string k;
// int v;
// pair.Deconstruct(out k, out v);
var tuple = Tuple.Create("abc", 100);
var (x, y) = tuple;
// 以下のようなコードに展開される
// string x;
// int y;
// tuple.Deconstruct(out x, out y);
}
}
}
================================================
FILE: Chapters/Data/Deconstruction/Deconstruction.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<StartupObject>Deconstruction.Program</StartupObject>
</PropertyGroup>
</Project>
================================================
FILE: Chapters/Data/Deconstruction/Evaluation.cs
================================================
#pragma warning disable CS0219
using System;
namespace Deconstruction.Evaluation
{
class Program
{
static void Main()
{
var t = ("abc", 100);
FailureSwap();
TupleSwap();
TupleSwapEval();
SideEffect();
SideEffectEval();
}
private static void FailureSwap()
{
var x = 1;
var y = 2;
y = x;
x = y; // 上の行で y が書き換わっているので、値の入れ替えにはならない
Console.WriteLine(x); // 1
Console.WriteLine(y); // 1
// 正しくは以下のように書く
// var temp = y;
// y = x;
// x = temp;
}
private static void TupleSwap()
{
var x = 1;
var y = 2;
// 分解代入であれば、値の書き換えは同時に起こる
(y, x) = (x, y); // 一時的にタプルが作られる
Console.WriteLine(x); // 2
Console.WriteLine(y); // 1
}
private static void TupleSwapEval()
{
var x = 1;
var y = 2;
// 実際には、同時に書き換わったように見えるように、一時変数が挟まる
// (y, x) = (x, y) であれば、以下のように評価されてる
var t = (x, y);
y = t.Item1;
x = t.Item2;
Console.WriteLine(x); // 2
Console.WriteLine(y); // 1
}
private static void SideEffect()
{
var a = new[] { 0, 1, 2, 3 };
var i = 0;
(a[i++], a[i++]) = (a[i++], a[i++]);
Console.WriteLine(string.Join(", ", a)); // 2, 3, 2, 3
// つまり、以下の評価を受けてる
// (a[0], a[1]) = (a[2], a[3]);
}
private static void SideEffectEval()
{
var a = new[] { 0, 1, 2, 3 };
var i = 0;
ref var l1 = ref a[i++];
ref var l2 = ref a[i++];
var r1 = a[i++];
var r2 = a[i++];
l1 = r1;
l2 = r2;
Console.WriteLine(string.Join(", ", a)); // 2, 3, 2, 3
}
}
}
================================================
FILE: Chapters/Data/Deconstruction/Extensions.cs
================================================
using System;
using System.Collections.Generic;
namespace Deconstruction
{
static class Extensions
{
public static void Deconstruct<T, U>(this KeyValuePair<T, U> pair, out T key, out U value)
{
key = pair.Key;
value = pair.Value;
}
public static void Deconstruct<T1, T2>(this Tuple<T1, T2> x, out T1 item1, out T2 item2)
{
item1 = x.Item1;
item2 = x.Item2;
}
}
}
================================================
FILE: Chapters/Data/Deconstruction/Program.cs
================================================
using System;
using System.Collections.Generic;
namespace Deconstruction
{
class Program
{
static void Main(string[] args)
{
MeaninglessVariable();
ManuallyDeconstructed();
var items = new[] { 1, 2, 3, 4, 5 };
DeconstractionDeclaration(items);
DeconstractionAssingment(items);
DeconstractionAssingment();
Conversion();
}
private static void Conversion()
{
// Tally の戻り値は (count, sum) の順
var t = Tally(new[] { 1, 2, 3, 4, 5 });
// sum = t.count, count = t.sum の意味になるので注意が必要
(int sum, int count) = t;
Console.WriteLine(sum); // 5
Console.WriteLine(count); // 15
// int → object も int → long も暗黙的に変換可能
// なので、分解もでもこの変換が暗黙的に可能
(object x, long y) = t;
}
private static void DeconstractionAssingment(int[] items)
{
{
int x, y;
// 既存の変数を使って分解
(x, y) = Tally(items);
}
{
var x = 1.0;
var y = 5.0;
for (int i = 0; i < 3; i++)
{
(x, y) = ((x + y) / 2, Math.Sqrt(x * y));
}
Console.WriteLine($"{x}, {y}");
}
}
private static void DeconstractionAssingment()
{
var a = new[] { 1, 2 };
// 配列アクセス
var b = new int[a.Length];
(b[1], b[0]) = (a[0], a[1]);
// 参照戻り値
var c = new int[a.Length];
(Mod(c, 5), Mod(c, 8)) = (a[0], a[1]);
Console.WriteLine(string.Join(", ", b));
Console.WriteLine(string.Join(", ", c));
}
static ref T Mod<T>(T[] array, int index) => ref array[index % array.Length];
private static void DeconstractionDeclaration(int[] items)
{
{
// count, sum を宣言しつつ、タプルを分解
(int count, int sum) = Tally(items);
// ↓こう書くとタプル型の変数の宣言
// (int count, int sum) t = Tally(items);
}
{
// 型推論で count, sum を宣言しつつ、タプルを分解
(var count, var sum) = Tally(items);
// ↓タプルだと var は使えない。これはコンパイル エラー
// (var count, var sum) t = Tally(items);
}
{
// 部分的に var を使う
(var count, long sum) = Tally(items);
}
{
// var + (変数リスト)でタプルを分解
var (count, sum) = Tally(items);
}
}
private static void ManuallyDeconstructed()
{
// この3行に相当する構文がほしい
var x = Tally(new[] { 1, 2, 3, 4, 5 });
var count = x.count;
var sum = x.sum;
// 以後、もう x は使わない
Console.WriteLine(count);
Console.WriteLine(sum);
}
private static void MeaninglessVariable()
{
var x = Tally(new[] { 1, 2, 3, 4, 5 });
Console.WriteLine(x.count);
Console.WriteLine(x.sum);
}
static (int count, int sum) Tally(IEnumerable<int> items)
{
var count = 0;
var sum = 0;
foreach (var x in items)
{
sum += x;
count++;
}
return (count, sum);
}
static void Statements()
{
(int x, int y)[] array = new[] { (1, 2), (3, 4) };
foreach (var (x, y) in array)
{
Console.WriteLine($"{x}, {y}");
}
for ((int i, int j) = (0, 0); i < 10; i++, j--)
{
Console.WriteLine($"{i}, {j}");
}
// ↓RTM までにはできるようになるはず?
//var q =
// from (var x, vary) in array
// let (sum, product) = (x + y, x * y)
// select new { sum, product };
}
}
}
================================================
FILE: Chapters/Data/Deconstruction/Summary.cs
================================================
namespace Tuples.Deconstruction.Tuples
{
using System;
using System.Collections.Generic;
class Program
{
// タプルを使って2つの戻り値を返す
static (int count, int sum) Tally(IEnumerable<int> items)
{
var count = 0;
var sum = 0;
foreach (var x in items)
{
sum += x;
count++;
}
return (count, sum);
}
static void Main()
{
var data = new[] { 1, 2, 3, 4, 5 };
var (count, sum) = Tally(data);
Console.WriteLine($"{sum}/{count}");
}
}
}
namespace Tuples.Deconstruction.AnyType
{
using System.Collections.Generic;
class Program
{
static void Main()
{
var (key, value) = new KeyValuePair<string, int>("one", 1);
}
}
static class Extensions
{
public static void Deconstruct<T, U>(this KeyValuePair<T, U> pair, out T key, out U value)
{
key = pair.Key;
value = pair.Value;
}
}
}
================================================
FILE: Chapters/Data/Deconstruction/Vector2D.cs
================================================
namespace Deconstruction._Vector2D
{
using static System.Math;
struct Radian
{
public double Value { get; }
public Radian(double value) => Value = value;
}
struct Vector2D
{
public double X { get; }
public double Y { get; }
// コンストラクターは当然、個数が同じでも、型が違えば呼び分けができる
public Vector2D(double x, double y) => (X, Y) = (x, y);
public Vector2D(double radius, Radian angle)
: this(radius * Cos(angle.Value), radius * Sin(angle.Value)) { }
// 引数の数が同じ Deconstruct が2つある
// 片方だけならいいけど、2つあると分解ができなくなる
public void Deconstruct(out double x, out double y) => (x, y) = (X, Y);
#if false
public void Deconstruct(out double radius, out Radian angle)
=> (radius, angle) = (Sqrt(X * X + Y * Y), new Radian(Atan2(Y, X)));
#endif
}
class Program
{
static void Main()
{
// コンストラクターの呼び分け
var p = new Vector2D(1, 2);
var q = new Vector2D(10, new Radian(PI / 5));
// 分解は呼び分けできない
(double x, double y) = q; // コンパイル エラー
#if false
(double r, Radian a) = p; // コンパイル エラー
#endif
}
}
}
================================================
FILE: Chapters/Data/Deconstruction/Vector3D.cs
================================================
using Deconstruction._Vector2D;
namespace Deconstruction._Vector3D
{
struct Vector3D
{
public double X { get; }
public double Y { get; }
public double Z { get; }
public Vector3D(double x, double y, double z) => (X, Y, Z) = (x, y, z);
// 引数の数が違えば大丈夫
public void Deconstruct(out double x, out double y, out double z) => (x, y, z) = (X, Y, Z);
public void Deconstruct(out double first, out Vector2D rest) => (first, rest) = (X, new Vector2D(Y, Z));
}
class Program
{
static void Main()
{
var p = new Vector3D(1, 2, 3);
// 分解可能
var (first, rest) = p;
var (x, y, z) = p;
}
}
}
================================================
FILE: Chapters/Data/Discards/Discards.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
</PropertyGroup>
</Project>
================================================
FILE: Chapters/Data/Discards/Program.cs
================================================
using System;
using System.ComponentModel;
class Program
{
static void Main()
{
var _ = 10;
Console.WriteLine(_); // 10 が表示される
}
static void Deconstruct0()
{
// 商と余りを計算するメソッドがあるけども、ここでは商しか要らない
// 要らないので適当な変数 x とかで受ける
var (q, x) = DivRem(123, 11);
// 逆に、余りしか要らない
// 要らないから再び適当な変数 x で受けたいけども、x はもう使ってる
// しょうがないから x1 とかにしとくか…
var (x1, r) = DivRem(123, 11);
}
static (int quotient, int remainder) DivRem(int dividend, int divisor)
=> (Math.DivRem(dividend, divisor, out var remainder), remainder);
static void Deconstruct()
{
// 商と余りを計算するメソッドがあるけども、ここでは商しか要らない
// _ を書いたところでは、値を受け取らずに無視する
var (q, _) = DivRem(123, 11);
// 逆に、余りしか要らない
// また、本来「var x」とか変数宣言を書くべき場所にも _ だけを書ける
(_, var r) = DivRem(123, 11);
}
static void Deconstruct1()
{
// _ を書いたところでは、値を受け取らずに無視する
var (q, _) = DivRem(123, 11);
// _ は変数にはならないので、スコープを汚さない。別の場所でも再び _ を書ける
// また、本来「var x」とか変数宣言を書くべき場所にも _ だけを書ける
(_, var r) = DivRem(123, 11);
}
static void Deconstruct2()
{
// 要らないので適当な変数 x とかで受ける
var (q, x) = DivRem(123, 11);
// 要らないと言いつつ、参照できてしまう
Console.WriteLine(x);
// 要らないものは _ で破棄
var (_, r) = DivRem(123, 11);
// 分解の中に書いた _ は変数にはならない
// 以下の行でコンパイル エラーになる(_ は存在しない)
#if false
Console.WriteLine(_);
#endif
}
static int TypeSwitch(object obj)
{
switch (obj)
{
case int[] x: return x.Length;
case long[] x: return 2 * x.Length;
// int でさえあれば値は問わない
case int _: return 1;
// 同、long
case long _: return 2;
case null: return 0;
// 以下の行をコメントアウトするとエラーに
// 今のところ、case _ は未実装(将来的に予定はあり)
//case _:
default: throw new ArgumentOutOfRangeException();
}
}
// 欲しいのは戻り値だけであって、out 引数で受け取った値は要らない
static bool CanParse(string s) => int.TryParse(s, out _);
#if false
static void Subscribe(INotifyPropertyChanged source)
{
// 2個目の _ が「同じ名前被ってる」エラーになる
source.PropertyChanged += (_, _) => Console.WriteLine("property changed");
}
static void Subscribe(INotifyPropertyChanged source)
{
// (予定)C# 8?
// 1回も _ を使わなかったら破棄扱い
source.PropertyChanged += (_, _) => { };
// _ を使っているのでこれは引数扱い。同名の別引数は作れない
source.PropertyChanged += (_, _1) => Console.WriteLine(_);
}
#endif
}
================================================
FILE: Chapters/Data/OutVar/OutVar.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<StartupObject>OutVar.Program</StartupObject>
</PropertyGroup>
</Project>
================================================
FILE: Chapters/Data/OutVar/Point.cs
================================================
namespace OutVar.Point
{
using System;
struct Point
{
public int X { get; set; }
public int Y { get; set; }
public void GetCoordinate(out int x, out int y)
{
x = X;
y = Y;
}
}
class Program
{
static void Main()
{
// x, y のスコープはこのブロック内
// この辺りで x, y という名前の変数は作れない
var p = new Point { X = 1, Y = 2 };
p.GetCoordinate(out var x, out var y);
// 以下のような書き方をしたのと同じ
// int x, y;
// p.GetCoordinate(out x, out y);
// この行から下で x, y を使える
Console.WriteLine($"{x}, {y}");
}
}
}
================================================
FILE: Chapters/Data/OutVar/Program.cs
================================================
namespace OutVar
{
class Program
{
static void Main(string[] args)
{
}
class csharp6
{
static int? ParseOrDefault(string s)
{
int x;
return int.TryParse(s, out x) ? x : default(int?);
}
}
class csharp7int
{
static int? ParseOrDefault(string s)
{
return int.TryParse(s, out int x) ? x : default(int?);
}
}
class csharp7var
{
static int? ParseOrDefault(string s)
{
return int.TryParse(s, out var x) ? x : default(int?);
}
}
class csharp7expression
{
static int? ParseOrDefault(string s) => int.TryParse(s, out var x) ? x : default(int?);
}
}
}
================================================
FILE: Chapters/Data/Patterns/CallOnce.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Patterns.CallOnce
{
class X
{
public int Value { get; }
public X(int value) => Value = value;
public void Deconstruct(out int value) => value = Value;
}
class Program
{
static int M(X x)
=> x switch
{
// 引数の数が同じ位置パターンを3回。
// この場合、Deconstruct(out int) の呼び出しは1回にまとめられる。
(0) _ => 1,
(1) _ => 2,
(2) _ => 0,
_ => x.Value
};
}
}
================================================
FILE: Chapters/Data/Patterns/ConstantPattern.cs
================================================
using System;
using System.Collections.Generic;
using System.Text;
namespace Patterns.ConstantPattern
{
class Program
{
static void Main()
{
}
static int M(object x)
{
switch (x)
{
// 定数パターン
case 0: return 0;
// 型パターン
case string s: return s.Length;
default: return -1;
}
}
static int M(object x, int comparand)
{
switch (x)
{
// case comparand: とは書けない。
// 型パターン + when 句を使う。
case int i when i == comparand: return 0;
default: return -1;
}
}
}
}
================================================
FILE: Chapters/Data/Patterns/DeconstructRemoval.cs
================================================
namespace Patterns.DeconstructRemoval
{
using System;
class X
{
// Deconstruct に副作用を持たせる
public void Deconstruct() => Console.WriteLine("Deconstruct()");
public void Deconstruct(out int a)
{
Console.WriteLine("Deconstruct(out int a)");
a = 0;
}
public void Deconstruct(out int a, out int b)
{
Console.WriteLine("Deconstruct(out int a, out int b)");
(a, b) = (0, 0);
}
}
class Program
{
static void Main()
{
var x = new X();
// Deconstruct() がないとコンパイル エラーになるけど、
// Deconstruct() は呼ばれない。
Console.WriteLine(x is ());
// Deconstruct(out int) がないとコンパイル エラーになるけど、
// Deconstruct(out int) は呼ばれない。
Console.WriteLine(x is var (_));
// Deconstruct(out int, out int) がないとコンパイル エラーになるけど、
// Deconstruct(out int, out int) は呼ばれない。
Console.WriteLine(x is (_, _));
}
}
}
================================================
FILE: Chapters/Data/Patterns/DiscardPattern.cs
================================================
namespace Patterns.DiscardPattern
{
class Program
{
static void Main()
{
}
static int M(object x)
=> x switch
{
0 => 0,
string s => s.Length,
_ => -1
};
}
}
namespace Patterns.DiscardPattern.BreakingChange
{
using System;
class _Type
{
class _ { }
static void M(object x)
{
Console.WriteLine(x is _); // class _ とのマッチ
}
}
class _Constant
{
const int _ = 0;
static void M(object x)
{
switch (x)
{
case _: // 定数 _ とのマッチ
break;
}
}
}
}
================================================
FILE: Chapters/Data/Patterns/Expressions/Node.cs
================================================
namespace Patterns.Expressions
{
public abstract class Node
{
public static readonly Node X = new Var();
public static implicit operator Node(int value) => new Const(value);
public static Node operator +(Node left, Node right) => new Add(left, right);
public static Node operator *(Node left, Node right) => new Mul(left, right);
}
public class Var : Node { public override string ToString() => "x"; }
public class Const : Node
{
public int Value { get; }
public Const(int value) { Value = value; }
public void Deconstruct(out int value) => value = Value;
public override string ToString() => Value.ToString();
}
public class Add : Node
{
public Node Left { get; }
public Node Right { get; }
public Add(Node left, Node right) => (Left, Right) = (left, right);
public void Deconstruct(out Node left, out Node right) => (left, right) = (Left, Right);
public override string ToString() => $"({Left.ToString()} + {Right.ToString()})";
}
public class Mul : Node
{
public Node Left { get; }
public Node Right { get; }
public Mul(Node left, Node right) => (Left, Right) = (left, right);
public void Deconstruct(out Node left, out Node right) => (left, right) = (Left, Right);
public override string ToString() => $"{Left.ToString()} * {Right.ToString()}";
}
}
================================================
FILE: Chapters/Data/Patterns/Expressions/Program.cs
================================================
namespace Patterns.Expressions
{
using System;
public static class Program
{
public static int Calculate(this Node n, int x)
=> n switch
{
Var _ => x,
Const c => c.Value,
Add (var l, var r) => l.Calculate(x) + r.Calculate(x),
Mul (var l, var r) => l.Calculate(x) * r.Calculate(x),
_ => throw new InvalidOperationException()
};
public static Node Simplify(this Node n)
=> n switch
{
Add (var l, var r) => (l.Simplify(), r.Simplify()) switch
{
// 0 を足しても変わらない
(Const(0), var r1) => r1,
(var l1, Const(0)) => l1,
// 他
(var l1, var r1) => new Add(l1, r1)
},
Mul (var l, var r) => (l.Simplify(), r.Simplify()) switch
{
// 0 を掛けたら 0
(Const(0) c, _) => c,
(_, Const(0) c) => c,
// 1 を掛けても変わらない
(Const(1), var r1) => r1,
(var l1, Const(1)) => l1,
// 他
(var l1, var r1) => new Mul(l1, r1)
},
_ => n
};
public static Node ClassicSimplify(this Node n)
{
if (n is Add a)
{
var (l, r) = a;
var l1 = l.Simplify();
var r1 = r.Simplify();
{ if (l1 is Const c && c.Value == 0) return r1; }
{ if (r1 is Const c && c.Value == 0) return l1; }
return new Add(l1, r1);
}
if (n is Mul m)
{
var (l, r) = m;
var l1 = l.Simplify();
var r1 = r.Simplify();
{
if (l1 is Const c)
{
if (c.Value == 0) return c;
if (c.Value == 1) return r1;
}
}
{
if (r1 is Const c)
{
if (c.Value == 0) return c;
if (c.Value == 1) return l1;
}
}
return new Mul(l1, r1);
}
return n;
}
static void Main()
{
var x = Node.X;
Console.WriteLine(x * x + 1);
Console.WriteLine(((1 * x + 0 * x) * 1).Simplify());
Console.WriteLine(((x + 2) * (x + 3)).Calculate(1));
}
}
}
================================================
FILE: Chapters/Data/Patterns/Line.cs
================================================
namespace Patterns
{
public class Line
{
public Point Start { get; }
public Point End { get; }
public Line(Point s, Point e) => (Start, End) = (s, e);
public void Deconstruct(out Point s, out Point e) => (s, e) = (Start, End);
}
}
================================================
FILE: Chapters/Data/Patterns/NoOrderGarantee.cs
================================================
namespace Patterns.NoOrderGarantee
{
using System;
enum Type { A, B }
class X
{
public Type Type { get; }
public X(Type type) => Type = type;
// それぞれ Type が一致しているときだけ値を取り出せ、そうでなければ例外
public int A => Type == Type.A ? 1 : throw new InvalidOperationException();
public int B => Type == Type.B ? 2 : throw new InvalidOperationException();
// 分解でタイプ判定
public void Deconstruct(out Type t) => t = Type;
}
class Program
{
static void Main()
{
Console.WriteLine(M(new X(Type.A)));
Console.WriteLine(M(new X(Type.B)));
}
// 以下のコードはたまたま動く可能性はあるものの、C# の言語使用としては保証がない。
// Deconstruct よりも先にプロパティのアクセスがあると例外が出ることがある。
static int M(X x) => x switch
{
(Type.A) { A: var a } => a,
(Type.B) { B: var b } => b,
_ => 0
};
}
}
================================================
FILE: Chapters/Data/Patterns/NonNull.cs
================================================
namespace Patterns.NonNull
{
class Program
{
struct LongLongNamedStruct { }
void M1(LongLongNamedStruct? x)
{
// こういう書き方だと null チェックになる。
if (x is LongLongNamedStruct nonNull)
{
// obj が null じゃない時だけここが実行される。
// でも、x の型が既知なのに、長いクラス名をわざわざ書くのはしんどい…
}
}
void M2(LongLongNamedStruct? x)
{
// が、var パターンは null にもマッチしちゃう。
// (var は「何にでもマッチ」。null でも true になっちゃう。)
if (x is var nullable)
{
// obj が null でもここが実行される。
}
}
void M3(LongLongNamedStruct? x)
{
// (C# 8.0) プロパティ パターンであれば、null チェックを含む。
if (x is { } nonNull)
{
// obj が null じゃない時だけここが実行される。
}
}
}
}
================================================
FILE: Chapters/Data/Patterns/Patterns.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<StartupObject>Patterns.NoOrderGarantee.Program</StartupObject>
</PropertyGroup>
</Project>
================================================
FILE: Chapters/Data/Patterns/Point.cs
================================================
namespace Patterns
{
public class Point
{
public int X { get; set; }
public int Y { get; set; }
public Point(int x = 0, int y = 0) => (X, Y) = (x, y);
public void Deconstruct(out int x, out int y) => (x, y) = (X, Y);
}
}
================================================
FILE: Chapters/Data/Patterns/PositionalPattern.cs
================================================
namespace Patterns.PositionalPattern
{
class Program
{
static void Main()
{
// 位置指定で構築できるんなら、位置指定でマッチングできるべき
var p1 = new Point(1, 2);
var r1 = p1 is Point (1, 2);
// 名前指定で構築できるんなら、名前指定でマッチングできるべき
var p2 = new Point(x: 1, y: 2);
var r2 = p2 is Point (x: 1, y: 2);
#if false // 実装待ち。C# 8.0 候補には入ってる
// 型推論が効く場合に new の後ろの型名は省略可能(になる予定)なら
// 型が既知なら型名を省略してマッチングできるべき
Point p3 = new (1, 2);
var r3 = p2 is (1, 2);
#endif
// 階層的に new できるんなら、階層的にマッチングできるべき
var line = new Line(new Point(1, 2), new Point(3, 4));
var r4 = line is ((1, 2), (3, 4));
}
static int M(Point p)
=> p switch
{
(1, 2) => 0,
(var x, _) when x > 0 => x,
_ => -1
};
static int M1(Point p)
{
p.Deconstruct(out var x, out var y);
if (x is 1 && y is 2) return 0;
if (x > 0) return x;
return -1;
}
static int ExplicitType(object obj)
=> obj switch
{
int i => i,
string s => s.Length,
Point(var x, var y) => 0,
_ => -1
};
static int MixPatterns(object obj)
=> obj switch
{
Point (var x, _) { Y: var y } p => x * y
};
static int NamedPattern(Point p)
=> p switch
{
(x: 1, y: 2) => 0,
(x: var x, y: _) when x > 0 => x,
_ => -1
};
}
}
================================================
FILE: Chapters/Data/Patterns/PropertyPattern.cs
================================================
namespace Patterns.PropertyPattern
{
class Program
{
public static void Main()
{
// 初期化子でプロパティ指定できるんなら、プロパティ指定でマッチングできるべき
var p1 = new Point { X = 1, Y = 2 };
var r1 = p1 is { X: 1, Y: 2 };
// 混在で構築できるんなら、混在でマッチングできるべき
var p2 = new Point(x: 1) { Y = 2 };
var r2 = p2 is (1, _) { Y: 2 };
}
static int M(Point p)
=> p switch
{
{ X: 1, Y: 2 } => 0,
{ X: var x, Y: _ } when x > 0 => x,
_ => -1
};
static int M1(Point p)
Showing preview only (220K chars total). Download the full file or copy to clipboard to get everything.
gitextract_06k9nztl/
├── .editorconfig
├── .gitattributes
├── .github/
│ └── FUNDING.yml
├── .gitignore
├── BreakingChanges/
│ ├── .gitignore
│ ├── BreakingChanges.sln
│ ├── VS2008_CS3/
│ │ ├── OverloadResolutionArraysOfPointer.cs
│ │ ├── ParamsOverride.cs
│ │ └── VS2008_CS3.csproj
│ ├── VS2010_CS4/
│ │ ├── ImplicitConversionCausedByVariance.cs
│ │ └── VS2010_CS4.csproj
│ ├── VS2012_CS5/
│ │ ├── IterationVariableOfForeach.cs
│ │ └── VS2012_CS5.csproj
│ ├── VS2015_CS6/
│ │ ├── CyclicalConstructorChaining.cs
│ │ ├── DefiniteAssignment.cs
│ │ ├── EnumBaseTypeSystemInt32.cs
│ │ ├── FuncOfFuncTypeInference.cs
│ │ ├── InvariantMeaningInBlock.cs
│ │ ├── KatakanaMiddleDot.cs
│ │ └── VS2015_CS6.csproj
│ ├── a.cs
│ ├── csc-all.ps1
│ ├── csc.ps1
│ └── read-summary.ps1
├── Chapters/
│ ├── Algorithm/
│ │ ├── Algorithm.csproj
│ │ ├── Algorithm.sln
│ │ ├── App.config
│ │ ├── Collections/
│ │ │ ├── ArrayList.cs
│ │ │ ├── BinaryTree.cs
│ │ │ ├── CircularBuffer.cs
│ │ │ ├── Dictionary.cs
│ │ │ ├── ForwardLinkedList.cs
│ │ │ ├── HashTable.cs
│ │ │ ├── LinkedList.cs
│ │ │ ├── PriorityQueue.cs
│ │ │ ├── Queue.cs
│ │ │ ├── Set.cs
│ │ │ ├── SortedArray.cs
│ │ │ └── Stack.cs
│ │ ├── Program.cs
│ │ └── Sort/
│ │ ├── BubbleSort.cs
│ │ ├── BucketSort.cs
│ │ ├── HeapSort.cs
│ │ ├── InsertSort.cs
│ │ ├── MergeSort.cs
│ │ ├── QuickSort.cs
│ │ ├── RadixSort.cs
│ │ ├── SelectSort.cs
│ │ ├── ShellSort.cs
│ │ └── Sort.cs
│ ├── AllInOne.sln
│ ├── Async/
│ │ ├── Async.sln
│ │ ├── Lock/
│ │ │ ├── Lock.csproj
│ │ │ ├── Monitor.cs
│ │ │ └── Program.cs
│ │ └── TaskLike/
│ │ ├── Program.cs
│ │ ├── TaskLike.cs
│ │ └── TaskLike.csproj
│ ├── Blogs/
│ │ ├── 2017/
│ │ │ └── Rune.pptx
│ │ ├── UnityAsync/
│ │ │ ├── UnityAsync0Introduction.md
│ │ │ ├── UnityAsync1Background.md
│ │ │ ├── UnityAsync2CurrentStatus.md
│ │ │ ├── UnityAsync3Retrospective.md
│ │ │ └── await fig.pptx
│ │ └── misc/
│ │ └── StructuralTyping.pptx
│ ├── Data/
│ │ ├── DataTypes.sln
│ │ ├── Deconstruction/
│ │ │ ├── DeconstructMethod.cs
│ │ │ ├── Deconstruction.csproj
│ │ │ ├── Evaluation.cs
│ │ │ ├── Extensions.cs
│ │ │ ├── Program.cs
│ │ │ ├── Summary.cs
│ │ │ ├── Vector2D.cs
│ │ │ └── Vector3D.cs
│ │ ├── Discards/
│ │ │ ├── Discards.csproj
│ │ │ └── Program.cs
│ │ ├── OutVar/
│ │ │ ├── OutVar.csproj
│ │ │ ├── Point.cs
│ │ │ └── Program.cs
│ │ ├── Patterns/
│ │ │ ├── CallOnce.cs
│ │ │ ├── ConstantPattern.cs
│ │ │ ├── DeconstructRemoval.cs
│ │ │ ├── DiscardPattern.cs
│ │ │ ├── Expressions/
│ │ │ │ ├── Node.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Line.cs
│ │ │ ├── NoOrderGarantee.cs
│ │ │ ├── NonNull.cs
│ │ │ ├── Patterns.csproj
│ │ │ ├── Point.cs
│ │ │ ├── PositionalPattern.cs
│ │ │ ├── PropertyPattern.cs
│ │ │ ├── PropertyPatternField.cs
│ │ │ ├── RecursivePattern.cs
│ │ │ ├── Tuple.cs
│ │ │ ├── TupleSwitch.cs
│ │ │ ├── TypePattern.cs
│ │ │ ├── TypePatternNull.cs
│ │ │ ├── UserDefinedOperator.cs
│ │ │ ├── VarPattern.cs
│ │ │ └── ZeroOneTuple.cs
│ │ ├── Tuples/
│ │ │ ├── ErroneousSamples.cs
│ │ │ ├── Implementation.cs
│ │ │ ├── OutParams.cs
│ │ │ ├── Overload.cs
│ │ │ ├── Program.cs
│ │ │ ├── Summary.cs
│ │ │ ├── Tuples.csproj
│ │ │ ├── ValueTuple.cs
│ │ │ └── ZipSample.cs
│ │ ├── TypeSwitch/
│ │ │ ├── Expressions/
│ │ │ │ ├── Calculate.switcha.cs
│ │ │ │ ├── Calculate.vritual.cs
│ │ │ │ ├── Node.cs
│ │ │ │ ├── NodeBuilder.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── ToString.cs
│ │ │ ├── IsSample.cs
│ │ │ ├── Program.cs
│ │ │ ├── Summary.cs
│ │ │ ├── SwitchPerformance.cs
│ │ │ ├── SwitchSample.cs
│ │ │ ├── TypeSwitch.csproj
│ │ │ └── TypeSwitchPerformance.cs
│ │ └── fig/
│ │ └── fig typeswitch.pptx
│ ├── DevEnv/
│ │ ├── CodeAwareLibrarySample/
│ │ │ ├── .gitignore
│ │ │ ├── CodeAwareLibrarySample.sln
│ │ │ ├── FluentArithmetic/
│ │ │ │ ├── FluentArithmetic.csproj
│ │ │ │ ├── FluentExtensions.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── FluentArithmeticAnalyzer/
│ │ │ │ ├── FluentArithmeticAnalyzer/
│ │ │ │ │ ├── Assembly.cs
│ │ │ │ │ ├── DivByZero/
│ │ │ │ │ │ └── DivByZeroAnalyzer.cs
│ │ │ │ │ ├── FluentArithmeticAnalyzer.csproj
│ │ │ │ │ ├── Literal/
│ │ │ │ │ │ ├── LiteralAnalyzer.cs
│ │ │ │ │ │ └── LiteralFix.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ ├── Resources.Designer.cs
│ │ │ │ │ ├── Resources.resx
│ │ │ │ │ ├── SyntaxExtensions.cs
│ │ │ │ │ └── project.json
│ │ │ │ ├── FluentArithmeticAnalyzer.Test/
│ │ │ │ │ ├── DivByZeroUnitTest.cs
│ │ │ │ │ ├── FluentArithmeticAnalyzer.Test.csproj
│ │ │ │ │ ├── Helpers/
│ │ │ │ │ │ ├── CodeFixVerifier.Helper.cs
│ │ │ │ │ │ ├── DiagnosticResult.cs
│ │ │ │ │ │ └── DiagnosticVerifier.Helper.cs
│ │ │ │ │ ├── LiteralUnitTest.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ ├── Verifiers/
│ │ │ │ │ │ ├── CodeFixVerifier.cs
│ │ │ │ │ │ └── DiagnosticVerifier.cs
│ │ │ │ │ ├── app.config
│ │ │ │ │ └── packages.config
│ │ │ │ └── FluentArithmeticAnalyzer.Vsix/
│ │ │ │ ├── FluentArithmeticAnalyzer.Vsix.csproj
│ │ │ │ └── source.extension.vsixmanifest
│ │ │ └── build/
│ │ │ ├── FluentArithmetic.nuspec
│ │ │ ├── build.ps1
│ │ │ └── pack.bat
│ │ ├── ConsoleApplication1/
│ │ │ ├── ConsoleApplication1/
│ │ │ │ ├── App.config
│ │ │ │ ├── ConsoleApplication1.csproj
│ │ │ │ ├── Logic.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── ConsoleApplication1.sln
│ │ ├── Dependency/
│ │ │ ├── Game/
│ │ │ │ ├── App/
│ │ │ │ │ ├── App.csproj
│ │ │ │ │ ├── App.xaml
│ │ │ │ │ ├── App.xaml.cs
│ │ │ │ │ ├── ApplicationInsights.config
│ │ │ │ │ ├── MainPage.xaml
│ │ │ │ │ ├── MainPage.xaml.cs
│ │ │ │ │ ├── Package.appxmanifest
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ │ └── Default.rd.xml
│ │ │ │ │ └── packages.config
│ │ │ │ ├── ClassLibrary/
│ │ │ │ │ ├── ClassLibrary.csproj
│ │ │ │ │ ├── Game.cs
│ │ │ │ │ └── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── ConsoleApplication/
│ │ │ │ │ ├── App.config
│ │ │ │ │ ├── ConsoleApplication.csproj
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── Game.sln
│ │ │ │ ├── WebApplication/
│ │ │ │ │ ├── App_Start/
│ │ │ │ │ │ ├── BundleConfig.cs
│ │ │ │ │ │ ├── FilterConfig.cs
│ │ │ │ │ │ ├── IdentityConfig.cs
│ │ │ │ │ │ ├── RouteConfig.cs
│ │ │ │ │ │ └── Startup.Auth.cs
│ │ │ │ │ ├── Content/
│ │ │ │ │ │ ├── Site.css
│ │ │ │ │ │ └── bootstrap.css
│ │ │ │ │ ├── Controllers/
│ │ │ │ │ │ ├── AccountController.cs
│ │ │ │ │ │ ├── HomeController.cs
│ │ │ │ │ │ └── ManageController.cs
│ │ │ │ │ ├── Global.asax
│ │ │ │ │ ├── Global.asax.cs
│ │ │ │ │ ├── Models/
│ │ │ │ │ │ ├── AccountViewModels.cs
│ │ │ │ │ │ ├── IdentityModels.cs
│ │ │ │ │ │ └── ManageViewModels.cs
│ │ │ │ │ ├── Project_Readme.html
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ ├── Scripts/
│ │ │ │ │ │ ├── _references.js
│ │ │ │ │ │ ├── bootstrap.js
│ │ │ │ │ │ ├── jquery-1.10.2.intellisense.js
│ │ │ │ │ │ ├── jquery-1.10.2.js
│ │ │ │ │ │ ├── jquery.validate-vsdoc.js
│ │ │ │ │ │ ├── jquery.validate.js
│ │ │ │ │ │ ├── jquery.validate.unobtrusive.js
│ │ │ │ │ │ ├── modernizr-2.6.2.js
│ │ │ │ │ │ └── respond.js
│ │ │ │ │ ├── Startup.cs
│ │ │ │ │ ├── Views/
│ │ │ │ │ │ ├── Account/
│ │ │ │ │ │ │ ├── ConfirmEmail.cshtml
│ │ │ │ │ │ │ ├── ExternalLoginConfirmation.cshtml
│ │ │ │ │ │ │ ├── ExternalLoginFailure.cshtml
│ │ │ │ │ │ │ ├── ForgotPassword.cshtml
│ │ │ │ │ │ │ ├── ForgotPasswordConfirmation.cshtml
│ │ │ │ │ │ │ ├── Login.cshtml
│ │ │ │ │ │ │ ├── Register.cshtml
│ │ │ │ │ │ │ ├── ResetPassword.cshtml
│ │ │ │ │ │ │ ├── ResetPasswordConfirmation.cshtml
│ │ │ │ │ │ │ ├── SendCode.cshtml
│ │ │ │ │ │ │ ├── VerifyCode.cshtml
│ │ │ │ │ │ │ └── _ExternalLoginsListPartial.cshtml
│ │ │ │ │ │ ├── Home/
│ │ │ │ │ │ │ ├── About.cshtml
│ │ │ │ │ │ │ ├── Contact.cshtml
│ │ │ │ │ │ │ └── Index.cshtml
│ │ │ │ │ │ ├── Manage/
│ │ │ │ │ │ │ ├── AddPhoneNumber.cshtml
│ │ │ │ │ │ │ ├── ChangePassword.cshtml
│ │ │ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ │ │ ├── ManageLogins.cshtml
│ │ │ │ │ │ │ ├── SetPassword.cshtml
│ │ │ │ │ │ │ └── VerifyPhoneNumber.cshtml
│ │ │ │ │ │ ├── Shared/
│ │ │ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ │ │ ├── Lockout.cshtml
│ │ │ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ │ │ └── _LoginPartial.cshtml
│ │ │ │ │ │ ├── Web.config
│ │ │ │ │ │ └── _ViewStart.cshtml
│ │ │ │ │ ├── Web.Debug.config
│ │ │ │ │ ├── Web.Release.config
│ │ │ │ │ ├── Web.config
│ │ │ │ │ ├── WebApplication.csproj
│ │ │ │ │ └── packages.config
│ │ │ │ └── WpfApplication/
│ │ │ │ ├── App.config
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── MainWindow.xaml
│ │ │ │ ├── MainWindow.xaml.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── Resources.Designer.cs
│ │ │ │ │ ├── Resources.resx
│ │ │ │ │ ├── Settings.Designer.cs
│ │ │ │ │ └── Settings.settings
│ │ │ │ └── WpfApplication.csproj
│ │ │ └── GameFramework/
│ │ │ ├── Game.Android/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Android.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── Resources/
│ │ │ │ ├── AboutResources.txt
│ │ │ │ ├── Resource.Designer.cs
│ │ │ │ └── Values/
│ │ │ │ └── Strings.xml
│ │ │ ├── Game.Core/
│ │ │ │ ├── Game.Core.csproj
│ │ │ │ ├── Game.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Game.Desktop/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Desktop.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Game.Ios/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Ios.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Game.Server/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Server.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Game.Universal/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Game.Universal.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ └── GameFramework.sln
│ │ ├── fig/
│ │ │ └── devenv.pptx
│ │ └── アプリ1/
│ │ ├── アプリ1/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── ApplicationInsights.config
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ └── Default.rd.xml
│ │ │ ├── packages.config
│ │ │ └── アプリ1.csproj
│ │ ├── アプリ1.sln
│ │ ├── 共通部品/
│ │ │ ├── Class1.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── 共通部品.csproj
│ │ ├── 社内ツール1/
│ │ │ ├── App.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ └── 社内ツール1.csproj
│ │ └── 社内ツール2/
│ │ ├── App.config
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── 社内ツール2.csproj
│ ├── Dynamic/
│ │ └── fig/
│ │ └── ExpressionTrees.pptx
│ ├── Event/
│ │ ├── Event.sln
│ │ ├── EventDriven/
│ │ │ ├── EventDriven.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Version1/
│ │ │ │ └── Program.cs
│ │ │ ├── Version2/
│ │ │ │ ├── KeyboardEventLoop.cs
│ │ │ │ └── Program.cs
│ │ │ └── Version3/
│ │ │ ├── KeyboardEventLoop.cs
│ │ │ └── Program.cs
│ │ ├── Observable/
│ │ │ ├── AnonymousFunction.cs
│ │ │ ├── EventInternal/
│ │ │ │ ├── Cshap4/
│ │ │ │ │ └── EventSample.cs
│ │ │ │ ├── Csharp1/
│ │ │ │ │ └── EventSample.cs
│ │ │ │ └── EventSample.cs
│ │ │ ├── EventSource.cs
│ │ │ ├── Observable.csproj
│ │ │ ├── ParameterProbrem.cs
│ │ │ ├── Program.cs
│ │ │ └── ReactiveExtensions.cs
│ │ └── fig/
│ │ └── event.pptx
│ ├── FileBaseApp/
│ │ ├── AllowUnsafeBlocks.cs
│ │ ├── AspNet.cs
│ │ ├── Cat.cs
│ │ ├── Csproj/
│ │ │ ├── Csproj.csproj
│ │ │ └── Program.cs
│ │ ├── InvariantGlobalization.cs
│ │ ├── Lib/
│ │ │ ├── Lib.csproj
│ │ │ └── Program.cs
│ │ ├── PackageReference.cs
│ │ ├── ProjectReference.cs
│ │ └── Shebang.cs
│ ├── Framework/
│ │ └── fig/
│ │ ├── Framework.pptx
│ │ └── JIT.pptx
│ ├── Functional/
│ │ ├── DelegateInternal/
│ │ │ ├── DelegateInternal.csproj
│ │ │ ├── F.cs
│ │ │ ├── GetLength.cs
│ │ │ ├── InstanceMethod.cs
│ │ │ ├── LambdaOptimization.cs
│ │ │ ├── MakePrimitiveContravariant.cs
│ │ │ ├── MakePrimitiveCovariant.cs
│ │ │ └── Program.cs
│ │ ├── ExtensionMethods/
│ │ │ ├── ExtensionMethods.csproj
│ │ │ ├── Instance.cs
│ │ │ ├── InstanceAndExtension.cs
│ │ │ └── MyApp.cs
│ │ ├── Functional.sln
│ │ ├── LambdaInternal/
│ │ │ ├── InSameBoat.cs
│ │ │ ├── InstanceMethod.cs
│ │ │ ├── LambdaInternal.csproj
│ │ │ ├── MultipleFunctions.cs
│ │ │ ├── Program.cs
│ │ │ └── StaticMethod.cs
│ │ └── LocalFunctions/
│ │ ├── Capture.cs
│ │ ├── CaptureOptimization.cs
│ │ ├── CaptureOverwrite.cs
│ │ ├── Factorial.cs
│ │ ├── Iterator/
│ │ │ ├── MyEnumerable1.cs
│ │ │ ├── MyEnumerable2.cs
│ │ │ ├── MyEnumerable3.cs
│ │ │ ├── Program1.cs
│ │ │ └── Program2.cs
│ │ ├── Lambda.cs
│ │ ├── LocalFunctions.csproj
│ │ ├── Program.cs
│ │ ├── RecursiveFunction/
│ │ │ ├── Node.cs
│ │ │ ├── Program.cs
│ │ │ └── Tree.cs
│ │ ├── TaskCache/
│ │ │ ├── Program1.cs
│ │ │ └── Program2.cs
│ │ ├── ToArray/
│ │ │ ├── Program1.cs
│ │ │ └── Program2.cs
│ │ └── Usage/
│ │ └── Usage.cs
│ ├── Interop/
│ │ ├── NativeInterop/
│ │ │ ├── .gitignore
│ │ │ ├── Com/
│ │ │ │ ├── ComImportSample.cs
│ │ │ │ └── ComLateBindingSample.cs
│ │ │ ├── Dll/
│ │ │ │ ├── BlittableSample1.cs
│ │ │ │ ├── BlittableSample2.cs
│ │ │ │ ├── CallbackSample.cs
│ │ │ │ ├── DllImportSample.cs
│ │ │ │ ├── StringSample.cs
│ │ │ │ └── YourOwnDllImport.cs
│ │ │ ├── NativeInterop.csproj
│ │ │ ├── NativeInterop.sln
│ │ │ ├── Program.cs
│ │ │ ├── Sample.xml
│ │ │ └── WinRt/
│ │ │ └── WinRtSample.cs
│ │ ├── NativeMemory/
│ │ │ ├── ManagedApp/
│ │ │ │ ├── Interop.cs
│ │ │ │ ├── ManagedApp.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NativeLib/
│ │ │ │ ├── NativeLib.cpp
│ │ │ │ ├── NativeLib.vcxproj
│ │ │ │ ├── NativeLib.vcxproj.filters
│ │ │ │ ├── ReadMe.txt
│ │ │ │ ├── dllmain.cpp
│ │ │ │ ├── stdafx.cpp
│ │ │ │ ├── stdafx.h
│ │ │ │ └── targetver.h
│ │ │ └── NativeMemory.sln
│ │ ├── TypedReference/
│ │ │ ├── ArgList/
│ │ │ │ └── Program.cs
│ │ │ ├── CppReference/
│ │ │ │ ├── CppReference.cpp
│ │ │ │ ├── CppReference.vcxproj
│ │ │ │ ├── CppReference.vcxproj.filters
│ │ │ │ ├── stdafx.cpp
│ │ │ │ ├── stdafx.h
│ │ │ │ └── targetver.h
│ │ │ ├── ImplicitReference/
│ │ │ │ └── Program.cs
│ │ │ ├── InteropArgList/
│ │ │ │ └── Program.cs
│ │ │ ├── MakeRef/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ ├── Readme.md
│ │ │ ├── ReferenceUsage/
│ │ │ │ └── Program.cs
│ │ │ ├── TypedReference.csproj
│ │ │ └── TypedReference.sln
│ │ ├── Unsafe/
│ │ │ ├── Unsafe/
│ │ │ │ ├── Array.cs
│ │ │ │ ├── CustomFixed.cs
│ │ │ │ ├── EmptyArray.cs
│ │ │ │ ├── GcTracking.cs
│ │ │ │ ├── MutateString.cs
│ │ │ │ ├── PointerOperators.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RewriteString.cs
│ │ │ │ ├── String.Copy.cs
│ │ │ │ ├── String.cs
│ │ │ │ ├── StringInternal.cs
│ │ │ │ └── Unsafe.csproj
│ │ │ └── Unsafe.sln
│ │ ├── Win32Dll/
│ │ │ ├── ReadMe.txt
│ │ │ ├── Win32Dll.cpp
│ │ │ ├── Win32Dll.vcxproj
│ │ │ ├── Win32Dll.vcxproj.filters
│ │ │ ├── dllmain.cpp
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ │ └── fig/
│ │ └── unsafe.pptx
│ ├── MemoryManagement/
│ │ ├── DefaultValue/
│ │ │ ├── ArrayInitialization.cs
│ │ │ ├── DefaultValue.csproj
│ │ │ ├── FieldInitialization.cs
│ │ │ ├── Point.cs
│ │ │ └── Program.cs
│ │ ├── MemoryManagement.sln
│ │ ├── UninitializedMemory/
│ │ │ ├── ReadMe.txt
│ │ │ ├── UninitializedMemory.cpp
│ │ │ ├── UninitializedMemory.vcxproj
│ │ │ ├── UninitializedMemory.vcxproj.filters
│ │ │ ├── stdafx.cpp
│ │ │ ├── stdafx.h
│ │ │ └── targetver.h
│ │ └── fig/
│ │ └── fig immutable.pptx
│ ├── Misc/
│ │ ├── Keywords/
│ │ │ ├── Await/
│ │ │ │ ├── async.cs
│ │ │ │ ├── await.cs
│ │ │ │ └── yield.cs
│ │ │ ├── Keywords.csproj
│ │ │ ├── NameOf/
│ │ │ │ ├── NameOf.cs
│ │ │ │ └── UsingStatic.cs
│ │ │ ├── Program.cs
│ │ │ ├── Var/
│ │ │ │ ├── Variance.cs
│ │ │ │ └── var.cs
│ │ │ └── Yield/
│ │ │ ├── Program.cs
│ │ │ └── cs1.cs
│ │ ├── Misc.sln
│ │ └── PatternBased/
│ │ ├── CollectionInitializer.cs
│ │ ├── DeconstructBenchmark.cs
│ │ ├── PatternBased.csproj
│ │ ├── Queryable1.cs
│ │ ├── Queryable12.cs
│ │ └── Using.cs
│ ├── NullableReferenceTypes/
│ │ ├── DefiniteAssignment/
│ │ │ ├── DefiniteAssignment.csproj
│ │ │ └── Program.cs
│ │ ├── FlowAnalysis/
│ │ │ ├── Assingment.cs
│ │ │ ├── Attributes.cs
│ │ │ ├── BclAnnotation.cs
│ │ │ ├── Default.cs
│ │ │ ├── Equality.cs
│ │ │ ├── FlowAnalysis.csproj
│ │ │ ├── Forgiving.cs
│ │ │ └── Generics.cs
│ │ ├── NullPointer/
│ │ │ ├── InvalidPointer.cs
│ │ │ ├── ManualNullCheck/
│ │ │ │ ├── CallHierarchy.cs
│ │ │ │ └── DuplicateNullCheck.cs
│ │ │ └── NullPointer.csproj
│ │ ├── NullableReferenceTypes.sln
│ │ ├── ProjectLevel/
│ │ │ ├── Annotations/
│ │ │ │ └── Annotations.csproj
│ │ │ ├── Disable/
│ │ │ │ └── Disable.csproj
│ │ │ ├── Enable/
│ │ │ │ └── Enable.csproj
│ │ │ ├── Nullability.cs
│ │ │ └── Warnings/
│ │ │ └── Warnings.csproj
│ │ └── SourceLevel/
│ │ ├── IntParse.cs
│ │ ├── Program.cs
│ │ └── SourceLevel.csproj
│ ├── Old/
│ │ ├── ApplyXsl/
│ │ │ ├── ApplyXsl.cs
│ │ │ └── readme.txt
│ │ ├── BitField/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── BitField.cs
│ │ │ ├── BitField.csproj
│ │ │ ├── BitField.sln
│ │ │ ├── BitField.xml
│ │ │ ├── SampleLogic.cs
│ │ │ ├── readme.html
│ │ │ └── test.cs
│ │ ├── Complex/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── CartesianComplex.cs
│ │ │ ├── Complex.cs
│ │ │ ├── PolarComplex.cs
│ │ │ ├── makefile
│ │ │ ├── readme.txt
│ │ │ └── test.cs
│ │ ├── DrawImage/
│ │ │ ├── DrawImage.csproj
│ │ │ ├── Form1.Designer.cs
│ │ │ ├── Form1.cs
│ │ │ ├── Form1.resx
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── KeyLogger/
│ │ │ ├── Gma.UserActivityMonitor/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── GlobalEventProvider.cs
│ │ │ │ ├── Gma.UserActivityMonitor.csproj
│ │ │ │ ├── HookManager.Callbacks.cs
│ │ │ │ ├── HookManager.Structures.cs
│ │ │ │ ├── HookManager.Windows.cs
│ │ │ │ ├── HookManager.cs
│ │ │ │ └── MouseEventExtArgs.cs
│ │ │ ├── KeyLogger/
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── KeyLogger.csproj
│ │ │ │ ├── NativeWin32.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ ├── Resources.Designer.cs
│ │ │ │ │ ├── Resources.resx
│ │ │ │ │ ├── Settings.Designer.cs
│ │ │ │ │ └── Settings.settings
│ │ │ │ ├── Window1.xaml
│ │ │ │ └── Window1.xaml.cs
│ │ │ └── KeyLogger.sln
│ │ ├── LineArt/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Form1.cs
│ │ │ ├── Form1.resx
│ │ │ ├── LineArt.csproj
│ │ │ ├── LineArt.sln
│ │ │ ├── SettingForm.cs
│ │ │ └── SettingForm.resx
│ │ ├── SoundLibrary/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── BitOperation.cs
│ │ │ ├── Command/
│ │ │ │ └── CommandParser.cs
│ │ │ ├── Data/
│ │ │ │ ├── DataGenerator.cs
│ │ │ │ ├── FourierSeriesGenerator.cs
│ │ │ │ ├── ImpulseGenerator.cs
│ │ │ │ ├── MixedDataGenerator.cs
│ │ │ │ ├── RampGenerator.cs
│ │ │ │ ├── RandomGenerator.cs
│ │ │ │ ├── SinusoidGenerator.cs
│ │ │ │ ├── StepGenerator.cs
│ │ │ │ ├── TspGenerator.cs
│ │ │ │ └── WhiteNoiseGenerator.cs
│ │ │ ├── Filter/
│ │ │ │ ├── BandPass/
│ │ │ │ │ └── BandPassFir.cs
│ │ │ │ ├── CircularBuffer.cs
│ │ │ │ ├── Connector.cs
│ │ │ │ ├── Delay/
│ │ │ │ │ ├── Delay.cs
│ │ │ │ │ ├── FractionalDelay.cs
│ │ │ │ │ └── IDelay.cs
│ │ │ │ ├── Equalizer/
│ │ │ │ │ ├── ButterworthFilterDesigner.cs
│ │ │ │ │ ├── ChebyshevFilterDesigner.cs
│ │ │ │ │ ├── EllipticFilterDesigner.cs
│ │ │ │ │ ├── FilterDesigner.cs
│ │ │ │ │ ├── ParametricEqualizer.cs
│ │ │ │ │ └── Type.cs
│ │ │ │ ├── Filter.cs
│ │ │ │ ├── Fir.cs
│ │ │ │ ├── FractionalCombFilter.cs
│ │ │ │ ├── Iir.cs
│ │ │ │ ├── Misc/
│ │ │ │ │ ├── AllPassFilter.cs
│ │ │ │ │ ├── Amplifier.cs
│ │ │ │ │ ├── CombFilter.cs
│ │ │ │ │ ├── Equalizer.cs
│ │ │ │ │ └── MultiDelay.cs
│ │ │ │ ├── Mixer.cs
│ │ │ │ └── readme.txt
│ │ │ ├── FilterGenerator/
│ │ │ │ ├── BandPassFir.cs
│ │ │ │ ├── Basic.cs
│ │ │ │ ├── Comb.cs
│ │ │ │ ├── Common.cs
│ │ │ │ ├── Connector.cs
│ │ │ │ ├── Equalizer.cs
│ │ │ │ ├── FilterGeneratorForm.cs
│ │ │ │ ├── FilterGeneratorForm.resx
│ │ │ │ ├── Fir.cs
│ │ │ │ ├── Iir.cs
│ │ │ │ └── Mixer.cs
│ │ │ ├── Mathematics/
│ │ │ │ ├── Array.cs
│ │ │ │ ├── Complex.cs
│ │ │ │ ├── ComplexMath.cs
│ │ │ │ ├── Constant.cs
│ │ │ │ ├── Continuous/
│ │ │ │ │ ├── Function.cs
│ │ │ │ │ └── Range.cs
│ │ │ │ ├── Discrete/
│ │ │ │ │ ├── CircularConvolution.cs
│ │ │ │ │ ├── CircularCorrelation.cs
│ │ │ │ │ ├── Convolution.cs
│ │ │ │ │ ├── Correlation.cs
│ │ │ │ │ ├── Differential.cs
│ │ │ │ │ └── Function.cs
│ │ │ │ ├── Elliptic.cs
│ │ │ │ ├── Expression/
│ │ │ │ │ ├── Polynomial.cs
│ │ │ │ │ └── Rational.cs
│ │ │ │ ├── Function/
│ │ │ │ │ ├── Algorithm.cs
│ │ │ │ │ ├── Binary.cs
│ │ │ │ │ ├── CachedFunction.cs
│ │ │ │ │ ├── ComplexVariable.cs
│ │ │ │ │ ├── Constant.cs
│ │ │ │ │ ├── Elementary/
│ │ │ │ │ │ ├── Exp.cs
│ │ │ │ │ │ ├── GeneralPolynomial.cs
│ │ │ │ │ │ └── Polynomial.cs
│ │ │ │ │ ├── Fraction.cs
│ │ │ │ │ ├── Function.cs
│ │ │ │ │ ├── Imaginary.cs
│ │ │ │ │ ├── Multiple.cs
│ │ │ │ │ ├── Product.cs
│ │ │ │ │ ├── Series.cs
│ │ │ │ │ ├── Sum.cs
│ │ │ │ │ ├── Unary.cs
│ │ │ │ │ ├── Variable.cs
│ │ │ │ │ └── VariableTable.cs
│ │ │ │ ├── Misc.cs
│ │ │ │ ├── Statistics.cs
│ │ │ │ └── ThreeDimension/
│ │ │ │ ├── AffineMatrix.cs
│ │ │ │ ├── Matrix.cs
│ │ │ │ ├── Quaternion.cs
│ │ │ │ └── Vector.cs
│ │ │ ├── Misc/
│ │ │ │ └── Trace.cs
│ │ │ ├── Music/
│ │ │ │ ├── Amplifier.cs
│ │ │ │ ├── CompoundSound.cs
│ │ │ │ ├── Envelope.cs
│ │ │ │ ├── HarmonicTone.cs
│ │ │ │ ├── PeriodicSound.cs
│ │ │ │ ├── PureTone.cs
│ │ │ │ ├── Sound.cs
│ │ │ │ ├── SoundFromData.cs
│ │ │ │ ├── SoundWithFilter.cs
│ │ │ │ ├── Temperament.cs
│ │ │ │ ├── Tremolo.cs
│ │ │ │ └── Vibrato.cs
│ │ │ ├── Pipe/
│ │ │ │ ├── CascadePipe.cs
│ │ │ │ ├── Monaural/
│ │ │ │ │ ├── FilteredPipe.cs
│ │ │ │ │ ├── RateTransposer.cs
│ │ │ │ │ └── TimeStretcher.cs
│ │ │ │ ├── Pipe.cs
│ │ │ │ ├── Queue.cs
│ │ │ │ └── Stereo/
│ │ │ │ ├── FilteredPipe.cs
│ │ │ │ ├── PitchShifter.cs
│ │ │ │ ├── RateTransposer.cs
│ │ │ │ └── TimeStretcher.cs
│ │ │ ├── SoundLibrary.csproj
│ │ │ ├── SpectrumAnalysis/
│ │ │ │ ├── Fft.cs
│ │ │ │ ├── Spectrum.cs
│ │ │ │ └── readme.txt
│ │ │ ├── Stream/
│ │ │ │ ├── Monaural/
│ │ │ │ │ ├── FilteredStream.cs
│ │ │ │ │ ├── RateTransposer.cs
│ │ │ │ │ ├── TimeStretcher.cs
│ │ │ │ │ └── WaveStream.cs
│ │ │ │ └── Stream.cs
│ │ │ ├── Util.cs
│ │ │ ├── Wave/
│ │ │ │ ├── FilterAdapter.cs
│ │ │ │ ├── Util.cs
│ │ │ │ ├── Wave.cs
│ │ │ │ ├── WaveReader.cs
│ │ │ │ ├── WaveWriter.cs
│ │ │ │ └── readme.txt
│ │ │ ├── WaveAnalysis/
│ │ │ │ ├── DataList.cs
│ │ │ │ ├── WaveAnalyzer.cs
│ │ │ │ ├── WaveData.cs
│ │ │ │ ├── WaveFrequency.cs
│ │ │ │ ├── WaveMS.cs
│ │ │ │ ├── WaveMonaural.cs
│ │ │ │ └── WaveTime.cs
│ │ │ ├── documents/
│ │ │ │ ├── Data/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Filter/
│ │ │ │ │ ├── BandPass/
│ │ │ │ │ │ └── index.html
│ │ │ │ │ ├── Delay/
│ │ │ │ │ │ └── index.html
│ │ │ │ │ ├── Equalizer/
│ │ │ │ │ │ └── index.html
│ │ │ │ │ ├── Misc/
│ │ │ │ │ │ └── index.html
│ │ │ │ │ └── index.html
│ │ │ │ ├── Mathematics/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Music/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Pipe/
│ │ │ │ │ └── index.html
│ │ │ │ ├── SpectrumAnalysis/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Wave/
│ │ │ │ │ └── index.html
│ │ │ │ ├── WaveAnalysis/
│ │ │ │ │ └── index.html
│ │ │ │ ├── index.html
│ │ │ │ └── style.css
│ │ │ └── fft/
│ │ │ ├── Makefile
│ │ │ ├── fft.cpp
│ │ │ ├── fftsg.c
│ │ │ └── readme.txt
│ │ ├── UserInputSample/
│ │ │ ├── UserInputSample/
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── DelegateCommand.cs
│ │ │ │ ├── InputData.cs
│ │ │ │ ├── MainWindow.xaml
│ │ │ │ ├── MainWindow.xaml.cs
│ │ │ │ ├── NotificationObject.cs
│ │ │ │ └── UserInputSample.csproj
│ │ │ └── UserInputSample.sln
│ │ ├── reversi/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── OptionForm.cs
│ │ │ ├── OptionForm.resx
│ │ │ ├── Reversi.csproj
│ │ │ ├── Reversi.sln
│ │ │ ├── ReversiBoard.cs
│ │ │ ├── ReversiForm.cs
│ │ │ ├── ReversiForm.resx
│ │ │ ├── ReversiPanel.cs
│ │ │ └── licenses.licx
│ │ └── spctrum/
│ │ ├── AppMain/
│ │ │ ├── AppSettings.cs
│ │ │ ├── MainForm.cs
│ │ │ ├── MainForm.resx
│ │ │ ├── WaveGraphForm.cs
│ │ │ ├── WaveGraphForm.resx
│ │ │ ├── WaveLoadForm.cs
│ │ │ ├── WaveLoadForm.resx
│ │ │ ├── WaveSaveForm.cs
│ │ │ └── WaveSaveForm.resx
│ │ ├── AssemblyInfo.cs
│ │ ├── Class1.cs
│ │ ├── Filter/
│ │ │ ├── CircularBuffer.cs
│ │ │ ├── Connector.cs
│ │ │ ├── Filter.cs
│ │ │ ├── Fir.cs
│ │ │ └── Iir.cs
│ │ ├── Graph/
│ │ │ ├── Graph.cs
│ │ │ ├── Graph.resx
│ │ │ ├── GraphForm.cs
│ │ │ ├── GraphForm.resx
│ │ │ ├── GraphForm2.cs
│ │ │ └── GraphForm2.resx
│ │ ├── Spectrum.csproj
│ │ ├── SpectrumAnalysis/
│ │ │ ├── Common.cs
│ │ │ ├── Complex.cs
│ │ │ ├── Fft.cs
│ │ │ └── Spectrum.cs
│ │ ├── Wave/
│ │ │ └── Wave.cs
│ │ ├── WaveAnalysis/
│ │ │ ├── DataList.cs
│ │ │ ├── WaveAnalyzer.cs
│ │ │ └── WaveData.cs
│ │ ├── fft/
│ │ │ ├── Makefile
│ │ │ ├── fft.cpp
│ │ │ ├── fftsg.c
│ │ │ ├── readme.txt
│ │ │ └── vsvars32.bat
│ │ ├── readme/
│ │ │ └── fig.ppt
│ │ └── spectrum.sln
│ ├── Oop/
│ │ ├── GenericsSample/
│ │ │ ├── GenericsSample.csproj
│ │ │ ├── Template.cs
│ │ │ ├── TypeErasure.cs
│ │ │ ├── ValueType.cs
│ │ │ ├── Wrapper.cs
│ │ │ └── fig/
│ │ │ └── fig.pptx
│ │ ├── InterfaceSample/
│ │ │ ├── Bcl/
│ │ │ │ ├── IComparableSample.cs
│ │ │ │ ├── IDisposableSample.cs
│ │ │ │ ├── IEnumerableSample.cs
│ │ │ │ └── IReadOnlyListSample.cs
│ │ │ ├── Explicit/
│ │ │ │ ├── ExpliciteImplementationSample.cs
│ │ │ │ ├── GenericInterfaceSample.cs
│ │ │ │ ├── MultipleImplementationSample.cs
│ │ │ │ └── PolymorphicIEquatableSample.cs
│ │ │ ├── InterfaceSample.csproj
│ │ │ └── Program.cs
│ │ ├── MultipleInheritance/
│ │ │ └── fig/
│ │ │ ├── fig.pptx
│ │ │ └── 多重継承問題.docx
│ │ ├── Oop.sln
│ │ ├── TopLevelAccessibility/
│ │ │ ├── ConsoleApplication/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ConsoleApplication.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ReferredClassLibrary/
│ │ │ │ ├── Inheritance.cs
│ │ │ │ ├── Internals.cs
│ │ │ │ ├── Nested.cs
│ │ │ │ ├── Publics.cs
│ │ │ │ └── ReferredClassLibrary.csproj
│ │ │ └── fig/
│ │ │ └── fig.pptx
│ │ ├── ValueTypeGenerics/
│ │ │ ├── AvoidBoxing.cs
│ │ │ ├── BinaryOperationBenchmark.cs
│ │ │ ├── Foreach/
│ │ │ │ ├── Iterator/
│ │ │ │ │ └── Program.cs
│ │ │ │ └── Struct/
│ │ │ │ └── Program.cs
│ │ │ ├── GenericArithmeticOperators/
│ │ │ │ ├── Generics/
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── IBinaryOperator.cs
│ │ │ │ ├── Interface/
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── PseudoStatic/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ └── ValueTypeGenerics.csproj
│ │ ├── Variance/
│ │ │ ├── ArrayCovariance.cs
│ │ │ ├── Base.cs
│ │ │ ├── Contravariance.cs
│ │ │ ├── Covariance.cs
│ │ │ ├── NestedVariance.cs
│ │ │ ├── Program.cs
│ │ │ └── Variance.csproj
│ │ └── fig/
│ │ └── fig.pptx
│ ├── Package/
│ │ └── TypeForwarding/
│ │ ├── BasicSamples/
│ │ │ ├── ActualLibrary/
│ │ │ │ ├── ActualLibrary.csproj
│ │ │ │ ├── Class1.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── ConsoleApplication1/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── _ConsoleApplication1.csproj
│ │ ├── FormattableString/
│ │ │ ├── ClassLibrary35/
│ │ │ │ ├── ClassLibrary35.csproj
│ │ │ │ ├── Formatter1.cs
│ │ │ │ ├── IFormatter.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ClassLibrary46/
│ │ │ │ ├── ClassLibrary46.csproj
│ │ │ │ ├── Formatter2.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── FormattableString20/
│ │ │ │ ├── FormattableString.cs
│ │ │ │ ├── FormattableString20.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── FormattableString46/
│ │ │ │ ├── FormattableString.cs
│ │ │ │ ├── FormattableString46.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample35/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── Sample35.csproj
│ │ │ └── Sample46/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Sample46.csproj
│ │ ├── TypeForwarding.sln
│ │ ├── TypeForwardingLibrary/
│ │ │ ├── AssemblyAttributes.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── TypeForwardingLibrary.csproj
│ │ ├── VersioningSamples/
│ │ │ ├── Version1/
│ │ │ │ └── MonolithicClassLibrary/
│ │ │ │ ├── HttpExtensions.cs
│ │ │ │ ├── MonolithicClassLibrary.csproj
│ │ │ │ ├── NumericExtensions.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── StringExtensions.cs
│ │ │ └── Version2/
│ │ │ ├── HttpClassLibrary/
│ │ │ │ ├── HttpClassLibrary.csproj
│ │ │ │ ├── HttpExtensions.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── MonolithicClassLibrary/
│ │ │ │ ├── MonolithicClassLibrary.V2.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── TypeForward.cs
│ │ │ ├── NumericClassLibrary/
│ │ │ │ ├── NumericClassLibrary.csproj
│ │ │ │ ├── NumericExtensions.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── StringClassLibrary/
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── StringClassLibrary.csproj
│ │ │ └── StringExtensions.cs
│ │ └── fig/
│ │ └── fig.pptx
│ ├── Resource/
│ │ ├── Boxing/
│ │ │ ├── Boxing.csproj
│ │ │ ├── Generics/
│ │ │ │ └── Program.cs
│ │ │ ├── IntAsObject/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ └── ToString/
│ │ │ └── Program.cs
│ │ ├── ByRef/
│ │ │ ├── ByRef.csproj
│ │ │ ├── InOutAreRef.cs
│ │ │ ├── InParameter/
│ │ │ │ ├── InCopy.cs
│ │ │ │ └── Quarternion.cs
│ │ │ ├── OutParameter/
│ │ │ │ ├── Out.cs
│ │ │ │ └── Ref.cs
│ │ │ ├── Program.cs
│ │ │ ├── RefExtensions/
│ │ │ │ ├── FieldRef.cs
│ │ │ │ ├── Generics.cs
│ │ │ │ └── Quarternion.cs
│ │ │ ├── RefReassignment/
│ │ │ │ ├── RefFor.cs
│ │ │ │ ├── RefForeach.cs
│ │ │ │ ├── RefReassingment.cs
│ │ │ │ └── RefReassingmentMax.cs
│ │ │ └── StackOnly.cs
│ │ ├── ClassOrStruct/
│ │ │ ├── ClassOrStruct.csproj
│ │ │ ├── Csharp6.cs
│ │ │ ├── DefaultValue.cs
│ │ │ ├── Memberwise.cs
│ │ │ ├── ParameterlessConstructor.cs
│ │ │ ├── Program.cs
│ │ │ ├── SampleClass.cs
│ │ │ └── SampleStruct.cs
│ │ ├── RecursiveReadOnly/
│ │ │ ├── ClassReadonly.cs
│ │ │ ├── Copy.cs
│ │ │ ├── Program.cs
│ │ │ ├── ReadonlyStruct.cs
│ │ │ ├── RecursiveReadOnly.csproj
│ │ │ ├── StructReadonly.cs
│ │ │ └── ThisRewrite.cs
│ │ ├── RefAndPointer/
│ │ │ ├── NullRef.cs
│ │ │ ├── RefAndPointer.csproj
│ │ │ ├── UnsafeClass.cs
│ │ │ └── UnsafeRef.cs
│ │ ├── RefReturns/
│ │ │ ├── App.config
│ │ │ ├── MultiStepRef/
│ │ │ │ └── Program.cs
│ │ │ ├── Pointers/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RefLocals/
│ │ │ │ └── Program.cs
│ │ │ ├── RefReturns/
│ │ │ │ └── Program.cs
│ │ │ ├── RefReturns.csproj
│ │ │ ├── Summary.cs
│ │ │ └── ValueTypePassedByReference/
│ │ │ ├── ArraySample.cs
│ │ │ ├── Capsuled/
│ │ │ │ └── Program.cs
│ │ │ ├── CircularBuffer.cs
│ │ │ ├── ImmutablePoint.cs
│ │ │ ├── Program.cs
│ │ │ ├── Raw/
│ │ │ │ └── Program.cs
│ │ │ └── Ref/
│ │ │ └── Program.cs
│ │ ├── ResourceManagement.sln
│ │ ├── Span/
│ │ │ ├── .gitignore
│ │ │ ├── Pointer.cs
│ │ │ ├── Program.cs
│ │ │ ├── SafeStackalloc.cs
│ │ │ ├── Span.csproj
│ │ │ ├── SpanSafetyRules.cs
│ │ │ ├── StreamRead.cs
│ │ │ ├── Substring.cs
│ │ │ └── VariousTypeOfMemory.cs
│ │ ├── StructLayoutSample/
│ │ │ ├── AbuseUnion.cs
│ │ │ ├── AutoLayout.cs
│ │ │ ├── ExplicitLayout.cs
│ │ │ ├── IllegalAddress.cs
│ │ │ ├── IllegalLayout.cs
│ │ │ ├── SequentialLayout.Pack.cs
│ │ │ ├── SequentialLayout.cs
│ │ │ ├── StructLayoutSample.csproj
│ │ │ └── Union.cs
│ │ ├── StructPerformance/
│ │ │ ├── Class/
│ │ │ │ ├── Immutable/
│ │ │ │ │ ├── Calculator.cs
│ │ │ │ │ └── Vector.cs
│ │ │ │ └── Mutable/
│ │ │ │ ├── Calculator.cs
│ │ │ │ └── Vector.cs
│ │ │ ├── ICalculator.cs
│ │ │ ├── Program.cs
│ │ │ ├── RandomExtensions.cs
│ │ │ ├── Struct/
│ │ │ │ ├── Immutable/
│ │ │ │ │ ├── Calculator.cs
│ │ │ │ │ └── Vector.cs
│ │ │ │ └── Mutable/
│ │ │ │ ├── Calculator.cs
│ │ │ │ └── Vector.cs
│ │ │ └── StructPerformance.csproj
│ │ ├── WeakReference/
│ │ │ ├── HowToUse/
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ ├── WeakEvent/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── WeakEventExtensions.AsWeakObservable.cs
│ │ │ │ ├── WeakEventExtensions.FinalizeDiposable.cs
│ │ │ │ └── WeakEventExtensions.cs
│ │ │ ├── WeakReference.csproj
│ │ │ └── WeakTable/
│ │ │ ├── Person.cs
│ │ │ └── Program.cs
│ │ └── fig/
│ │ ├── fig nre.pptx
│ │ ├── fig readonly.pptx
│ │ ├── fig ref.pptx
│ │ └── fig span.pptx
│ ├── Scripting/
│ │ ├── Scripting.sln
│ │ ├── TurtleGraphics/
│ │ │ ├── App.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ ├── TurtleGraphics.csproj
│ │ │ ├── ViewModels/
│ │ │ │ ├── BindableBase.cs
│ │ │ │ ├── Command.cs
│ │ │ │ ├── Commander.cs
│ │ │ │ ├── Cursor.ValueChanged.cs
│ │ │ │ ├── Cursor.cs
│ │ │ │ ├── Line.ValueChanged.cs
│ │ │ │ ├── Line.cs
│ │ │ │ └── TurtleGraphicsViewModel.cs
│ │ │ └── project.json
│ │ ├── global.json
│ │ └── src/
│ │ └── Scripting/
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Scripting.xproj
│ │ ├── a.csx
│ │ └── project.json
│ ├── Start/
│ │ ├── IdentifierScope/
│ │ │ ├── AfterDeclaration.cs
│ │ │ ├── AnonymousFunction.cs
│ │ │ ├── EmbeddedStatement.cs
│ │ │ ├── For.cs
│ │ │ ├── Foreach.cs
│ │ │ ├── IdentifierScope.csproj
│ │ │ ├── IsOperator.cs
│ │ │ ├── Iterator.cs
│ │ │ ├── Lifetime.cs
│ │ │ ├── LocalFunctions.cs
│ │ │ ├── Loop.cs
│ │ │ ├── Member.cs
│ │ │ ├── Method.cs
│ │ │ ├── Nest.cs
│ │ │ ├── Program.cs
│ │ │ ├── Scope.cs
│ │ │ ├── TypeName.cs
│ │ │ ├── TypeName1.cs
│ │ │ └── TypeName2.cs
│ │ ├── Start.sln
│ │ ├── StringInterplation/
│ │ │ ├── Overload.cs
│ │ │ ├── Program.cs
│ │ │ └── StringInterplation.csproj
│ │ ├── Variables/
│ │ │ ├── Literals.cs
│ │ │ ├── Program.cs
│ │ │ └── Variables.csproj
│ │ └── fig/
│ │ └── fig.pptx
│ ├── StructuredProgramming/
│ │ ├── BackportEnumerable/
│ │ │ ├── Action.cs
│ │ │ ├── BackportEnumerable.csproj
│ │ │ ├── Func.cs
│ │ │ ├── Linq/
│ │ │ │ └── Enumerable.cs
│ │ │ ├── Runtime/
│ │ │ │ └── CompilerServices/
│ │ │ │ └── ExtensionAttribute.cs
│ │ │ └── readme.txt
│ │ ├── Exceptions/
│ │ │ ├── ExceptionFilterSample.cs
│ │ │ ├── ExceptionImplementation.cs
│ │ │ ├── Exceptions.csproj
│ │ │ ├── IgnoreErrorImplementation.cs
│ │ │ ├── Program.cs
│ │ │ ├── ReturnCodeImplementation.cs
│ │ │ └── ThrowExpressions.cs
│ │ ├── Expressions/
│ │ │ ├── Expressions.cs
│ │ │ ├── Expressions.csproj
│ │ │ ├── Program.cs
│ │ │ └── Statements.cs
│ │ ├── ExternAliasConsoleApplication/
│ │ │ ├── ExternAliasConsoleApplication.csproj
│ │ │ └── Program.cs
│ │ ├── Function/
│ │ │ ├── ExpressionBodied.cs
│ │ │ ├── FuncAction.cs
│ │ │ ├── Function.csproj
│ │ │ ├── InputNumberSample.cs
│ │ │ ├── MultipleReturns.cs
│ │ │ ├── MyMath.cs
│ │ │ ├── NoParameterNoReturn.cs
│ │ │ ├── OverloadSample.cs
│ │ │ └── Program.cs
│ │ ├── Inlining/
│ │ │ ├── CommonExecutionPath.cs
│ │ │ ├── Inlining.csproj
│ │ │ ├── Program.cs
│ │ │ ├── SimpleAdd.cs
│ │ │ └── WithLoop.cs
│ │ ├── Namespaces/
│ │ │ ├── MyApp.cs
│ │ │ ├── Namespaces.csproj
│ │ │ ├── Program.cs
│ │ │ └── global.cs
│ │ ├── OverloadResolution/
│ │ │ ├── OverloadResolution/
│ │ │ │ ├── Ambiguous.cs
│ │ │ │ ├── Csharp6Lambda.cs
│ │ │ │ ├── Csharp73/
│ │ │ │ │ ├── ColorColor.cs
│ │ │ │ │ ├── DummyOptionalParamter.cs
│ │ │ │ │ ├── GenericConstraints.cs
│ │ │ │ │ ├── MethodReturn.cs
│ │ │ │ │ ├── Refness.cs
│ │ │ │ │ ├── Static.cs
│ │ │ │ │ ├── StructClass.cs
│ │ │ │ │ └── UncompilableStatic.cs
│ │ │ │ ├── ExpressionTree.cs
│ │ │ │ ├── Extensions.cs
│ │ │ │ ├── Generic.cs
│ │ │ │ ├── Inference.cs
│ │ │ │ ├── Lambda.cs
│ │ │ │ ├── OptionalParameter.cs
│ │ │ │ ├── OverloadResolution.csproj
│ │ │ │ ├── Paremeter.cs
│ │ │ │ ├── StringInterpolation.cs
│ │ │ │ └── ValueType.cs
│ │ │ └── OverloadResolution.sln
│ │ ├── Params/
│ │ │ ├── NoParam.cs
│ │ │ └── Params.csproj
│ │ ├── StructuredProgramming.sln
│ │ ├── Tuples/
│ │ │ ├── AnonymousTypes.cs
│ │ │ ├── Tuples.cs
│ │ │ ├── Tuples.csproj
│ │ │ ├── TypeX.cs
│ │ │ └── personal_infomation.csv
│ │ └── fig/
│ │ ├── fig expressions.pptx
│ │ └── fig function.pptx
│ └── ufcpp2000/
│ ├── algorithm/
│ │ ├── fig/
│ │ │ └── fig.ppt
│ │ └── src/
│ │ ├── ArrayList.cs
│ │ ├── BinaryTree.cs
│ │ ├── CircularBuffer.cs
│ │ ├── Dictionary.cs
│ │ ├── ForwardLinkedList.cs
│ │ ├── HashTable.cs
│ │ ├── LinkedList.cs
│ │ ├── PriorityQueue.cs
│ │ ├── Queue.cs
│ │ ├── Set.cs
│ │ ├── Sort.cs
│ │ ├── SortedArray.cs
│ │ └── Stack.cs
│ ├── common/
│ │ ├── ads
│ │ ├── footer
│ │ ├── googlecolor.js
│ │ ├── header
│ │ ├── ifooter
│ │ ├── iheader
│ │ ├── mfooter
│ │ ├── mheader
│ │ ├── underbody
│ │ ├── undermenu
│ │ └── 没/
│ │ └── Live Search.txt
│ ├── computer/
│ │ └── fig/
│ │ ├── GateLevel/
│ │ │ └── fig.pptx
│ │ ├── Logical/
│ │ │ └── fig.pptx
│ │ ├── fig.ppt
│ │ └── fig.pptx
│ ├── csharp/
│ │ ├── demo/
│ │ │ └── readme.md
│ │ ├── dic/
│ │ │ ├── .htaccess
│ │ │ ├── reversedic.css
│ │ │ ├── reversedic.html
│ │ │ ├── reversedic.xml
│ │ │ └── reversedic.xsl
│ │ ├── draft/
│ │ │ ├── Characteristics.cs
│ │ │ ├── Characteristics.txt
│ │ │ ├── CharacteristicsViewModel.cs
│ │ │ ├── DelegateCommand.cs
│ │ │ ├── SampleClass.cs
│ │ │ ├── SampleClass.xml
│ │ │ └── ViewModelTemplate.ps1
│ │ ├── fig/
│ │ │ ├── Framework/
│ │ │ │ └── fig framework.pptx
│ │ │ ├── Function/
│ │ │ │ └── fig function.pptx
│ │ │ ├── LinqToSql.pptx
│ │ │ ├── fig Interop.pptx
│ │ │ ├── fig OOP.pptx
│ │ │ ├── fig appendix.pptx
│ │ │ ├── fig immutable.pptx
│ │ │ ├── fig null.pptx
│ │ │ ├── fig はじめに.pptx
│ │ │ ├── fig データ処理.pptx
│ │ │ ├── fig リソース管理.pptx
│ │ │ ├── fig 例外.pptx
│ │ │ ├── fig 動的.pptx
│ │ │ ├── fig 基礎.pptx
│ │ │ ├── fig 構造化.pptx
│ │ │ ├── fig 索引・概要.pptx
│ │ │ ├── fig 関数型.pptx
│ │ │ ├── fig 非同期.pptx
│ │ │ ├── fig.ppt
│ │ │ ├── fig.pptx
│ │ │ ├── inheritance.emf
│ │ │ ├── multithread1.emf
│ │ │ ├── multithread2.emf
│ │ │ ├── oop0.emf
│ │ │ ├── oop1.emf
│ │ │ ├── oop3.emf
│ │ │ ├── pointer1.emf
│ │ │ ├── ref1.emf
│ │ │ ├── ref2.emf
│ │ │ ├── ref3.emf
│ │ │ ├── ref4.emf
│ │ │ ├── ref5.emf
│ │ │ ├── refval0.emf
│ │ │ ├── refval1.emf
│ │ │ ├── refval2.emf
│ │ │ ├── refval3.emf
│ │ │ ├── thread.emf
│ │ │ └── thread.pptx
│ │ ├── movie/
│ │ │ ├── GetStarted/
│ │ │ │ ├── Arithmetic.wmv
│ │ │ │ ├── Cast.wmv
│ │ │ │ ├── For.wmv
│ │ │ │ ├── Foreach.wmv
│ │ │ │ ├── Function.wmv
│ │ │ │ ├── HelloWorld.wmv
│ │ │ │ ├── HelloWorldHD.wmv
│ │ │ │ ├── IfElse.wmv
│ │ │ │ ├── String.wmv
│ │ │ │ ├── Struct.wmv
│ │ │ │ ├── UsageFirst.wmv
│ │ │ │ ├── Variable1.wmv
│ │ │ │ ├── Variable2.wmv
│ │ │ │ └── While.wmv
│ │ │ └── VideoPlayer.xap
│ │ ├── sample/
│ │ │ └── SoundLibrary/
│ │ │ ├── Data/
│ │ │ │ └── index.html
│ │ │ ├── Filter/
│ │ │ │ ├── BandPass/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Delay/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Equalizer/
│ │ │ │ │ └── index.html
│ │ │ │ ├── Misc/
│ │ │ │ │ └── index.html
│ │ │ │ └── index.html
│ │ │ ├── Mathematics/
│ │ │ │ └── index.html
│ │ │ ├── Music/
│ │ │ │ └── index.html
│ │ │ ├── Pipe/
│ │ │ │ └── index.html
│ │ │ ├── SpectrumAnalysis/
│ │ │ │ └── index.html
│ │ │ ├── Wave/
│ │ │ │ └── index.html
│ │ │ ├── WaveAnalysis/
│ │ │ │ └── index.html
│ │ │ ├── index.html
│ │ │ └── style.css
│ │ ├── slide/
│ │ │ ├── LINQ.pptx
│ │ │ ├── WcfDemo.pptx
│ │ │ ├── WcfDemo.xps
│ │ │ ├── dotnet4.pptx
│ │ │ ├── dynamics.pptx
│ │ │ ├── dynamics.xps
│ │ │ └── model/
│ │ │ ├── Factoring.pptx
│ │ │ ├── Procedure.pptx
│ │ │ ├── Variable.pptx
│ │ │ └── テンプレート.pptx
│ │ ├── source/
│ │ │ ├── ComicMinimal.cs
│ │ │ ├── Complex.cs
│ │ │ ├── Comprehension.cs
│ │ │ ├── CreateTestData.cs
│ │ │ ├── DuckTypingInterface.cs
│ │ │ ├── DynamicXml.cs
│ │ │ ├── ExpressionTemplates.xaml
│ │ │ ├── ExpressionTest.cs
│ │ │ ├── ExpressionTreeTemplates.xaml
│ │ │ ├── MemoryImage.mg
│ │ │ ├── MultipleDispatch.cs
│ │ │ ├── Operator.cs
│ │ │ ├── Query.cs
│ │ │ ├── Rational.cs
│ │ │ ├── SleepSort.cs
│ │ │ ├── TypesForTest.cs
│ │ │ ├── _vti_cnf/
│ │ │ │ ├── ComicMinimal.cs
│ │ │ │ ├── Complex.cs
│ │ │ │ ├── Comprehension.cs
│ │ │ │ ├── CreateTestData.cs
│ │ │ │ ├── DuckTypingInterface.cs
│ │ │ │ ├── DynamicXml.cs
│ │ │ │ ├── ExpressionTemplates.xaml
│ │ │ │ ├── ExpressionTest.cs
│ │ │ │ ├── ExpressionTreeTemplates.xaml
│ │ │ │ ├── MemoryImage.mg
│ │ │ │ ├── MultipleDispatch.cs
│ │ │ │ ├── Operator.cs
│ │ │ │ ├── Query.cs
│ │ │ │ ├── Rational.cs
│ │ │ │ └── TypesForTest.cs
│ │ │ └── コンマ区切り.cs
│ │ └── 元原稿/
│ │ ├── プレゼンテーション1.pptx
│ │ ├── 非同期処理の基礎知識/
│ │ │ ├── 1 非同期処理の書き方.docx
│ │ │ └── イベントの自動実装.docx
│ │ └── 非同期制御フロー.docx
│ ├── dotnet/
│ │ ├── fig/
│ │ │ ├── fig IL.pptx
│ │ │ ├── fig collection.pptx
│ │ │ ├── fig.ppt
│ │ │ ├── fig.pptx
│ │ │ └── silverlight-fig.pptx
│ │ ├── resources/
│ │ │ ├── RssWriter.cs
│ │ │ ├── main.css
│ │ │ └── main.xsl
│ │ └── sample/
│ │ ├── BindingSlider.xaml
│ │ ├── ButtonClick.xaml
│ │ ├── Gradation.xaml
│ │ ├── LineArt.xaml
│ │ ├── MouseEnter.xaml
│ │ ├── ResourceDictionary.xaml
│ │ ├── StyleForButton.xaml
│ │ ├── StyleForLabel.xaml
│ │ ├── VistaLikeButton.xaml
│ │ ├── paragraph.xaml
│ │ └── viewport3d.xaml
│ ├── dsl/
│ │ ├── fig/
│ │ │ └── fig.pptx
│ │ ├── slide/
│ │ │ └── DslIdea.pptx
│ │ ├── source/
│ │ │ ├── sample.dsl
│ │ │ └── stack.mg
│ │ └── src/
│ │ ├── ClassToXaml.xsl
│ │ ├── LibClass.ps1
│ │ ├── SimpleClass.cs
│ │ ├── SimpleClass.xaml
│ │ ├── SimpleClass.xml
│ │ ├── TestLibClass.ps1
│ │ └── Translate.ps1
│ ├── math/
│ │ ├── card00.emf
│ │ ├── demo/
│ │ │ ├── matrix.xbap
│ │ │ ├── matrix_1_0_0_0/
│ │ │ │ └── matrix.exe.manifest
│ │ │ └── matrix_1_0_0_0.xbap
│ │ ├── elliptic-fig.ppt
│ │ ├── fig/
│ │ │ ├── fig.ppt
│ │ │ ├── lopital00.emf
│ │ │ ├── lopital01.emf
│ │ │ ├── lopital02.emf
│ │ │ ├── lopital03.emf
│ │ │ └── lopital04.emf
│ │ ├── fig.ppt
│ │ ├── group-fig.ppt
│ │ ├── infinity-fig.ppt
│ │ ├── linear0.emf
│ │ ├── linear1.emf
│ │ ├── manifold-fig.ppt
│ │ ├── miscmath-fig.ppt
│ │ ├── prec_succ.emf
│ │ ├── quaternion01.emf
│ │ ├── riemann0.emf
│ │ ├── riemann1.emf
│ │ └── set-fig.ppt
│ ├── misc/
│ │ ├── fig.ppt
│ │ └── lecture/
│ │ ├── linear.ppt
│ │ └── vorec.ppt
│ ├── miscprog/
│ │ └── training/
│ │ ├── bug/
│ │ │ ├── 01equal.c
│ │ │ ├── 02offbyone.c
│ │ │ ├── 03priority.c
│ │ │ ├── 04and.c
│ │ │ ├── 05elseif.c
│ │ │ ├── 06int.c
│ │ │ ├── 07range.c
│ │ │ ├── 08define.c
│ │ │ ├── 09jpspace.c
│ │ │ ├── 10array.c
│ │ │ └── 11other.c
│ │ ├── oop/
│ │ │ └── presentation.ppt
│ │ ├── rad/
│ │ │ ├── 01helloworld.txt
│ │ │ ├── 02viewer.txt
│ │ │ ├── 03lineart.txt
│ │ │ ├── 04wpf.txt
│ │ │ ├── LineArt.xaml
│ │ │ └── viewport3d.xaml
│ │ └── std/
│ │ └── presentation.ppt
│ ├── office/
│ │ └── WordMath/
│ │ ├── WordMath.docx
│ │ ├── WordMath.xps
│ │ └── WordMathAcl.xlsx
│ ├── physics/
│ │ ├── fig.ppt
│ │ ├── surface.cs
│ │ └── todo.txt
│ ├── powershell/
│ │ └── source/
│ │ ├── ZipLib.ps1
│ │ └── ZipVsProjects.ps1
│ ├── sp/
│ │ ├── digital_filter_fig.ppt
│ │ ├── fig.ppt
│ │ ├── image-fig.ppt
│ │ └── src/
│ │ ├── Amplifier.cs
│ │ ├── CircularBuffer1.cs
│ │ ├── CircularBuffer2.cs
│ │ ├── CircularBuffer3.cs
│ │ ├── Delay.cs
│ │ ├── FirFilter.cs
│ │ ├── IFilter.cs
│ │ ├── IirFilter.cs
│ │ ├── SerialIirFilter.cs
│ │ └── Util.cs
│ ├── xml/
│ │ ├── reference/
│ │ │ ├── Fourier
│ │ │ ├── Pi
│ │ │ ├── Re
│ │ │ ├── Res
│ │ │ ├── Sigma
│ │ │ ├── abs
│ │ │ ├── aleph
│ │ │ ├── arg
│ │ │ ├── bar
│ │ │ ├── brace
│ │ │ ├── bracket
│ │ │ ├── branch
│ │ │ ├── conjugate
│ │ │ ├── d
│ │ │ ├── ddt
│ │ │ ├── differential
│ │ │ ├── doubleint
│ │ │ ├── e
│ │ │ ├── font
│ │ │ ├── frac
│ │ │ ├── int
│ │ │ ├── limit
│ │ │ ├── log
│ │ │ ├── matrix
│ │ │ ├── oint
│ │ │ ├── operator
│ │ │ ├── paren
│ │ │ ├── pddt
│ │ │ ├── pddt_second
│ │ │ ├── sin
│ │ │ ├── sqbracket
│ │ │ ├── subsup
│ │ │ ├── symbol
│ │ │ ├── tripleint
│ │ │ ├── va
│ │ │ ├── vec
│ │ │ └── vervec
│ │ ├── style/
│ │ │ ├── common
│ │ │ ├── div.math
│ │ │ ├── span.bar
│ │ │ ├── span.bold
│ │ │ ├── span.integral
│ │ │ ├── span.math
│ │ │ ├── span.matrix
│ │ │ ├── span.normal
│ │ │ ├── span.paren
│ │ │ ├── span.script
│ │ │ ├── span.vector
│ │ │ ├── table.branch
│ │ │ ├── table.frac
│ │ │ ├── table.integral
│ │ │ ├── table.matrix
│ │ │ ├── table.sigma
│ │ │ ├── table.subsup
│ │ │ ├── td.intsub
│ │ │ ├── td.intsup
│ │ │ ├── td.num
│ │ │ ├── td.sigma
│ │ │ └── td.sigmasub
│ │ └── xsl/
│ │ ├── Fourier
│ │ ├── Im
│ │ ├── Laplace
│ │ ├── Pi
│ │ ├── Re
│ │ ├── Res
│ │ ├── Sigma
│ │ ├── Sigma sub
│ │ ├── Z
│ │ ├── abs
│ │ ├── aleph
│ │ ├── arg
│ │ ├── bar
│ │ ├── bold
│ │ ├── brace
│ │ ├── bracket
│ │ ├── branch
│ │ ├── branch case cond
│ │ ├── branch case equ
│ │ ├── cite
│ │ ├── conjugate
│ │ ├── cos
│ │ ├── d
│ │ ├── dS
│ │ ├── dV
│ │ ├── ddt
│ │ ├── differential
│ │ ├── divergence
│ │ ├── dl
│ │ ├── doubleint
│ │ ├── e
│ │ ├── exp
│ │ ├── factrorial
│ │ ├── footer.txt
│ │ ├── frac
│ │ ├── frac denom
│ │ ├── frac num
│ │ ├── func
│ │ ├── funcsub
│ │ ├── function
│ │ ├── gradient
│ │ ├── header.txt
│ │ ├── int
│ │ ├── int sub
│ │ ├── int sup
│ │ ├── inv
│ │ ├── lim
│ │ ├── log
│ │ ├── matrix
│ │ ├── matrix row
│ │ ├── matrix row elem
│ │ ├── nabra
│ │ ├── number
│ │ ├── oint
│ │ ├── operator
│ │ ├── paren
│ │ ├── pddt
│ │ ├── pddt_second
│ │ ├── rotation
│ │ ├── script
│ │ ├── sin
│ │ ├── sqbracket
│ │ ├── sqrt
│ │ ├── subsup
│ │ ├── subsup sub
│ │ ├── sup
│ │ ├── symbol
│ │ ├── tan
│ │ ├── text
│ │ ├── textdiv
│ │ ├── textgrad
│ │ ├── textrot
│ │ ├── tripleint
│ │ ├── vec
│ │ ├── vervec
│ │ └── vervec elem
│ └── xsd/
│ ├── css.xsd
│ ├── division.xsd
│ ├── document.xsd
│ ├── exercise.xsd
│ ├── figure.xsd
│ ├── html.xsd
│ ├── index.xsd
│ ├── keyword.xsd
│ ├── link.xsd
│ ├── math.xsd
│ ├── other.xsd
│ ├── ref.xsd
│ ├── silverlight.xsd
│ ├── source.xsd
│ └── variable.xsd
├── Demo/
│ ├── 2015/
│ │ ├── CompilerPlatform/
│ │ │ ├── CompilerPlatform.sln
│ │ │ ├── CsharpEssentialsDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── CsharpEssentialsDemo.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── FluentArithmeticDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── FluentArithmeticDemo.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ ├── LazyMixinDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── Counter.cs
│ │ │ │ ├── LazyMixinDemo.csproj
│ │ │ │ ├── LazyMixinDemo.ruleset
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── Sample.cs
│ │ │ │ └── packages.config
│ │ │ ├── NameofDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── NameofDemo.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── NotifyPropertyChangedGeneratorDemo/
│ │ │ │ ├── App.config
│ │ │ │ ├── NotifyAttribute.cs
│ │ │ │ ├── NotifyPropertyChangedGeneratorDemo.csproj
│ │ │ │ ├── NotifyPropertyChangedGeneratorDemo.ruleset
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ ├── QuickActions/
│ │ │ │ ├── App.config
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── QuickActions.csproj
│ │ │ └── RecordDemo/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── RecordDemo.csproj
│ │ └── MyRoslynAnalyzers/
│ │ ├── Lazy/
│ │ │ ├── App.config
│ │ │ ├── Lazy.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample.cs
│ │ │ ├── X.cs
│ │ │ ├── packages.config
│ │ │ └── コード生成デモ用.cs
│ │ ├── MyRoslynAnalyzers.sln
│ │ ├── NotifyPropertyChanged/
│ │ │ ├── App.config
│ │ │ ├── NotifyAttribute.cs
│ │ │ ├── NotifyPropertyChanged.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Sample.cs
│ │ │ ├── packages.config
│ │ │ └── コード生成デモ用.cs
│ │ ├── RecordConstructor/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── RecordConstructor.csproj
│ │ │ ├── Sample.cs
│ │ │ ├── packages.config
│ │ │ └── コード生成デモ用.cs
│ │ ├── StructPitfall/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── StructPitfall.csproj
│ │ └── ValueChanged/
│ │ ├── App.config
│ │ ├── BindableBase.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Sample.ValueChanged.cs
│ │ ├── Sample.cs
│ │ ├── ValueChanged.csproj
│ │ ├── packages.config
│ │ └── コード生成デモ用.cs
│ ├── 2016/
│ │ ├── Channels/
│ │ │ ├── Channels.sln
│ │ │ ├── samples/
│ │ │ │ └── CardBattle/
│ │ │ │ ├── CardBattle.Client/
│ │ │ │ │ ├── App.config
│ │ │ │ │ ├── App.xaml
│ │ │ │ │ ├── App.xaml.cs
│ │ │ │ │ ├── CardBattle.Client.csproj
│ │ │ │ │ ├── CardBattle.Client.ruleset
│ │ │ │ │ ├── MainWindow.xaml
│ │ │ │ │ ├── MainWindow.xaml.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ │ │ ├── Resources.Designer.cs
│ │ │ │ │ │ ├── Resources.resx
│ │ │ │ │ │ ├── Settings.Designer.cs
│ │ │ │ │ │ └── Settings.settings
│ │ │ │ │ ├── Views/
│ │ │ │ │ │ ├── CommandSelectControl.xaml
│ │ │ │ │ │ ├── CommandSelectControl.xaml.cs
│ │ │ │ │ │ ├── ContinuePromptControl.xaml
│ │ │ │ │ │ ├── ContinuePromptControl.xaml.cs
│ │ │ │ │ │ ├── Extensions.cs
│ │ │ │ │ │ ├── NumberTextConverter.cs
│ │ │ │ │ │ ├── PlayAreaControl.xaml
│ │ │ │ │ │ ├── PlayAreaControl.xaml.cs
│ │ │ │ │ │ ├── PlayerColorConverter.cs
│ │ │ │ │ │ ├── SuitBrushConverter.cs
│ │ │ │ │ │ └── SuitStringConverter.cs
│ │ │ │ │ └── project.json
│ │ │ │ ├── CardBattle.Models/
│ │ │ │ │ ├── CardBattle.Models.csproj
│ │ │ │ │ ├── GameEngine.cs
│ │ │ │ │ ├── GameRules/
│ │ │ │ │ │ ├── Ability.cs
│ │ │ │ │ │ ├── Boss.cs
│ │ │ │ │ │ ├── Card.cs
│ │ │ │ │ │ ├── Hand.cs
│ │ │ │ │ │ ├── Judge.cs
│ │ │ │ │ │ ├── PlayArea.cs
│ │ │ │ │ │ └── Player.cs
│ │ │ │ │ ├── GameStatus.cs
│ │ │ │ │ ├── Lib/
│ │ │ │ │ │ ├── BindableBase.cs
│ │ │ │ │ │ ├── EnumerableEx.cs
│ │ │ │ │ │ └── RandomExtensions.cs
│ │ │ │ │ ├── Messages/
│ │ │ │ │ │ ├── BossAttack.cs
│ │ │ │ │ │ ├── CommandPrompt.cs
│ │ │ │ │ │ ├── Continue.cs
│ │ │ │ │ │ ├── ContinuePrompt.cs
│ │ │ │ │ │ ├── FinishGame.cs
│ │ │ │ │ │ ├── GameProgress.cs
│ │ │ │ │ │ ├── PlayerAttack.cs
│ │ │ │ │ │ ├── PlayerSnapshop.cs
│ │ │ │ │ │ ├── Responses/
│ │ │ │ │ │ │ ├── CommandResonse.cs
│ │ │ │ │ │ │ ├── Confirmation.cs
│ │ │ │ │ │ │ └── GameResponse.cs
│ │ │ │ │ │ ├── TurnStarted.cs
│ │ │ │ │ │ └── readme.md
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ └── project.json
│ │ │ │ └── CardBattle.sln
│ │ │ ├── src/
│ │ │ │ ├── SystemAsync/
│ │ │ │ │ ├── AsyncAction.cs
│ │ │ │ │ ├── AsyncDisposable.cs
│ │ │ │ │ ├── AsyncEventExtensions.cs
│ │ │ │ │ ├── AsyncExtensions.cs
│ │ │ │ │ ├── AsyncHandler.cs
│ │ │ │ │ ├── AsyncHandlerList.cs
│ │ │ │ │ ├── IAsyncDisposable.cs
│ │ │ │ │ ├── IAsyncEvent.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ │ ├── SynchronizationContextExtensions.cs
│ │ │ │ │ ├── SystemAsync.csproj
│ │ │ │ │ └── project.json
│ │ │ │ └── TaskLibrary.Channels/
│ │ │ │ ├── AsyncActionList.cs
│ │ │ │ ├── Backport/
│ │ │ │ │ ├── Disposable.cs
│ │ │ │ │ └── EnumerableEx.cs
│ │ │ │ ├── CancellableReceiver.cs
│ │ │ │ ├── Channel.cs
│ │ │ │ ├── DispatcherChannel.cs
│ │ │ │ ├── DistributiveChannel.cs
│ │ │ │ ├── FilterChannel.cs
│ │ │ │ ├── Holder.cs
│ │ │ │ ├── IReceiver.cs
│ │ │ │ ├── IResponsiveMessage.cs
│ │ │ │ ├── ISender.cs
│ │ │ │ ├── InvocationMode.cs
│ │ │ │ ├── LoggingChannel.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── RecordedResponse.cs
│ │ │ │ ├── ReplicableChannel.cs
│ │ │ │ ├── TaskLibrary.Channels.csproj
│ │ │ │ ├── TypeSwitchChannel.cs
│ │ │ │ ├── project.json
│ │ │ │ └── readme.md
│ │ │ └── tests/
│ │ │ └── TaskLibrary.Channels.Test/
│ │ │ ├── Helper.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── TaskLibrary.Channels.Test.csproj
│ │ │ ├── TestChannel.cs
│ │ │ ├── TestData/
│ │ │ │ └── Message.cs
│ │ │ ├── TestDispatcherChannel.cs
│ │ │ ├── TestDistributiveChannel.cs
│ │ │ ├── TestLoggingChannel.cs
│ │ │ ├── TestReplicableChannel.cs
│ │ │ └── project.json
│ │ ├── CompilerPlatform/
│ │ │ └── ConsoleApplication1/
│ │ │ ├── ConsoleApplication1/
│ │ │ │ ├── App.config
│ │ │ │ ├── ConsoleApplication1.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── PropertyChanged.cs
│ │ │ │ ├── Record.cs
│ │ │ │ ├── TypeAlias.cs
│ │ │ │ └── packages.config
│ │ │ └── ConsoleApplication1.sln
│ │ ├── DevsumiOpenJam/
│ │ │ ├── DevsumiOpenJam.sln
│ │ │ ├── global.json
│ │ │ └── src/
│ │ │ └── TwitterBot/
│ │ │ ├── Class1.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── TwitterBot.xproj
│ │ │ └── project.json
│ │ ├── GoodCode/
│ │ │ ├── GoodCode.sln
│ │ │ ├── readme.md
│ │ │ └── src/
│ │ │ ├── AsyncSample/
│ │ │ │ ├── AsyncSample.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── IteratorSample/
│ │ │ │ ├── Enumerable.cs
│ │ │ │ ├── IteratorSample.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── UseSequence.cs
│ │ │ ├── LinqSample/
│ │ │ │ ├── InputOutput.cs
│ │ │ │ ├── LinqSample.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NullabilitySample/
│ │ │ │ ├── NullCoalescing.cs
│ │ │ │ ├── NullConditional.cs
│ │ │ │ ├── NullError.cs
│ │ │ │ ├── NullabilitySample.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── WhatsNullable.cs
│ │ │ └── PropertySample/
│ │ │ ├── Csharp1.cs
│ │ │ ├── Csharp2.cs
│ │ │ ├── Csharp3.cs
│ │ │ ├── Csharp登場以前.cs
│ │ │ ├── ImmutableCsharp5.cs
│ │ │ ├── ImmutableCsharp6.cs
│ │ │ ├── ImmutableCsharp7.cs
│ │ │ ├── Program.cs
│ │ │ └── PropertySample.csproj
│ │ ├── NetStandard/
│ │ │ ├── ClassLibraryAndroid/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryAndroid.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ ├── Resources/
│ │ │ │ │ ├── AboutResources.txt
│ │ │ │ │ ├── Resource.Designer.cs
│ │ │ │ │ └── Values/
│ │ │ │ │ └── Strings.xml
│ │ │ │ └── packages.config
│ │ │ ├── ClassLibraryImports/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryImports.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── ClassLibraryNet35/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryNet35.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ClassLibraryNet45/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryNet45.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ ├── ClassLibraryNetCore/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryNetCore.xproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── ClassLibraryProfileBased/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryProfileBased.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── ClassLibraryStandardBased/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryStandardBased.csproj
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── project.json
│ │ │ ├── ConsoleApplicationNet46/
│ │ │ │ ├── App.config
│ │ │ │ ├── ConsoleApplicationNet46.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── packages.config
│ │ │ └── NetStandard.sln
│ │ ├── PrivateField/
│ │ │ ├── ErroneousCodes/
│ │ │ │ ├── App.config
│ │ │ │ ├── DefiniteAssignement.cs
│ │ │ │ ├── ErroneousCodes.csproj
│ │ │ │ ├── ManagedPointer.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── AssemblyInfo.cs
│ │ │ │ └── RecursiveLayout.cs
│ │ │ ├── PrivateField.ConsoleApp/
│ │ │ │ ├── App.config
│ │ │ │ ├── PrivateField.ConsoleApp.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── PrivateField.Shared/
│ │ │ │ ├── DefiniteAssignment.cs
│ │ │ │ ├── ManagedPointer.cs
│ │ │ │ ├── PrivateField.Shared.projitems
│ │ │ │ ├── PrivateField.Shared.shproj
│ │ │ │ └── RecursiveLayout.cs
│ │ │ ├── PrivateField.StandardLib/
│ │ │ │ └── PrivateField.StandardLib.csproj
│ │ │ └── PrivateField.sln
│ │ └── Unicode/
│ │ ├── ConsoleApplication1/
│ │ │ ├── AllCharactersInUnicodeData.cs
│ │ │ ├── CharacterLength.cs
│ │ │ ├── ComparisonWithSystemString.cs
│ │ │ ├── CompatibleWithBstr.cs
│ │ │ ├── ConsoleApplication1.csproj
│ │ │ ├── DecodeSample.cs
│ │ │ ├── DualEncoding.cs
│ │ │ ├── GraphemeIdentifiers.cs
│ │ │ ├── NoAllocation.cs
│ │ │ ├── Performance.cs
│ │ │ ├── Program.cs
│ │ │ └── SurrogatePair.cs
│ │ ├── Unicode.sln
│ │ ├── UnitTestUtfString/
│ │ │ ├── CharacterInfo.cs
│ │ │ ├── TestData.cs
│ │ │ ├── TestSlicesUtf8String.cs
│ │ │ ├── TestString.cs
│ │ │ ├── UnitTestUtfString.csproj
│ │ │ └── UnitTestUtfString.nuget.props
│ │ └── UtfString/
│ │ ├── ArrayImplementation/
│ │ │ ├── Utf16/
│ │ │ │ ├── Decoder.cs
│ │ │ │ ├── Index.cs
│ │ │ │ ├── IndexEnumerable.cs
│ │ │ │ ├── String.cs
│ │ │ │ └── StringEnumerator.cs
│ │ │ ├── Utf8/
│ │ │ │ ├── Decoder.cs
│ │ │ │ ├── Index.cs
│ │ │ │ ├── IndexEnumerable.cs
│ │ │ │ ├── String.cs
│ │ │ │ └── StringEnumerator.cs
│ │ │ └── readme.md
│ │ ├── CodePoint.cs
│ │ ├── Constants.cs
│ │ ├── DebugInterfaces.cs
│ │ ├── DualEncoding/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ └── String.cs
│ │ ├── Generic/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ ├── String.cs
│ │ │ └── readme.md
│ │ ├── Slices/
│ │ │ ├── Decoder.cs
│ │ │ ├── ReadOnlySpan.cs
│ │ │ └── Utf8String.cs
│ │ ├── Utf16/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ └── String.cs
│ │ ├── Utf32/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ └── String.cs
│ │ ├── Utf8/
│ │ │ ├── ArrayAccessor.cs
│ │ │ ├── Decoder.cs
│ │ │ └── String.cs
│ │ ├── UtfString.csproj
│ │ └── readme.md
│ ├── 2017/
│ │ ├── BitFieldsSample/
│ │ │ ├── BitFieldsSample.csproj
│ │ │ ├── BitFieldsSample.sln
│ │ │ ├── DoubleView.BitFields.cs
│ │ │ ├── DoubleView.cs
│ │ │ ├── Program.cs
│ │ │ ├── Rgb555.BitFields.cs
│ │ │ ├── Rgb555.cs
│ │ │ ├── SingleView.BitFields.cs
│ │ │ └── SingleView.cs
│ │ ├── BitOperations/
│ │ │ ├── BitOperations/
│ │ │ │ ├── BitOperations.csproj
│ │ │ │ ├── Bits.cs
│ │ │ │ ├── Bits_T.cs
│ │ │ │ ├── Bytes16.cs
│ │ │ │ ├── IBits.cs
│ │ │ │ ├── PrimitiveBitOperators.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── SBitOperator.cs
│ │ │ ├── BitOperations.sln
│ │ │ └── GenericBits/
│ │ │ ├── Bits.cs
│ │ │ ├── GenericBits.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Sample1.cs
│ │ │ └── Sample2.cs
│ │ ├── BufferPerformance/
│ │ │ ├── BufferPerformance/
│ │ │ │ ├── BufferPerformance.csproj
│ │ │ │ ├── Buffers/
│ │ │ │ │ ├── ArraySpan.cs
│ │ │ │ │ ├── BufferA.cs
│ │ │ │ │ ├── BufferB.cs
│ │ │ │ │ ├── BufferC.cs
│ │ │ │ │ ├── BufferD.cs
│ │ │ │ │ ├── BufferE.cs
│ │ │ │ │ ├── IBuffer.cs
│ │ │ │ │ ├── IByteSpan.cs
│ │ │ │ │ └── PointerSpan.cs
│ │ │ │ └── Program.cs
│ │ │ └── BufferPerformance.sln
│ │ ├── Csharp7/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── 01 Tuples/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ ├── 03.cs
│ │ │ │ │ ├── 04 Extensions-1.cs
│ │ │ │ │ ├── 04 Extensions-2.cs
│ │ │ │ │ ├── 04 Extensions-3.cs
│ │ │ │ │ ├── 05 Performance.cs
│ │ │ │ │ ├── 06 Implementation.cs
│ │ │ │ │ └── 07 KnownIssue.cs
│ │ │ │ ├── 01-1 ExpressionBodied/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ └── 02.cs
│ │ │ │ ├── 02 Patterns/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ ├── 03.cs
│ │ │ │ │ ├── 04.cs
│ │ │ │ │ ├── 05.cs
│ │ │ │ │ ├── 06.cs
│ │ │ │ │ ├── 07.cs
│ │ │ │ │ ├── 08-0 Node.cs
│ │ │ │ │ ├── 08-1 virtual.cs
│ │ │ │ │ └── 08-2 pattern.cs
│ │ │ │ ├── 02-1 ThrowExpression/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ └── 02.cs
│ │ │ │ ├── 03 LocalFunctions/
│ │ │ │ │ ├── 00.csx
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ ├── 03.cs
│ │ │ │ │ └── 04 Performance.cs
│ │ │ │ ├── 04 Ref/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ ├── 03.cs
│ │ │ │ │ ├── 04 Unsafe.cs
│ │ │ │ │ └── 05 SystemMemory.cs
│ │ │ │ ├── 05 GeneralizedAsync/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ ├── 02.cs
│ │ │ │ │ └── Performance.cs
│ │ │ │ ├── 06 Digits/
│ │ │ │ │ ├── 01.cs
│ │ │ │ │ └── 02.cs
│ │ │ │ ├── 07 Future/
│ │ │ │ │ ├── 01 cs71.cs
│ │ │ │ │ ├── 02 cs72.cs
│ │ │ │ │ └── 02 cs7X.cs
│ │ │ │ ├── App.config
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Interop.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Csharp7.sln
│ │ ├── Csharp7_2-0902/
│ │ │ ├── ConsoleApp2_6_0/
│ │ │ │ ├── ConsoleApp2_6_0.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ConsoleAppRefReadonly/
│ │ │ │ ├── ConsoleAppRefReadonly.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── StackHashSet.cs
│ │ │ └── NewLangFeatures.sln
│ │ ├── Csharp7_2-1012/
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── ClassLibrary1.csproj
│ │ │ │ ├── PrivateProtected.cs
│ │ │ │ └── PrivateProtectedOrder.cs
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConditionalRefOperator.cs
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── DigitSeparator.cs
│ │ │ │ ├── NonTrailingNamedArguments.cs
│ │ │ │ ├── PrivateProtected.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── ReadOnlyStruct.cs
│ │ │ │ ├── RefExtensionRefOperator.cs
│ │ │ │ ├── RefReadonly.cs
│ │ │ │ ├── RefStruct.cs
│ │ │ │ ├── SafeStackalloc.cs
│ │ │ │ ├── SpanSafety.cs
│ │ │ │ └── SpanSample.cs
│ │ │ └── Csharp7_2-1012.sln
│ │ ├── EmbeddedSource/
│ │ │ ├── .gitignore
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── Class2.cs
│ │ │ │ ├── ClassLibrary1.csproj
│ │ │ │ └── Point.cs
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── EmbeddedSource.sln
│ │ │ ├── Lib/
│ │ │ │ ├── a.cs
│ │ │ │ ├── b.cs
│ │ │ │ ├── build.ps1
│ │ │ │ ├── c.cs
│ │ │ │ └── d.cs
│ │ │ ├── NuGet.Config
│ │ │ └── readme.md
│ │ ├── InOperatorDifferentAssemly/
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── Class1.cs
│ │ │ │ └── ClassLibrary1.csproj
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ └── InOperatorDifferentAssemly.sln
│ │ ├── InlineExpansion/
│ │ │ ├── Generics/
│ │ │ │ ├── 03 Generics.csproj
│ │ │ │ ├── BenchmarkCode.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Target.cs
│ │ │ ├── InlineExpansion.sln
│ │ │ ├── InlinedOrNot/
│ │ │ │ ├── 01 InlinedOrNot.csproj
│ │ │ │ ├── BenchmarkCode.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Target.cs
│ │ │ ├── ValueTypeGenerics/
│ │ │ │ ├── 04 ValueTypeGenerics.csproj
│ │ │ │ ├── BenchmarkCode.cs
│ │ │ │ ├── IGroup.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Target.cs
│ │ │ └── VirtualCall/
│ │ │ ├── 02 VirtualCall.csproj
│ │ │ ├── BenchmarkCode.cs
│ │ │ ├── Program.cs
│ │ │ └── Target.cs
│ │ ├── IntTemplateParameter/
│ │ │ ├── IntTemplateParameter/
│ │ │ │ ├── ConstantInt.cs
│ │ │ │ ├── ConstantInt.tt
│ │ │ │ ├── GaloisField.cs
│ │ │ │ ├── GaloisField_N.cs
│ │ │ │ ├── IConstant.cs
│ │ │ │ ├── IntTemplateParameter.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── readme.md
│ │ │ └── IntTemplateParameter.sln
│ │ ├── ManualResourceManagement/
│ │ │ ├── DisposePattern/
│ │ │ │ ├── 02 DisposePattern.csproj
│ │ │ │ ├── Counter.cs
│ │ │ │ ├── IReferenceCoutable.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Tests/
│ │ │ │ ├── 01 ManualDispose.cs
│ │ │ │ ├── 02 Finalizer.cs
│ │ │ │ ├── 03 StructCantHaveFinalizer.cs
│ │ │ │ ├── 04 ReferenceCount.cs
│ │ │ │ ├── Constants.cs
│ │ │ │ ├── SampleDisopsable.cs
│ │ │ │ ├── SampleDisopsableStruct.cs
│ │ │ │ └── SampleReferenceCount.cs
│ │ │ ├── HeapAllocation/
│ │ │ │ ├── 01 HeapAllocation.csproj
│ │ │ │ ├── Allocation.cs
│ │ │ │ ├── AllocationBenchmark.cs
│ │ │ │ ├── Allocators/
│ │ │ │ │ ├── CasPool .cs
│ │ │ │ │ ├── IAllocator.cs
│ │ │ │ │ ├── Interop.cs
│ │ │ │ │ ├── LocalPool.cs
│ │ │ │ │ ├── LockPool.cs
│ │ │ │ │ └── MallocAllocator.cs
│ │ │ │ ├── Data/
│ │ │ │ │ ├── ClassPoint.cs
│ │ │ │ │ ├── PointerPoint.cs
│ │ │ │ │ └── StructPoint.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Test.cs
│ │ │ └── ManualResourceManagement.sln
│ │ ├── ModalDialogSample/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── IResultDialog.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── ModalDialogSample.csproj
│ │ │ ├── ModalDialogSample.sln
│ │ │ ├── Window1.xaml
│ │ │ └── Window1.xaml.cs
│ │ ├── NewCsproj/
│ │ │ ├── NewCsproj/
│ │ │ │ ├── ClassLibraryLink/
│ │ │ │ │ └── ClassLibraryLink.csproj
│ │ │ │ ├── ClassLibraryMultiTarget/
│ │ │ │ │ ├── Class1.cs
│ │ │ │ │ └── ClassLibraryMultiTarget.csproj
│ │ │ │ ├── ClassLibraryNet35/
│ │ │ │ │ ├── Class1.cs
│ │ │ │ │ └── ClassLibraryNet35.csproj
│ │ │ │ ├── ClassLibraryStd14/
│ │ │ │ │ ├── Class1.cs
│ │ │ │ │ └── ClassLibraryStd14.csproj
│ │ │ │ ├── ConsoleAppCore11/
│ │ │ │ │ ├── ConsoleAppCore11.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ConsoleAppNet35/
│ │ │ │ │ ├── ConsoleAppNet35.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── WpfAppNet47/
│ │ │ │ ├── App.xaml
│ │ │ │ ├── App.xaml.cs
│ │ │ │ ├── MainWindow.xaml
│ │ │ │ ├── MainWindow.xaml.cs
│ │ │ │ └── WpfAppNet47.csproj
│ │ │ ├── NewCsproj.sln
│ │ │ └── OldCsproj/
│ │ │ ├── ClassLibraryNet35/
│ │ │ │ ├── Class1.cs
│ │ │ │ ├── ClassLibraryNet35.csproj
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ConsoleAppNet35/
│ │ │ │ ├── ConsoleAppNet35.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── WpfAppNet47/
│ │ │ ├── App.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ └── WpfAppNet47.csproj
│ │ ├── PackageReference/
│ │ │ ├── ClassLibrary/
│ │ │ │ ├── Class1.cs
│ │ │ │ └── ClassLibrary.csproj
│ │ │ ├── ClassLibrary.A/
│ │ │ │ └── ClassLibrary.A.csproj
│ │ │ ├── ClassLibrary.B/
│ │ │ │ └── ClassLibrary.B.csproj
│ │ │ ├── ClassLibraryDependsOnA/
│ │ │ │ ├── Class1.cs
│ │ │ │ └── ClassLibraryDependsOnA.csproj
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NuGet.config
│ │ │ ├── PackageReference.sln
│ │ │ ├── build.ps1
│ │ │ ├── fig/
│ │ │ │ └── fig.pptx
│ │ │ └── readme.md
│ │ ├── PropertyAccessor/
│ │ │ ├── PropertyAccessor/
│ │ │ │ ├── AccessorBenchmark.cs
│ │ │ │ ├── Accessors/
│ │ │ │ │ ├── CustomHashTableAccessor.cs
│ │ │ │ │ ├── DictionaryAccessor.cs
│ │ │ │ │ ├── EachCodeGenerator.cs
│ │ │ │ │ ├── ImmutableDictionaryAccessor.cs
│ │ │ │ │ ├── SortedDictionaryAccessor.cs
│ │ │ │ │ ├── SortedListAccessor.cs
│ │ │ │ │ ├── SwitchAccessor.cs
│ │ │ │ │ └── SwitchCodeGenerator.cs
│ │ │ │ ├── Extensions.cs
│ │ │ │ ├── IAccessor.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── PropertyAccessor.csproj
│ │ │ │ └── SampleData/
│ │ │ │ ├── Item.cs
│ │ │ │ └── Point.cs
│ │ │ └── PropertyAccessor.sln
│ │ ├── Roslyn2_6_0PossiblyBug/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ └── ConsoleApp1.sln
│ │ ├── SpanAsSafePointer/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Point.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RefExtensions/
│ │ │ │ │ └── Before.cs
│ │ │ │ ├── Safe/
│ │ │ │ │ └── Stream.cs
│ │ │ │ ├── SaveLoadBenchmark.cs
│ │ │ │ ├── SaveLoadTest.cs
│ │ │ │ ├── SpanBase/
│ │ │ │ │ └── Stream.cs
│ │ │ │ └── Unsafe/
│ │ │ │ └── Stream.cs
│ │ │ └── SpanAsSafePointer.sln
│ │ ├── TupleMutableStruct/
│ │ │ ├── TupleMutableStruct/
│ │ │ │ ├── Data/
│ │ │ │ │ ├── Circular.cs
│ │ │ │ │ ├── Point.cs
│ │ │ │ │ └── VirtualPoint.cs
│ │ │ │ ├── MemoryLayout/
│ │ │ │ │ ├── Benchmark.cs
│ │ │ │ │ ├── PointerAdd.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ ├── RandomExtensions.cs
│ │ │ │ │ ├── RefReturns.cs
│ │ │ │ │ ├── SafeAdd.cs
│ │ │ │ │ ├── Test.cs
│ │ │ │ │ └── Vector.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StructProperties/
│ │ │ │ │ ├── GetSet.cs
│ │ │ │ │ └── RefReturns.cs
│ │ │ │ ├── TupleMutableStruct.csproj
│ │ │ │ ├── Usage/
│ │ │ │ │ ├── BindableBase.cs
│ │ │ │ │ ├── Field.cs
│ │ │ │ │ ├── LooselyTyped.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── Tuple.cs
│ │ │ │ ├── ValueObject/
│ │ │ │ │ ├── MutableClass.cs
│ │ │ │ │ └── MutableStruct.cs
│ │ │ │ └── ValueTuple.cs
│ │ │ └── TupleMutableStruct.sln
│ │ ├── TypeRepositoryBenchmarks/
│ │ │ ├── ByteToLongBenchmark/
│ │ │ │ ├── ByteToLongBenchmark.cs
│ │ │ │ ├── ByteToLongBenchmark.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── DictionaryBenchmark/
│ │ │ │ ├── CharNode.cs
│ │ │ │ ├── DictionaryBenchmark.cs
│ │ │ │ ├── DictionaryBenchmark.csproj
│ │ │ │ ├── Extensions.cs
│ │ │ │ ├── FixedDictionary.cs
│ │ │ │ ├── FixedDictionary2.cs
│ │ │ │ ├── LongNode.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── TestData.cs
│ │ │ ├── Grisu3DoubleConversion/
│ │ │ │ ├── DiyFp.cs
│ │ │ │ ├── DoubleConversion.cs
│ │ │ │ ├── DoubleConversionBenchmark.cs
│ │ │ │ ├── DoubleConversionTest.cs
│ │ │ │ ├── DoubleView.cs
│ │ │ │ ├── FastDtoaMode.cs
│ │ │ │ ├── Grisu3DoubleConversion.csproj
│ │ │ │ ├── NumberStringBuffer.cs
│ │ │ │ ├── PowersOfTenCache.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── SingleView.cs
│ │ │ │ └── TestData.cs
│ │ │ ├── OptionalArrayBenchmark/
│ │ │ │ ├── BitArray64.cs
│ │ │ │ ├── Optional.cs
│ │ │ │ ├── OptionalArray.cs
│ │ │ │ ├── OptionalArrayBenchmark.cs
│ │ │ │ ├── OptionalArrayBenchmark.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ParseIntBnechmark/
│ │ │ │ ├── ParseIntBenchmark.cs
│ │ │ │ ├── ParseIntBnechmark.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── SequenceBenchmark/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── SequenceBenchmark.cs
│ │ │ │ └── SequenceBenchmark.csproj
│ │ │ ├── StackallocDistinctBenchmark/
│ │ │ │ ├── ArrayHashSet.cs
│ │ │ │ ├── DistinctBenchmark.cs
│ │ │ │ ├── IntComp.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StackHashSet.cs
│ │ │ │ └── StackallocDistinctBenchmark.csproj
│ │ │ ├── TypeRepositoryBenchmarks.sln
│ │ │ ├── Utf8SearchBenchmark/
│ │ │ │ ├── BoyerMoore.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StringComparisonBenchmark.cs
│ │ │ │ ├── Utf8SearchBenchmark.cs
│ │ │ │ └── Utf8SearchBenchmark.csproj
│ │ │ └── UtfCompareBenchmark/
│ │ │ ├── Program.cs
│ │ │ ├── StringBenchmark.cs
│ │ │ ├── StringExtensions.cs
│ │ │ ├── StringToUtf8Byte.cs
│ │ │ └── UtfCompareBenchmark.csproj
│ │ ├── UnionTypes/
│ │ │ ├── UnionTypes/
│ │ │ │ ├── Generator.cs
│ │ │ │ ├── Generator.partial.cs
│ │ │ │ ├── Generator.tt
│ │ │ │ ├── IUnion.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Runner.cs
│ │ │ │ ├── Runner.partial.cs
│ │ │ │ ├── Runner.tt
│ │ │ │ ├── Union1.cs
│ │ │ │ ├── Union2.cs
│ │ │ │ ├── Union3.cs
│ │ │ │ ├── Union4.cs
│ │ │ │ ├── Union5.cs
│ │ │ │ ├── UnionTypes.csproj
│ │ │ │ └── Vector.cs
│ │ │ └── UnionTypes.sln
│ │ ├── UnsafeRefReturns/
│ │ │ ├── UnsafeRefReturns/
│ │ │ │ ├── AccessViolation.cs
│ │ │ │ ├── Color.cs
│ │ │ │ ├── Point3D.Managed.cs
│ │ │ │ ├── Point3D.Pointer.cs
│ │ │ │ ├── UnsafeRefReturns.csproj
│ │ │ │ └── ValueNull.cs
│ │ │ └── UnsafeRefReturns.sln
│ │ └── Ạṇạḷỵẓẹṛ/
│ │ ├── Ạṇạḷỵẓẹṛ/
│ │ │ ├── Ạṇạḷỵẓẹṛ/
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── tools/
│ │ │ │ │ ├── install.ps1
│ │ │ │ │ └── uninstall.ps1
│ │ │ │ ├── Ạṇạḷỵẓẹṛ.csproj
│ │ │ │ ├── ẠṇạḷỵẓẹṛAnalyzer.cs
│ │ │ │ └── ẠṇạḷỵẓẹṛCodeFixProvider.cs
│ │ │ ├── Ạṇạḷỵẓẹṛ.Test/
│ │ │ │ ├── DataSource/
│ │ │ │ │ ├── result-schema.json
│ │ │ │ │ └── ẠṇạḷỵẓẹṛUnitTests/
│ │ │ │ │ ├── EmptySource/
│ │ │ │ │ │ └── Source/
│ │ │ │ │ │ └── Class1.csx
│ │ │ │ │ └── LowercaseLetters/
│ │ │ │ │ ├── Diagnostic/
│ │ │ │ │ │ └── Results.json
│ │ │ │ │ ├── Expected/
│ │ │ │ │ │ └── Class1.csx
│ │ │ │ │ └── Source/
│ │ │ │ │ └── Class1.csx
│ │ │ │ ├── Helpers/
│ │ │ │ │ ├── CodeFixVerifier.Helper.cs
│ │ │ │ │ ├── DiagnosticResult.cs
│ │ │ │ │ └── DiagnosticVerifier.Helper.cs
│ │ │ │ ├── Verifiers/
│ │ │ │ │ ├── CodeFixVerifier.cs
│ │ │ │ │ ├── ConventionCodeFixVerifier.cs
│ │ │ │ │ └── DiagnosticVerifier.cs
│ │ │ │ ├── Ạṇạḷỵẓẹṛ.Test.csproj
│ │ │ │ └── ẠṇạḷỵẓẹṛUnitTests.cs
│ │ │ └── Ạṇạḷỵẓẹṛ.Vsix/
│ │ │ ├── source.extension.vsixmanifest
│ │ │ └── Ạṇạḷỵẓẹṛ.Vsix.csproj
│ │ └── Ạṇạḷỵẓẹṛ.sln
│ ├── 2018/
│ │ ├── AsyncInternal/
│ │ │ ├── AsyncInternal.csproj
│ │ │ ├── AsyncInternal.sln
│ │ │ ├── AwaitCodeGeneration.cs
│ │ │ ├── AwaitOperator.cs
│ │ │ ├── CallbackAsync.cs
│ │ │ ├── Data.cs
│ │ │ ├── Program.cs
│ │ │ └── Synchronous.cs
│ │ ├── CachedAsync/
│ │ │ ├── CachedAsync/
│ │ │ │ ├── AsyncOperation.cs
│ │ │ │ ├── CachedAsync.csproj
│ │ │ │ ├── FirstToTaskObserver.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── TimerLoop.cs
│ │ │ ├── CachedAsync.sln
│ │ │ └── readme.md
│ │ ├── Cs8InVs2019P1/
│ │ │ ├── AsyncStreams.cs
│ │ │ ├── Cs8InVs2019P1.csproj
│ │ │ ├── Cs8InVs2019P1.sln
│ │ │ ├── InterpolatedVerbatimStrings.cs
│ │ │ ├── NRT.cs
│ │ │ ├── NullCoalescingAssignment.cs
│ │ │ ├── Range2D.cs
│ │ │ ├── RangeAndIndex.cs
│ │ │ └── ThrowHelper.cs
│ │ ├── Csharp7_3-0309/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── BackingFieldAttribute/
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Constraints/
│ │ │ │ │ ├── Point.cs
│ │ │ │ │ ├── SystemDelegate.cs
│ │ │ │ │ ├── SystemEnum.cs
│ │ │ │ │ └── Unmanaged.cs
│ │ │ │ ├── ExpressionVariables/
│ │ │ │ │ ├── BaseInitializer.cs
│ │ │ │ │ ├── FieldInitializer.cs
│ │ │ │ │ ├── QueryExpressions.cs
│ │ │ │ │ ├── Table.cs
│ │ │ │ │ └── ThisInitializer.cs
│ │ │ │ ├── Fixed/
│ │ │ │ │ ├── CustomFixed.cs
│ │ │ │ │ └── MovableFixedBuffer.cs
│ │ │ │ ├── OverloadResolution/
│ │ │ │ │ ├── Constraints.cs
│ │ │ │ │ ├── DummyParameter.cs
│ │ │ │ │ ├── Extensions.cs
│ │ │ │ │ ├── FirstOrNull.cs
│ │ │ │ │ ├── MethodReturn.cs
│ │ │ │ │ ├── Refness.cs
│ │ │ │ │ └── Static.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Ref/
│ │ │ │ │ ├── Node.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RefArrayEnumerable.cs
│ │ │ │ ├── Stackalloc/
│ │ │ │ │ └── Program.cs
│ │ │ │ └── TupleEquality/
│ │ │ │ └── Program.cs
│ │ │ └── Csharp7_3-0309.sln
│ │ ├── DotNetGlobalTools/
│ │ │ ├── .gitignore
│ │ │ ├── DotNetGlobalTools.sln
│ │ │ ├── csunzip/
│ │ │ │ ├── Program.cs
│ │ │ │ └── csunzip.csproj
│ │ │ ├── cszip/
│ │ │ │ ├── Program.cs
│ │ │ │ └── cszip.csproj
│ │ │ ├── install.bat
│ │ │ ├── nuget.config
│ │ │ ├── pack.bat
│ │ │ ├── readme.md
│ │ │ ├── sample.bat
│ │ │ └── xstatic/
│ │ │ ├── Program.cs
│ │ │ └── xstatic.csproj
│ │ ├── EmojiIdentifier/
│ │ │ ├── identifier.md
│ │ │ ├── readme.md
│ │ │ ├── swift.en.md
│ │ │ └── swift.md
│ │ ├── GuardedDevirt/
│ │ │ ├── GuardedDevirt/
│ │ │ │ ├── A.cs
│ │ │ │ ├── B.cs
│ │ │ │ ├── CallBenchmark.cs
│ │ │ │ ├── GuardedDevirt.csproj
│ │ │ │ ├── I.cs
│ │ │ │ └── Program.cs
│ │ │ └── GuardedDevirt.sln
│ │ ├── IOPerformance/
│ │ │ ├── App/
│ │ │ │ ├── App.csproj
│ │ │ │ ├── DataBenchmark.cs
│ │ │ │ ├── LineReader.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Splitter.cs
│ │ │ ├── Compare20And21/
│ │ │ │ ├── Compare20And21.csproj
│ │ │ │ ├── DataBenchmark.cs
│ │ │ │ └── Program.cs
│ │ │ ├── IOPerformance.sln
│ │ │ └── data/
│ │ │ ├── .gitignore
│ │ │ └── data.py
│ │ ├── MetricSpace/
│ │ │ ├── MetricSpace/
│ │ │ │ ├── Devirtualized1/
│ │ │ │ │ └── Euclidean.cs
│ │ │ │ ├── Devirtualized2/
│ │ │ │ │ ├── Array1.cs
│ │ │ │ │ └── Euclidean.cs
│ │ │ │ ├── Devirtualized3/
│ │ │ │ │ ├── Arithmetic.cs
│ │ │ │ │ ├── Chebyshev.cs
│ │ │ │ │ ├── Euclidean.cs
│ │ │ │ │ ├── FixedArray.cs
│ │ │ │ │ └── Manhattan.cs
│ │ │ │ ├── Instantiation/
│ │ │ │ │ └── Instantiation.cs
│ │ │ │ ├── MetricSpace.csproj
│ │ │ │ ├── NonGeneric/
│ │ │ │ │ └── Euclidean.cs
│ │ │ │ └── Virtualized/
│ │ │ │ └── Euclidean.cs
│ │ │ ├── MetricSpace.sln
│ │ │ └── readme.md
│ │ ├── NrtPreview09112018/
│ │ │ ├── Closure.cs
│ │ │ ├── CurriedDelegate.cs
│ │ │ ├── EarlyReturn.cs
│ │ │ ├── ExplicitInterfaceMethod.cs
│ │ │ ├── FieldInitializer.cs
│ │ │ ├── NestedDerivedClass.cs
│ │ │ ├── NonNullWhenNonNull.cs
│ │ │ ├── NrtPreview09112018.csproj
│ │ │ ├── NrtPreview09112018.sln
│ │ │ ├── Switch.cs
│ │ │ └── readme.md
│ │ ├── PerformanceTips/
│ │ │ ├── ArrayDowncast/
│ │ │ │ ├── ArrayDowncast.csproj
│ │ │ │ ├── ArrayDowncastBenchmark.cs
│ │ │ │ └── Program.cs
│ │ │ ├── ArrayEnumeration/
│ │ │ │ ├── ArrayEnumeration.csproj
│ │ │ │ ├── ArrayWrapper.Array.cs
│ │ │ │ ├── ArrayWrapper.IEnumerable.cs
│ │ │ │ ├── ArrayWrapper.ImmutableArray.cs
│ │ │ │ ├── ArrayWrapper.ReadOnlyCollection.cs
│ │ │ │ ├── ArrayWrapper.Span.cs
│ │ │ │ ├── ArrayWrapper.StructEnumerator.cs
│ │ │ │ └── Program.cs
│ │ │ ├── DefaultIsNull/
│ │ │ │ ├── DefaultIsNull.csproj
│ │ │ │ ├── DefaultIsNullBenchmark.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Directory.Build.props
│ │ │ ├── DiscriminatedUnion/
│ │ │ │ ├── DiscriminatedUnion.csproj
│ │ │ │ ├── Discriminator.cs
│ │ │ │ ├── DiscriminatorField.cs
│ │ │ │ ├── DiscriminatorFieldUnsafe.cs
│ │ │ │ ├── IsMatching.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── UnionBenchmark.cs
│ │ │ ├── EnumHasFlag/
│ │ │ │ ├── EnumHasFlag.csproj
│ │ │ │ ├── EnumHasFlagBenchmark.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Enumeration/
│ │ │ │ ├── Enumeration.csproj
│ │ │ │ ├── EnumerationBenchmark.cs
│ │ │ │ ├── EnumerationTest.cs
│ │ │ │ ├── IFastEnumerator.cs
│ │ │ │ ├── ListLike.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Sum.cs
│ │ │ ├── EqualityComparerDefault/
│ │ │ │ ├── EqualityComparerDefault.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── FastEnumeration/
│ │ │ │ ├── Adapter.cs
│ │ │ │ ├── FastEnumeration.csproj
│ │ │ │ ├── FastEnumerator.cs
│ │ │ │ ├── ForeachBenchmark.cs
│ │ │ │ ├── IFastEnumerator.cs
│ │ │ │ ├── NormalEnumerator.cs
│ │ │ │ └── Program.cs
│ │ │ ├── MultipleRuntimesConfig.cs
│ │ │ ├── PerformanceTips.sln
│ │ │ └── VirtualCall/
│ │ │ ├── Program.cs
│ │ │ ├── VirtualCall.csproj
│ │ │ └── VirtualCallBanchmark.cs
│ │ ├── PipelineSockets/
│ │ │ ├── PipelineSockets/
│ │ │ │ ├── CancellationTokenExtensions.cs
│ │ │ │ ├── Models/
│ │ │ │ │ ├── A.cs
│ │ │ │ │ ├── B.cs
│ │ │ │ │ ├── C.cs
│ │ │ │ │ ├── IntVector.cs
│ │ │ │ │ ├── StringPipeExtentions.cs
│ │ │ │ │ ├── UnmanagedPipeExtentions.cs
│ │ │ │ │ └── Vector.cs
│ │ │ │ ├── MyClient.cs
│ │ │ │ ├── MyConnection.cs
│ │ │ │ ├── MyServer.cs
│ │ │ │ ├── PipelineSockets.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Ref/
│ │ │ │ ├── BufferReader.cs
│ │ │ │ └── ThrowHelper.cs
│ │ │ └── PipelineSockets.sln
│ │ ├── SpanPerformance/
│ │ │ ├── MatrixBenchmark/
│ │ │ │ ├── ByRef.cs
│ │ │ │ ├── ByValue.cs
│ │ │ │ ├── MatrixBenchmark.cs
│ │ │ │ ├── MatrixBenchmark.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Simd.cs
│ │ │ ├── SpanPerformance.sln
│ │ │ ├── StringManipulation/
│ │ │ │ ├── Classic/
│ │ │ │ │ └── StringExtensions.cs
│ │ │ │ ├── FullyTuned/
│ │ │ │ │ └── StringExtensions.cs
│ │ │ │ ├── SafeStackalloc/
│ │ │ │ │ ├── IStringFormatter.cs
│ │ │ │ │ ├── IStringSplitter.cs
│ │ │ │ │ ├── Splitter.cs
│ │ │ │ │ ├── StringExtensions.cs
│ │ │ │ │ ├── ToCamel.cs
│ │ │ │ │ ├── ToSnake.cs
│ │ │ │ │ └── UpperCaseSplitter.cs
│ │ │ │ ├── StringManipulation.csproj
│ │ │ │ └── Unsafe/
│ │ │ │ ├── IStringFormatter.cs
│ │ │ │ ├── IStringSplitter.cs
│ │ │ │ ├── Splitter.cs
│ │ │ │ ├── StringExtensions.cs
│ │ │ │ ├── StringSpan.cs
│ │ │ │ ├── ToCamel.cs
│ │ │ │ ├── ToSnake.cs
│ │ │ │ └── UpperCaseSplitter.cs
│ │ │ ├── StringManipulation.Benchmark/
│ │ │ │ ├── Benchmark.cs
│ │ │ │ ├── IStringManipulater.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── StringManipulation.Benchmark.csproj
│ │ │ ├── StringManipulation.Test/
│ │ │ │ ├── IStringManipulater.cs
│ │ │ │ ├── StringManipulation.Test.csproj
│ │ │ │ └── Test.cs
│ │ │ └── SubstringBenchmark/
│ │ │ ├── AbstractString.cs
│ │ │ ├── Program.cs
│ │ │ ├── SubstringBenchmark.cs
│ │ │ └── SubstringBenchmark.csproj
│ │ ├── TableMath/
│ │ │ ├── TableMath/
│ │ │ │ ├── SinCosTable.cs
│ │ │ │ ├── SinCosTableF.cs
│ │ │ │ └── TableMath.csproj
│ │ │ ├── TableMath.sln
│ │ │ ├── TableMathBenchmark/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── SinCosTableUnsafeF.cs
│ │ │ │ ├── TableBenchmark.cs
│ │ │ │ └── TableMathBenchmark.csproj
│ │ │ ├── TableMathTest/
│ │ │ │ ├── SinCosTableFTest.cs
│ │ │ │ ├── SinCosTableTest.cs
│ │ │ │ └── TableMathTest.csproj
│ │ │ └── readme.md
│ │ ├── TemplateSelector/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── MySelector.cs
│ │ │ ├── TemplateSelector.sln
│ │ │ ├── Templates/
│ │ │ │ ├── Integer.xaml
│ │ │ │ ├── String.xaml
│ │ │ │ └── WpfApp2/
│ │ │ │ └── Sample/
│ │ │ │ ├── Alpha.xaml
│ │ │ │ ├── Beta.xaml
│ │ │ │ └── Gamma.xaml
│ │ │ └── WpfApp2.csproj
│ │ └── WpfNewCsproj1/
│ │ ├── WpfNewCsproj1/
│ │ │ ├── App.config
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── MainWindow.xaml
│ │ │ ├── MainWindow.xaml.cs
│ │ │ ├── Properties/
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ └── WpfNewCsproj1.csproj
│ │ ├── WpfNewCsproj1.sln
│ │ └── readme.md
│ ├── 2019/
│ │ ├── BoolExhaustiveness/
│ │ │ ├── BoolExhaustiveness.sln
│ │ │ ├── BoolMarshaling/
│ │ │ │ ├── BoolMarshaling.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── rust/
│ │ │ │ ├── Cargo.toml
│ │ │ │ ├── src/
│ │ │ │ │ └── lib.rs
│ │ │ │ └── target/
│ │ │ │ └── .rustc_info.json
│ │ │ ├── BoolOtherThan01/
│ │ │ │ ├── BoolOtherThan01.csproj
│ │ │ │ ├── Pointer.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StructUnion.cs
│ │ │ │ ├── TypeSwitch.cs
│ │ │ │ └── UnsafeClass.cs
│ │ │ └── Csharp8/
│ │ │ ├── Csharp8.csproj
│ │ │ └── Program.cs
│ │ ├── Csharp80/
│ │ │ ├── Csharp80.sln
│ │ │ ├── Preview1/
│ │ │ │ ├── AsyncStreams.cs
│ │ │ │ ├── InterpolatedVerbatimStrings.cs
│ │ │ │ ├── NRT.cs
│ │ │ │ ├── NullCoalescingAssignment.cs
│ │ │ │ ├── Preview1.csproj
│ │ │ │ ├── Range2D.cs
│ │ │ │ ├── RangeAndIndex.cs
│ │ │ │ └── ThrowHelper.cs
│ │ │ ├── Preview2/
│ │ │ │ ├── AsyncStreams.cs
│ │ │ │ ├── AsyncStreamsOptionalParamater.cs
│ │ │ │ ├── BoolExhaustiveness.cs
│ │ │ │ ├── EnhancedUsing.cs
│ │ │ │ ├── PatternBasedAsyncUsing.cs
│ │ │ │ ├── PatternBasedUsing.cs
│ │ │ │ ├── PatternBasedUsingForeach.cs
│ │ │ │ ├── Preview2.csproj
│ │ │ │ ├── RecursivePattern.cs
│ │ │ │ ├── Shadowing.cs
│ │ │ │ └── StaticLocalFunction.cs
│ │ │ ├── Preview3/
│ │ │ │ ├── PatternBasedForeach.cs
│ │ │ │ ├── PatternTrailingComma.cs
│ │ │ │ ├── Preview3.csproj
│ │ │ │ └── SwitchTrailingComma.cs
│ │ │ ├── VS16_1_p1/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── UnmanagedGenericStruct.cs
│ │ │ │ └── VS16_1_p1.csproj
│ │ │ └── VS16_1_p2/
│ │ │ ├── InterfaceDefault.cs
│ │ │ ├── NestedStackalloc.cs
│ │ │ ├── ReadOnlyMember.cs
│ │ │ ├── ReadOnlyRef.cs
│ │ │ └── VS16_1_p2.csproj
│ │ ├── DataAccessSample/
│ │ │ ├── DataAccessSample/
│ │ │ │ ├── Connection.cs
│ │ │ │ ├── DataAccess/
│ │ │ │ │ ├── DapperRepository.cs
│ │ │ │ │ ├── EFCompiledQueryRepository.cs
│ │ │ │ │ ├── EFCoreRepository.cs
│ │ │ │ │ ├── EFFromSqlRepository.cs
│ │ │ │ │ └── IDataSource.cs
│ │ │ │ ├── DataAccessBenchmark.cs
│ │ │ │ ├── DataAccessSample.csproj
│ │ │ │ ├── IQueryableExtensions.cs
│ │ │ │ ├── Models/
│ │ │ │ │ ├── Categories.cs
│ │ │ │ │ ├── CustomerCustomerDemo.cs
│ │ │ │ │ ├── CustomerDemographics.cs
│ │ │ │ │ ├── Customers.cs
│ │ │ │ │ ├── EmployeeTerritories.cs
│ │ │ │ │ ├── Employees.cs
│ │ │ │ │ ├── NorthwindContext.cs
│ │ │ │ │ ├── OrderDetails.cs
│ │ │ │ │ ├── Orders.cs
│ │ │ │ │ ├── Products.cs
│ │ │ │ │ ├── Region.cs
│ │ │ │ │ ├── Shippers.cs
│ │ │ │ │ ├── Suppliers.cs
│ │ │ │ │ └── Territories.cs
│ │ │ │ └── Program.cs
│ │ │ ├── DataAccessSample.sln
│ │ │ └── readme.md
│ │ ├── NetCoreGrpc/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── GrpcService1/
│ │ │ │ ├── GrpcService1.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── launchSettings.json
│ │ │ │ ├── Protos/
│ │ │ │ │ └── greet.proto
│ │ │ │ ├── Services/
│ │ │ │ │ └── SampleService.cs
│ │ │ │ ├── Startup.cs
│ │ │ │ ├── appsettings.Development.json
│ │ │ │ └── appsettings.json
│ │ │ └── NetCoreGrpc.sln
│ │ ├── PathMap/
│ │ │ ├── PathMap/
│ │ │ │ ├── PathMap.csproj
│ │ │ │ └── Program.cs
│ │ │ └── PathMap.sln
│ │ ├── SearchDocx/
│ │ │ ├── SearchDocx/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── launchSettings.json
│ │ │ │ └── SearchDocx.csproj
│ │ │ └── SearchDocx.sln
│ │ ├── SwitchStatementToExpression/
│ │ │ ├── SwitchStatementToExpression/
│ │ │ │ ├── Program.cs
│ │ │ │ └── SwitchStatementToExpression.csproj
│ │ │ └── SwitchStatementToExpression.sln
│ │ └── ThreadPost/
│ │ ├── ThreadPost/
│ │ │ ├── BlockingSynchronizationContext.cs
│ │ │ ├── IUpdatable.cs
│ │ │ ├── IntervalUpdateThread.cs
│ │ │ ├── ManualResetValueTaskSource.cs
│ │ │ ├── ObjectPool.cs
│ │ │ ├── Program.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Action0.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Action1.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Diagnostics.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Func1.cs
│ │ │ ├── SynchronizationContextAsyncExtensions.Func2.cs
│ │ │ ├── SynchronizationContextPostItem.cs
│ │ │ ├── ThreadPost.csproj
│ │ │ └── UpdatableSynchronizationContext.cs
│ │ └── ThreadPost.sln
│ ├── 2020/
│ │ ├── Csharp9_0/
│ │ │ ├── Csharp9_0.sln
│ │ │ ├── ModuleInitializer/
│ │ │ │ ├── ModuleInitializer.cs
│ │ │ │ ├── ModuleInitializer.csproj
│ │ │ │ ├── Reflection.cs
│ │ │ │ ├── Sample.cs
│ │ │ │ ├── StaticConstructor.cs
│ │ │ │ └── TypeRepository.cs
│ │ │ ├── NullableReferenceType9/
│ │ │ │ ├── DefaultConstraint.cs
│ │ │ │ ├── MemberNotNull.cs
│ │ │ │ ├── NullableReferenceType9.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── UnconstrainedGenericParameter.cs
│ │ │ └── TopLevelProgram/
│ │ │ ├── Program.cs
│ │ │ └── TopLevelProgram.csproj
│ │ ├── MetricSpace/
│ │ │ ├── MetricSpace/
│ │ │ │ ├── AddDuplicateBehavior.cs
│ │ │ │ ├── DuplicateNodeError.cs
│ │ │ │ ├── KdTree.cs
│ │ │ │ ├── KdTreeNode.cs
│ │ │ │ ├── MetricSpace.csproj
│ │ │ │ ├── NearestNeighbourList.cs
│ │ │ │ ├── PriorityQueue.cs
│ │ │ │ ├── Rect.cs
│ │ │ │ └── Traits/
│ │ │ │ ├── Arithmetics/
│ │ │ │ │ ├── DoubleArithmetic.cs
│ │ │ │ │ ├── FloatArithmetic.cs
│ │ │ │ │ ├── IArithmetic.cs
│ │ │ │ │ └── IntArithmetic.cs
│ │ │ │ ├── Array/
│ │ │ │ │ ├── FixedArray.cs
│ │ │ │ │ ├── IFixedArray.cs
│ │ │ │ │ └── IFixedArrayAccessor.cs
│ │ │ │ ├── Instantiation.cs
│ │ │ │ └── Metrics/
│ │ │ │ ├── ChebyshevMetric.cs
│ │ │ │ ├── EuclideanMetric.cs
│ │ │ │ ├── IMetric.cs
│ │ │ │ └── ManhattanMetric.cs
│ │ │ ├── MetricSpace.sln
│ │ │ └── XUnitTestMetricSpace/
│ │ │ ├── UnitTest1.cs
│ │ │ └── XUnitTestMetricSpace.csproj
│ │ └── ReadModReq/
│ │ ├── .gitignore
│ │ ├── Csharp7.0/
│ │ │ └── Csharp7.0.csproj
│ │ ├── Csharp7.2/
│ │ │ └── Csharp7.2.csproj
│ │ ├── Csharp8.0/
│ │ │ └── Csharp8.0.csproj
│ │ ├── LibModReq/
│ │ │ ├── Class1.cs
│ │ │ └── LibModReq.csproj
│ │ ├── ReadModReq/
│ │ │ ├── Program.cs
│ │ │ └── ReadModReq.csproj
│ │ ├── ReadModReq.sln
│ │ ├── UseModReq.cs
│ │ └── readme.md
│ ├── 2021/
│ │ ├── AnalyzerPackageReference/
│ │ │ ├── AnalyzerPackageReference/
│ │ │ │ ├── AnalyzerPackageReference.csproj
│ │ │ │ ├── NonCopyableAttribute.cs
│ │ │ │ └── Program.cs
│ │ │ └── AnalyzerPackageReference.sln
│ │ ├── ColorizeByProject/
│ │ │ ├── A/
│ │ │ │ └── A.csproj
│ │ │ ├── B/
│ │ │ │ └── B.csproj
│ │ │ ├── C/
│ │ │ │ └── C.csproj
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── A.cs
│ │ │ │ ├── B.cs
│ │ │ │ ├── C.cs
│ │ │ │ ├── ClassLibrary1.csproj
│ │ │ │ ├── D.cs
│ │ │ │ ├── E.cs
│ │ │ │ ├── F.cs
│ │ │ │ ├── G.cs
│ │ │ │ ├── H.cs
│ │ │ │ ├── I.cs
│ │ │ │ ├── J.cs
│ │ │ │ ├── K.cs
│ │ │ │ ├── L.cs
│ │ │ │ ├── M.cs
│ │ │ │ ├── N.cs
│ │ │ │ ├── O.cs
│ │ │ │ ├── P.cs
│ │ │ │ ├── Q.cs
│ │ │ │ ├── R.cs
│ │ │ │ ├── S.cs
│ │ │ │ ├── T.cs
│ │ │ │ ├── U.cs
│ │ │ │ ├── V.cs
│ │ │ │ ├── W.cs
│ │ │ │ ├── X.cs
│ │ │ │ ├── Y.cs
│ │ │ │ └── Z.cs
│ │ │ ├── ColorizeByProject.sln
│ │ │ ├── D/
│ │ │ │ └── D.csproj
│ │ │ ├── E/
│ │ │ │ └── E.csproj
│ │ │ ├── F/
│ │ │ │ └── F.csproj
│ │ │ ├── G/
│ │ │ │ └── G.csproj
│ │ │ ├── H/
│ │ │ │ └── H.csproj
│ │ │ ├── I/
│ │ │ │ └── I.csproj
│ │ │ ├── J/
│ │ │ │ └── J.csproj
│ │ │ ├── K/
│ │ │ │ └── K.csproj
│ │ │ ├── L/
│ │ │ │ └── L.csproj
│ │ │ ├── M/
│ │ │ │ └── M.csproj
│ │ │ ├── N/
│ │ │ │ └── N.csproj
│ │ │ ├── O/
│ │ │ │ └── O.csproj
│ │ │ ├── P/
│ │ │ │ └── P.csproj
│ │ │ ├── Q/
│ │ │ │ └── Q.csproj
│ │ │ ├── R/
│ │ │ │ └── R.csproj
│ │ │ ├── S/
│ │ │ │ └── S.csproj
│ │ │ ├── T/
│ │ │ │ └── T.csproj
│ │ │ ├── U/
│ │ │ │ └── U.csproj
│ │ │ ├── V/
│ │ │ │ └── V.csproj
│ │ │ ├── W/
│ │ │ │ └── W.csproj
│ │ │ ├── X/
│ │ │ │ └── X.csproj
│ │ │ ├── Y/
│ │ │ │ └── Y.csproj
│ │ │ └── Z/
│ │ │ └── Z.csproj
│ │ ├── Csharp10/
│ │ │ ├── CallerArgument/
│ │ │ │ ├── AllCallerInfo/
│ │ │ │ │ ├── AllCallerInfo.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── CallerArgument/
│ │ │ │ │ ├── CallerArgument.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── ThrowIfNull/
│ │ │ │ ├── Program.cs
│ │ │ │ └── ThrowIfNull.csproj
│ │ │ ├── Csharp10.sln
│ │ │ ├── InterpolatedStrings/
│ │ │ │ ├── AppendFormattedOverload/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── AppendFormattedOverload.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── Benchmark/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── Benchmark.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── BoolReturn/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── BoolReturn.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ConstString/
│ │ │ │ │ ├── ConstString.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── DefaultInterpolatedStringHandler/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── DefaultInterpolatedStringHandler.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── FormattingHandler/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── FormattingHandler.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ImprovedInterpolatedStrings/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── ImprovedInterpolatedStrings.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── InterpolatedStringHandlerArgument/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── InterpolatedStringHandlerArgument.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── InvariantGlobalization/
│ │ │ │ │ ├── Invariant.cs
│ │ │ │ │ ├── InvariantGlobalization.csproj
│ │ │ │ │ ├── Iso8601.cs
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── MinimalHandler/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── MinimalHandler.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── OverloadResolution/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── C1.cs
│ │ │ │ │ ├── C2.cs
│ │ │ │ │ ├── OverloadResolution.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── ParamsDictionary/
│ │ │ │ ├── ParamsDictionary.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Lambda/
│ │ │ │ ├── AttributeAndReturn/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── AttributeAndReturn.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── AttributeWeb/
│ │ │ │ │ ├── AttributeWeb.csproj
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── launchSettings.json
│ │ │ │ │ ├── appsettings.Development.json
│ │ │ │ │ └── appsettings.json
│ │ │ │ ├── NaturalType/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── NaturalType.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── SimpleReturn/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── SimpleReturn.csproj
│ │ │ │ ├── SimpleWeb/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ ├── Properties/
│ │ │ │ │ │ └── launchSettings.json
│ │ │ │ │ ├── SimpleWeb.csproj
│ │ │ │ │ ├── appsettings.Development.json
│ │ │ │ │ └── appsettings.json
│ │ │ │ └── TargetTypedReturn/
│ │ │ │ ├── Program.cs
│ │ │ │ └── TargetTypedReturn.csproj
│ │ │ ├── Others/
│ │ │ │ ├── ExtendedPropertyPetterns/
│ │ │ │ │ ├── ExtendedPropertyPetterns.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── MixedDeconstruction/
│ │ │ │ ├── MixedDeconstruction.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ParameterlessConstructors/
│ │ │ │ ├── ActivatorBug/
│ │ │ │ │ ├── ActivatorBug.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── CreateInstanceBenchmark/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── CreateInstanceBenchmark.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── DefaultParameter/
│ │ │ │ │ ├── DefaultParameter.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── FieldInitializer/
│ │ │ │ │ ├── FieldInitializer.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── GenericNew/
│ │ │ │ │ ├── .editorconfig
│ │ │ │ │ ├── GenericNew.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── ImmutableArray/
│ │ │ │ │ ├── ImmutableArray.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── NewOrDefault/
│ │ │ │ │ ├── NewOrDefault.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── NonPublicConstructor/
│ │ │ │ │ ├── NonPublicConstructor.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── RecordStruct/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RecordStruct.csproj
│ │ │ │ └── Zeroed/
│ │ │ │ ├── .editorconfig
│ │ │ │ ├── Program.cs
│ │ │ │ └── Zeroed.csproj
│ │ │ ├── RecordStruct/
│ │ │ │ ├── HidingField/
│ │ │ │ │ ├── HidingField.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── Metadata/
│ │ │ │ │ ├── Metadata.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── RecordStruct/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RecordStruct.csproj
│ │ │ │ ├── VsClass/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── VsClass.csproj
│ │ │ │ ├── VsNormalStruct/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── VsNormalStruct.csproj
│ │ │ │ └── With/
│ │ │ │ ├── Program.cs
│ │ │ │ └── With.csproj
│ │ │ ├── StaticAbstract/
│ │ │ │ └── GenericMath/
│ │ │ │ ├── Algebra/
│ │ │ │ │ ├── GaloisField.cs
│ │ │ │ │ ├── IConstant.cs
│ │ │ │ │ ├── IField.cs
│ │ │ │ │ └── Natural.cs
│ │ │ │ ├── GenericMath.csproj
│ │ │ │ └── Program.cs
│ │ │ └── readme.md
│ │ ├── Csharp9/
│ │ │ ├── Csharp9.sln
│ │ │ ├── Record/
│ │ │ │ └── InParams/
│ │ │ │ ├── InParams.csproj
│ │ │ │ └── Program.cs
│ │ │ └── readme.md
│ │ ├── EmojiData/
│ │ │ └── readme.md
│ │ ├── GenericMath/
│ │ │ ├── GenericMath/
│ │ │ │ ├── FixedArray.cs
│ │ │ │ ├── GenericMath.csproj
│ │ │ │ ├── MathInterfaces.cs
│ │ │ │ └── Program.cs
│ │ │ └── GenericMath.sln
│ │ ├── ImplicitUsings/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ConsoleAppDesktop/
│ │ │ │ ├── ConsoleAppDesktop.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ConsoleAppUseWinForms/
│ │ │ │ ├── ConsoleAppUseWinForms.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── ConsoleAppUseWpf/
│ │ │ │ ├── ConsoleAppUseWpf.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Directory.Build.props
│ │ │ ├── ImplicitUsings.sln
│ │ │ └── WebApplication1/
│ │ │ ├── Pages/
│ │ │ │ ├── Error.cshtml
│ │ │ │ ├── Error.cshtml.cs
│ │ │ │ ├── Index.cshtml
│ │ │ │ ├── Index.cshtml.cs
│ │ │ │ ├── Privacy.cshtml
│ │ │ │ ├── Privacy.cshtml.cs
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ ├── _Layout.cshtml.css
│ │ │ │ │ └── _ValidationScriptsPartial.cshtml
│ │ │ │ ├── _ViewImports.cshtml
│ │ │ │ └── _ViewStart.cshtml
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── launchSettings.json
│ │ │ ├── WebApplication1.csproj
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ └── wwwroot/
│ │ │ ├── css/
│ │ │ │ └── site.css
│ │ │ ├── js/
│ │ │ │ └── site.js
│ │ │ └── lib/
│ │ │ ├── bootstrap/
│ │ │ │ ├── LICENSE
│ │ │ │ └── dist/
│ │ │ │ ├── css/
│ │ │ │ │ ├── bootstrap-grid.css
│ │ │ │ │ ├── bootstrap-grid.rtl.css
│ │ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ │ ├── bootstrap-reboot.rtl.css
│ │ │ │ │ ├── bootstrap-utilities.css
│ │ │ │ │ ├── bootstrap-utilities.rtl.css
│ │ │ │ │ ├── bootstrap.css
│ │ │ │ │ └── bootstrap.rtl.css
│ │ │ │ └── js/
│ │ │ │ ├── bootstrap.bundle.js
│ │ │ │ ├── bootstrap.esm.js
│ │ │ │ └── bootstrap.js
│ │ │ ├── jquery/
│ │ │ │ ├── LICENSE.txt
│ │ │ │ └── dist/
│ │ │ │ └── jquery.js
│ │ │ ├── jquery-validation/
│ │ │ │ ├── LICENSE.md
│ │ │ │ └── dist/
│ │ │ │ ├── additional-methods.js
│ │ │ │ └── jquery.validate.js
│ │ │ └── jquery-validation-unobtrusive/
│ │ │ ├── LICENSE.txt
│ │ │ └── jquery.validate.unobtrusive.js
│ │ ├── ModuleInitializerNet48/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ └── ModuleInitializerNet48.sln
│ │ ├── NewTemplatesInNet6/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NewTemplatesInNet6.sln
│ │ │ ├── WebApplication1/
│ │ │ │ ├── Pages/
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ ├── Error.cshtml.cs
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ ├── Index.cshtml.cs
│ │ │ │ │ ├── Privacy.cshtml
│ │ │ │ │ ├── Privacy.cshtml.cs
│ │ │ │ │ ├── Shared/
│ │ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ │ └── _ValidationScriptsPartial.cshtml
│ │ │ │ │ ├── _ViewImports.cshtml
│ │ │ │ │ └── _ViewStart.cshtml
│ │ │ │ ├── Program.cs
│ │ │ │ ├── Properties/
│ │ │ │ │ └── launchSettings.json
│ │ │ │ ├── WebApplication1.csproj
│ │ │ │ ├── appsettings.Development.json
│ │ │ │ ├── appsettings.json
│ │ │ │ └── wwwroot/
│ │ │ │ ├── css/
│ │ │ │ │ └── site.css
│ │ │ │ ├── js/
│ │ │ │ │ └── site.js
│ │ │ │ └── lib/
│ │ │ │ ├── bootstrap/
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ └── dist/
│ │ │ │ │ ├── css/
│ │ │ │ │ │ ├── bootstrap-grid.css
│ │ │ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ │ │ └── bootstrap.css
│ │ │ │ │ └── js/
│ │ │ │ │ ├── bootstrap.bundle.js
│ │ │ │ │ └── bootstrap.js
│ │ │ │ ├── jquery/
│ │ │ │ │ ├── LICENSE.txt
│ │ │ │ │ └── dist/
│ │ │ │ │ └── jquery.js
│ │ │ │ ├── jquery-validation/
│ │ │ │ │ ├── LICENSE.md
│ │ │ │ │ └── dist/
│ │ │ │ │ ├── additional-methods.js
│ │ │ │ │ └── jquery.validate.js
│ │ │ │ └── jquery-validation-unobtrusive/
│ │ │ │ ├── LICENSE.txt
│ │ │ │ └── jquery.validate.unobtrusive.js
│ │ │ └── WebApplication2/
│ │ │ ├── Controllers/
│ │ │ │ └── HomeController.cs
│ │ │ ├── Models/
│ │ │ │ └── ErrorViewModel.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── launchSettings.json
│ │ │ ├── Views/
│ │ │ │ ├── Home/
│ │ │ │ │ ├── Index.cshtml
│ │ │ │ │ └── Privacy.cshtml
│ │ │ │ ├── Shared/
│ │ │ │ │ ├── Error.cshtml
│ │ │ │ │ ├── _Layout.cshtml
│ │ │ │ │ └── _ValidationScriptsPartial.cshtml
│ │ │ │ ├── _ViewImports.cshtml
│ │ │ │ └── _ViewStart.cshtml
│ │ │ ├── WebApplication2.csproj
│ │ │ ├── appsettings.Development.json
│ │ │ ├── appsettings.json
│ │ │ └── wwwroot/
│ │ │ ├── css/
│ │ │ │ └── site.css
│ │ │ ├── js/
│ │ │ │ └── site.js
│ │ │ └── lib/
│ │ │ ├── bootstrap/
│ │ │ │ ├── LICENSE
│ │ │ │ └── dist/
│ │ │ │ ├── css/
│ │ │ │ │ ├── bootstrap-grid.css
│ │ │ │ │ ├── bootstrap-reboot.css
│ │ │ │ │ └── bootstrap.css
│ │ │ │ └── js/
│ │ │ │ ├── bootstrap.bundle.js
│ │ │ │ └── bootstrap.js
│ │ │ ├── jquery/
│ │ │ │ ├── LICENSE.txt
│ │ │ │ └── dist/
│ │ │ │ └── jquery.js
│ │ │ ├── jquery-validation/
│ │ │ │ ├── LICENSE.md
│ │ │ │ └── dist/
│ │ │ │ ├── additional-methods.js
│ │ │ │ └── jquery.validate.js
│ │ │ └── jquery-validation-unobtrusive/
│ │ │ ├── LICENSE.txt
│ │ │ └── jquery.validate.unobtrusive.js
│ │ └── NoThrowAwaiter/
│ │ ├── NoThrowAwaiter/
│ │ │ ├── IgnoreCancelBenchmark.cs
│ │ │ ├── NoThrowAwaiter.csproj
│ │ │ ├── NoThrowOnCancelAwaiter.cs
│ │ │ ├── Program.cs
│ │ │ ├── ResultOrCancel.cs
│ │ │ └── TaskExtensions.cs
│ │ └── NoThrowAwaiter.sln
│ ├── 2022/
│ │ ├── Algebra/
│ │ │ ├── Algebra/
│ │ │ │ ├── Algebra.csproj
│ │ │ │ ├── Constants/
│ │ │ │ │ ├── IConstant.cs
│ │ │ │ │ ├── IntConstants.cs
│ │ │ │ │ ├── IntegerConstant.cs
│ │ │ │ │ └── RationalConstant.cs
│ │ │ │ ├── Conversion.cs
│ │ │ │ ├── EuclideanAlgorithm.cs
│ │ │ │ ├── QuadraticField.cs
│ │ │ │ ├── Rational.cs
│ │ │ │ └── RationalQuadraticField.cs
│ │ │ ├── Algebra.sln
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ └── TestAlgebra/
│ │ │ ├── EuclideanAlgorithmTest.cs
│ │ │ ├── TestAlgebra.csproj
│ │ │ └── Usings.cs
│ │ ├── Csharp11/
│ │ │ ├── 17.0/
│ │ │ │ └── GenericAttribute/
│ │ │ │ ├── GenericAttribute.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── 17.1p1/
│ │ │ │ └── NewlineInInterpolation/
│ │ │ │ ├── NewlineInInterpolation.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── 17.1p2/
│ │ │ │ └── ListPattern/
│ │ │ │ ├── ListPattern.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── 17.1p3/
│ │ │ │ └── NullCheck/
│ │ │ │ ├── NullCheck.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── 17.2p1/
│ │ │ │ ├── CacheDelegate/
│ │ │ │ │ ├── CacheDelegate.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ └── RawStringLiteral/
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RawStringLiteral.csproj
│ │ │ │ └── Whitespaces.cs
│ │ │ ├── 17.3p1/
│ │ │ │ ├── AutoDefaultStruct/
│ │ │ │ │ ├── AutoDefaultStruct.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── CheckedOperator/
│ │ │ │ │ ├── CheckedOperator.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── PatternROS/
│ │ │ │ │ ├── PatternROS.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── UnsignedRightShift/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── UnsignedRightShift.csproj
│ │ │ │ └── Utf8Literal/
│ │ │ │ ├── Program.cs
│ │ │ │ └── Utf8Literal.csproj
│ │ │ ├── 17.3p2/
│ │ │ │ ├── NameOfParameter/
│ │ │ │ │ ├── NameOfParameter.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── NumericIntPtr/
│ │ │ │ │ ├── NumericIntPtr.csproj
│ │ │ │ │ └── Program.cs
│ │ │ │ ├── RelaxingShiftOperator/
│ │ │ │ │ ├── Background.cs
│ │ │ │ │ ├── Drawback.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RelaxingShiftOperator.csproj
│ │ │ │ ├── RequiredMembers/
│ │ │ │ │ ├── MembersNotNull.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── RequiredMembers.csproj
│ │ │ │ └── StaticVirtual/
│ │ │ │ ├── GenericMath.cs
│ │ │ │ ├── Parsable.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StaticAbstract.cs
│ │ │ │ ├── StaticBehavior.cs
│ │ │ │ └── StaticVirtual.csproj
│ │ │ ├── 17.4p1/
│ │ │ │ ├── FileLocal/
│ │ │ │ │ ├── A.cs
│ │ │ │ │ ├── FileLocal.csproj
│ │ │ │ │ ├── Inheritance.cs
│ │ │ │ │ ├── Interface.cs
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── R.cs
│ │ │ │ └── RefField/
│ │ │ │ ├── FixedArray.cs
│ │ │ │ ├── MultipleRefReturn.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── RefField.csproj
│ │ │ │ └── TypedRef.cs
│ │ │ ├── Csharp11.sln
│ │ │ └── Directory.build.targets
│ │ ├── EmbeddedLanguages/
│ │ │ ├── .editorconfig
│ │ │ ├── Directory.Build.targets
│ │ │ ├── EmbeddedLanguages.sln
│ │ │ ├── Example/
│ │ │ │ ├── Example.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── WithFeatures/
│ │ │ │ └── WithFeatures.csproj
│ │ │ ├── WithoutFeatures/
│ │ │ │ ├── Program.cs
│ │ │ │ └── WithoutFeatures.csproj
│ │ │ └── readme.md
│ │ ├── NBitInt/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── NBitInt/
│ │ │ │ ├── IConstant.cs
│ │ │ │ ├── Int.cs
│ │ │ │ ├── IntConstant.cs
│ │ │ │ └── NBitInt.csproj
│ │ │ └── NBitInt.sln
│ │ ├── NoMoreT4/
│ │ │ ├── Benchmark/
│ │ │ │ ├── Benchmark.csproj
│ │ │ │ ├── GeneratorBenchmark.cs
│ │ │ │ ├── Program.cs
│ │ │ │ └── Sample.cs
│ │ │ ├── ClassLibrary1/
│ │ │ │ ├── ClassLibrary1.csproj
│ │ │ │ ├── IGenerator.cs
│ │ │ │ ├── InterpolationGenerator.cs
│ │ │ │ ├── T4Generator.cs
│ │ │ │ ├── T4Generator.partial.cs
│ │ │ │ └── T4Generator.tt
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Program.cs
│ │ │ │ └── Sample.cs
│ │ │ ├── FileGenerator/
│ │ │ │ ├── FileGenerator.csproj
│ │ │ │ ├── X.scriban
│ │ │ │ └── Y.cs
│ │ │ ├── NoMoreT4.sln
│ │ │ └── readme.md
│ │ ├── StringJoin/
│ │ │ ├── JoinBenchmark.cs
│ │ │ ├── Joiner.cs
│ │ │ ├── Program.cs
│ │ │ ├── StringJoin.csproj
│ │ │ ├── StringJoin.sln
│ │ │ └── readme.md
│ │ └── Whitespace/
│ │ ├── Program.cs
│ │ └── Whitespace.csproj
│ ├── 2023/
│ │ └── MemberOrder/
│ │ ├── .vscode/
│ │ │ └── settings.json
│ │ ├── A.cs
│ │ ├── Ab/
│ │ │ └── Ab.csproj
│ │ ├── B.cs
│ │ ├── Ba/
│ │ │ └── Ba.csproj
│ │ ├── Directory.Build.props
│ │ ├── Explicit/
│ │ │ └── Explicit.csproj
│ │ ├── Implicit/
│ │ │ └── Implicit.csproj
│ │ ├── MemberOrder.sln
│ │ ├── Program.cs
│ │ ├── Z.cs
│ │ ├── readme.md
│ │ ├── À.cs
│ │ ├── α.cs
│ │ ├── д.cs
│ │ ├── ア.cs
│ │ ├── 漢字.cs
│ │ ├── ア.cs
│ │ ├── 🐈.cs
│ │ └── 𩸽.cs
│ ├── 2024/
│ │ ├── Distinct/
│ │ │ ├── .editorconfig
│ │ │ ├── Directory.Build.props
│ │ │ ├── Distinct/
│ │ │ │ ├── Binary.cs
│ │ │ │ ├── Distinct.csproj
│ │ │ │ ├── Hash.cs
│ │ │ │ ├── Linear.cs
│ │ │ │ └── SpanHashSet.cs
│ │ │ ├── Distinct.slnx
│ │ │ ├── DistinctBenchmark/
│ │ │ │ ├── DistinctBenchmark.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── DistinctTest/
│ │ │ │ ├── BinaryTest.cs
│ │ │ │ ├── DistinctTest.csproj
│ │ │ │ ├── GlobalUsings.cs
│ │ │ │ ├── HashTest.cs
│ │ │ │ ├── LinearTest.cs
│ │ │ │ └── TestData.cs
│ │ │ └── readme.md
│ │ └── ValueList/
│ │ ├── Collections/
│ │ │ ├── IListImpl.cs
│ │ │ ├── PooledValueList.cs
│ │ │ ├── ReferenceImplementation.cs
│ │ │ ├── ValueList.cs
│ │ │ └── ValueListBuilder.cs
│ │ ├── Program.cs
│ │ ├── ValueList.csproj
│ │ ├── ValueList.sln
│ │ └── ValueListBenchmark.cs
│ ├── 2025/
│ │ ├── InPlaceGroupBy/
│ │ │ ├── .editorconfig
│ │ │ ├── BenchmarkInPlaceGroupBy/
│ │ │ │ ├── BenchmarkInPlaceGroupBy.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Directory.Build.props
│ │ │ ├── InPlaceGroupBy/
│ │ │ │ ├── InPlaceGroupBy.csproj
│ │ │ │ ├── InPlaceSpanExtensions.cs
│ │ │ │ └── SortedSpanGrouping.cs
│ │ │ ├── InPlaceGroupBy.slnx
│ │ │ ├── TestInPlaceGroupBy/
│ │ │ │ ├── Common.cs
│ │ │ │ ├── InPlaceGroupBy.cs
│ │ │ │ └── TestInPlaceGroupBy.csproj
│ │ │ └── readme.md
│ │ ├── PseudoDictionary/
│ │ │ ├── .editorconfig
│ │ │ ├── BenchmarkPseudoDictionary/
│ │ │ │ ├── BenchmarkPseudoDictionary.csproj
│ │ │ │ └── Program.cs
│ │ │ ├── Directory.Build.props
│ │ │ ├── PseudoDictionary/
│ │ │ │ ├── IListImpl.cs
│ │ │ │ ├── PseudoDictionary.csproj
│ │ │ │ ├── PseudoDictionaryExtensions.ValueList.cs
│ │ │ │ ├── PseudoDictionaryExtensions.cs
│ │ │ │ └── ValueListBuilder.cs
│ │ │ ├── PseudoDictionary.slnx
│ │ │ ├── TestPseudoDictionary/
│ │ │ │ ├── Common.cs
│ │ │ │ ├── PseudoDictionaryExtensionsTest.cs
│ │ │ │ ├── PseudoDictionaryExtensionsValueListTest.cs
│ │ │ │ └── TestPseudoDictionary.csproj
│ │ │ └── readme.md
│ │ ├── RefReflection/
│ │ │ ├── ConsoleApp1/
│ │ │ │ ├── ConsoleApp1.csproj
│ │ │ │ ├── Example/
│ │ │ │ │ ├── A.cs
│ │ │ │ │ └── Program1.cs
│ │ │ │ ├── Formatter/
│ │ │ │ │ ├── ArrayFormatter.cs
│ │ │ │ │ ├── FormatterProvider.cs
│ │ │ │ │ ├── IFormatter.cs
│ │ │ │ │ ├── Primitives.cs
│ │ │ │ │ └── RecordFormatter.cs
│ │ │ │ ├── ITupleAccessor.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── TupleAccessor2.cs
│ │ │ │ ├── TupleAccessor3.cs
│ │ │ │ ├── TupleEnumerator.cs
│ │ │ │ ├── TypedRef.cs
│ │ │ │ └── UnsafeRef.cs
│ │ │ └── RefReflection.slnx
│ │ └── StringInDataSection/
│ │ ├── DataSectionAscii/
│ │ │ ├── Class1.cs
│ │ │ └── DataSectionAscii.csproj
│ │ ├── DataSectionJapanese/
│ │ │ ├── Class1.cs
│ │ │ └── DataSectionJapanese.csproj
│ │ ├── Directory.build.props
│ │ ├── NormalAscii/
│ │ │ ├── Class1.cs
│ │ │ └── NormalAscii.csproj
│ │ ├── NormalJapanese/
│ │ │ ├── Class1.cs
│ │ │ └── NormalJapanese.csproj
│ │ ├── StringInDataSection.slnx
│ │ └── readme.md
│ ├── 2026/
│ │ └── DependencyPropertyGenerator/
│ │ ├── ClassLibrary1/
│ │ │ ├── Class1.cs
│ │ │ └── ClassLibrary1.csproj
│ │ ├── ClassLibrary1.slnx
│ │ ├── Generator/
│ │ │ ├── DependencyPropertyGenerator.cs
│ │ │ ├── Generator.csproj
│ │ │ └── PolyFill.cs
│ │ └── Generator.UnitTests/
│ │ ├── DependencyPropertyGenerator.cs
│ │ └── Generator.UnitTests.csproj
│ ├── Csharp6/
│ │ ├── Csharp6/
│ │ │ ├── App.config
│ │ │ ├── Csharp5/
│ │ │ │ ├── IndexInitializerSample.cs
│ │ │ │ ├── NameOfSample.cs
│ │ │ │ ├── NullConditional.cs
│ │ │ │ ├── Point.cs
│ │ │ │ ├── PointJson.cs
│ │ │ │ ├── Polygon.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StaticUsingSample.cs
│ │ │ │ └── StringInterpolationSample.cs
│ │ │ ├── Csharp6/
│ │ │ │ ├── AwaitInCatchFinally.cs
│ │ │ │ ├── ExceptionFilter.cs
│ │ │ │ ├── ExtensionCollectionInitializer.cs
│ │ │ │ ├── IndexInitializerSample.cs
│ │ │ │ ├── NameOfSample.cs
│ │ │ │ ├── NullConditional.cs
│ │ │ │ ├── Point.cs
│ │ │ │ ├── PointJson.cs
│ │ │ │ ├── Polygon.cs
│ │ │ │ ├── Program.cs
│ │ │ │ ├── StaticUsingSample.cs
│ │ │ │ └── StringInterpolationSample.cs
│ │ │ ├── Csharp6.csproj
│ │ │ ├── Misc/
│ │ │ │ ├── AwaitOptimization.cs
│ │ │ │ ├── SmallChanges.cs
│ │ │ │ ├── StringInterpolationSample.cs
│ │ │ │ ├── UsingStaticEnum.cs
│ │ │ │ ├── UsingStaticExtensions.cs
│ │ │ │ └── UsingStaticNormalClass.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── packages.config
│ │ ├── Csharp6.sln
│ │ └── 旧/
│ │ └── Csharp6_CTP3/
│ │ ├── AutoProperty/
│ │ │ ├── App.config
│ │ │ ├── AutoProperty.csproj
│ │ │ ├── Point.GetterOnly.cs
│ │ │ ├── Point.Intializer.cs
│ │ │ ├── Point.cs
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Build2014Demo/
│ │ │ ├── App.config
│ │ │ ├── Build2014Demo.csproj
│ │ │ ├── Csharp5/
│ │ │ │ ├── Point.cs
│ │ │ │ ├── PointJson.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Csharp6/
│ │ │ │ ├── Point.cs
│ │ │ │ ├── PointJson.cs
│ │ │ │ └── Program.cs
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Csharp6.sln
│ │ ├── PrimaryConstructor/
│ │ │ ├── App.config
│ │ │ ├── FirstQuadrant.cs
│ │ │ ├── Point.GetterOnly.cs
│ │ │ ├── PrimaryConstructor.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── readme.txt
│ └── Csharp7/
│ └── 201603/
│ ├── 201603.sln
│ └── ConsoleApplication1/
│ ├── App.config
│ ├── ConsoleApplication1.csproj
│ ├── LocalFunctions/
│ │ └── Closure.cs
│ ├── Program.cs
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ └── RefReturns/
│ ├── BasedArray.cs
│ ├── Point.cs
│ └── RefParamsAndReturns.cs
├── Directory.Build.props
├── LICENSE
├── LanguageAndFrameworkVersion/
│ ├── Compatibility 2/
│ │ ├── CallerInfoAttributes.cs
│ │ ├── Compatibility 2.csproj
│ │ ├── Enumerable.cs
│ │ ├── ExtensionAttribute.cs
│ │ ├── FormattableString.cs
│ │ ├── Func.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── readme.txt
│ ├── Compatibility 3/
│ │ ├── Compatibility 3.csproj
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── readme.txt
│ ├── Compatibility 4/
│ │ ├── Compatibility 4.csproj
│ │ └── Properties/
│ │ └── AssemblyInfo.cs
│ ├── LanguageAndFrameworkVersion.sln
│ ├── SharedProject/
│ │ ├── Csharp3/
│ │ │ ├── AnonymousTypeSample.cs
│ │ │ ├── ExtensionMethodSample.cs
│ │ │ ├── LinqToObjectSample.cs
│ │ │ ├── PartialMethodSample.cs
│ │ │ ├── QueryExpressionSample.cs
│ │ │ └── SyntaxSugarSample.cs
│ │ ├── Csharp4/
│ │ │ ├── DefaultParameterSample.cs
│ │ │ ├── DynamicSample.cs
│ │ │ ├── VarianceSample.cs
│ │ │ └── note.txt
│ │ ├── Csharp5/
│ │ │ ├── AsyncSample.cs
│ │ │ ├── CallerInfoSample.cs
│ │ │ └── ForeachBreakingChangeSample.cs
│ │ ├── Csharp6/
│ │ │ ├── AsyncSample.cs
│ │ │ ├── ExtensionListInitializerSample.cs
│ │ │ ├── NullConditionalSample.cs
│ │ │ ├── StringInterpolationSample.cs
│ │ │ └── SyntaxSugarSample.cs
│ │ ├── Program.cs
│ │ ├── SharedProject.projitems
│ │ └── SharedProject.shproj
│ ├── Ver2/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 2.csproj
│ │ └── readme.txt
│ ├── Ver2Plus/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 2 Plus.csproj
│ │ └── readme.txt
│ ├── Ver3/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 3.csproj
│ │ ├── app.config
│ │ └── readme.txt
│ ├── Ver3Plus/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 3 Plus.csproj
│ │ └── readme.txt
│ ├── Ver4/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 4.csproj
│ │ └── readme.txt
│ ├── Ver4Plus/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 4 Plus.csproj
│ │ ├── packages.config
│ │ └── readme.txt
│ ├── Ver4_5/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 4.5.csproj
│ │ └── readme.txt
│ ├── Ver4_5Plus/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Ver 4.5 Plus.csproj
│ │ └── readme.txt
│ └── Ver4_6/
│ ├── Properties/
│ │ └── AssemblyInfo.cs
│ ├── Ver 4.6.csproj
│ └── readme.txt
├── Palindrome/
│ ├── ConsoleApplication1/
│ │ ├── App.config
│ │ ├── ConsoleApplication1.csproj
│ │ ├── Doc/
│ │ │ ├── Beginning.pptx
│ │ │ └── Conclusion.pptx
│ │ ├── Program.cs
│ │ └── Properties/
│ │ └── AssemblyInfo.cs
│ ├── ConsoleApplication2/
│ │ ├── App.config
│ │ ├── ConsoleApplication2.csproj
│ │ ├── Doc/
│ │ │ ├── Beginning.pptx
│ │ │ └── Conclusion.pptx
│ │ ├── Implementation1.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── SimpleImplementation.cs
│ ├── ConsoleApplication3/
│ │ ├── App.config
│ │ ├── ConsoleApplication3.csproj
│ │ ├── Doc/
│ │ │ ├── Beginning.pptx
│ │ │ └── Conclusion.pptx
│ │ ├── Implementation1.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── SimpleImplementation.cs
│ ├── ConsoleApplication4/
│ │ ├── App.config
│ │ ├── ConsoleApplication4.csproj
│ │ ├── Doc/
│ │ │ ├── Beginning.pptx
│ │ │ └── Conclusion.pptx
│ │ ├── Implementation1.cs
│ │ ├── Implementation2.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── SimpleImplementation.cs
│ ├── Introduction.pptx
│ └── Palindrome.sln
├── README.md
├── Scribble/
│ ├── ContextFreeTask/
│ │ ├── ContextFreeTask.sln
│ │ └── SampleWpfApp1/
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── SampleWpfApp1.csproj
│ │ ├── app.config
│ │ └── project.json
│ ├── FindSingleStatementBody/
│ │ ├── App.config
│ │ ├── CodeAnalysisForCSharp6.csproj
│ │ ├── MethodAnalyzer.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── PropertyAnalysis.cs
│ │ ├── SolutionLoader.cs
│ │ └── packages.config
│ ├── Inventories/
│ │ ├── DictionaryInventory.cs
│ │ ├── Events.cs
│ │ ├── IChangeable.cs
│ │ ├── IIdentifiable.cs
│ │ ├── IInventory.cs
│ │ ├── IObservableEnumerable.cs
│ │ ├── IObservableInventory.cs
│ │ ├── IdComparer.cs
│ │ ├── Inventories.csproj
│ │ ├── ItemChangedAction.cs
│ │ ├── ItemChangedArgs.cs
│ │ ├── ObservableEnumerable.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── packages.config
│ ├── Inventory/
│ │ ├── App.config
│ │ ├── DataModels/
│ │ │ ├── IApi.cs
│ │ │ ├── SyncResult.cs
│ │ │ └── Unit.cs
│ │ ├── Dummy/
│ │ │ ├── DummyApi.cs
│ │ │ ├── DummyMasters.cs
│ │ │ └── UnitMaster.cs
│ │ ├── InventoriesSample.csproj
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ └── packages.config
│ ├── MigrateToProjectJson/
│ │ ├── App.config
│ │ ├── MigrateToProjectJson.csproj
│ │ ├── Package.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── packages.config
│ │ └── readme.md
│ ├── OverloadResolutionWithDefaultParameter/
│ │ ├── .gitignore
│ │ ├── Program.cs
│ │ ├── Run.ps1
│ │ └── X/
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── X.cs
│ │ ├── X.csproj
│ │ └── X.sln
│ ├── Scribble.sln
│ ├── UnsafeMamberAccessor/
│ │ ├── FixedPacker/
│ │ │ ├── App.config
│ │ │ ├── FixedPacker.csproj
│ │ │ ├── Packer.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Samples/
│ │ │ │ ├── DefinitionData/
│ │ │ │ │ ├── Program.cs
│ │ │ │ │ └── Sample.cs
│ │ │ │ └── GeneratedData/
│ │ │ │ ├── Program.cs
│ │ │ │ └── Sample.cs
│ │ │ ├── Unpacker.cs
│ │ │ └── project.json
│ │ ├── SampleApp/
│ │ │ ├── App.config
│ │ │ ├── Diagnostics/
│ │ │ │ └── Measure.cs
│ │ │ ├── Lib/
│ │ │ │ ├── IMemberAccessor.cs
│ │ │ │ ├── IRecordAccessor.cs
│ │ │ │ ├── NameIndexTable.cs
│ │ │ │ ├── TypedPointer.cs
│ │ │ │ └── ValueTupleAccessor.cs
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── SampleApp.csproj
│ │ │ ├── Samples/
│ │ │ │ ├── Entry.cs
│ │ │ │ └── Point.cs
│ │ │ └── project.json
│ │ └── UnsafeMamberAccessor.sln
│ ├── ValueTuple/
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── Reflection/
│ │ │ ├── ArrayTypeInfo.cs
│ │ │ ├── IRecordAccessor.cs
│ │ │ ├── Primitives.cs
│ │ │ ├── RecordFieldInfo.cs
│ │ │ ├── RecordTypeInfo.cs
│ │ │ └── TypeRepository.cs
│ │ ├── Sample/
│ │ │ ├── Fighter.cs
│ │ │ ├── Mage.cs
│ │ │ ├── Pair.cs
│ │ │ ├── Point.cs
│ │ │ ├── PolyLine.cs
│ │ │ ├── Thief.cs
│ │ │ └── Unit.cs
│ │ ├── Serialization/
│ │ │ ├── IDeserializer.cs
│ │ │ ├── ISerializer.cs
│ │ │ ├── ISerializerFactory.cs
│ │ │ ├── MiniMessagePack.cs
│ │ │ ├── MyBinarySerializer.cs
│ │ │ ├── MySerializer.cs
│ │ │ ├── Number.tt
│ │ │ └── Number1.cs
│ │ ├── ValueTuple.csproj
│ │ └── 旧/
│ │ ├── IDeepCloneable.cs
│ │ ├── IRecord.cs
│ │ ├── ITuple.cs
│ │ ├── Line.cs
│ │ ├── Person.cs
│ │ ├── Point.cs
│ │ ├── Program.cs
│ │ ├── Serialization旧/
│ │ │ ├── IDeserializer.cs
│ │ │ ├── ISerializer.cs
│ │ │ └── MySerializer.cs
│ │ ├── Student.cs
│ │ ├── ValueTuple.cs
│ │ ├── ValueTuples.cs
│ │ └── ValueTuples.tt
│ ├── WhereNonNull/
│ │ ├── NullableExtensions.AsEnumerable.cs
│ │ ├── NullableExtensions.NonNullIterator.cs
│ │ ├── NullableExtensions.NonNullStruct.cs
│ │ ├── OfTypeBenchmark.cs
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── WhereNonNull.csproj
│ │ └── project.json
│ ├── WhereNonNull.sln
│ └── readme.md
├── Style/
│ └── code.css
├── Tools/
│ ├── DnxMigration/
│ │ ├── DnxMigration.sln
│ │ ├── GenerateWrapJson/
│ │ │ ├── App.config
│ │ │ ├── GenerateWrapJson.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── MigrateToMsbuild15/
│ │ │ ├── App.config
│ │ │ ├── MigrateToMsbuild15.csproj
│ │ │ ├── Program.cs
│ │ │ └── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── MigrateToProjectJson/
│ │ │ ├── App.config
│ │ │ ├── MigrateToProjectJson.csproj
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── project.json
│ │ │ └── readme.md
│ │ ├── ProjectModels/
│ │ │ ├── Csproj.cs
│ │ │ ├── CsprojOutputType.cs
│ │ │ ├── Package.cs
│ │ │ ├── PackagesConfig.cs
│ │ │ ├── ProjectJson.cs
│ │ │ ├── ProjectModels.csproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── Solution.cs
│ │ │ └── project.json
│ │ ├── Test/
│ │ │ ├── App.config
│ │ │ ├── Program.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Test.csproj
│ │ └── TestData/
│ │ ├── .gitignore
│ │ └── Source/
│ │ ├── .gitignore
│ │ ├── ClassLibraryNet35/
│ │ │ ├── Class1.cs
│ │ │ ├── ClassLibraryNet35.csproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── packages.config
│ │ ├── ClassLibraryNet35X/
│ │ │ ├── Class1.cs
│ │ │ ├── ClassLibraryNet35X.csproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── project.json
│ │ ├── ClassLibraryNet46/
│ │ │ ├── Class1.cs
│ │ │ ├── ClassLibraryNet46.csproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── packages.config
│ │ ├── ClassLibraryNet46X/
│ │ │ ├── Class1.cs
│ │ │ ├── ClassLibraryNet46X.csproj
│ │ │ ├── ClassLibraryNet46X.xproj
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── project.json
│ │ ├── CommonNet35/
│ │ │ ├── CommonNet35.csproj
│ │ │ ├── IInterface1.cs
│ │ │ ├── Properties/
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── packages.config
│ │ ├── XprojInterop.sln
│ │ ├── global.json
│ │ └── src/
│ │ ├── WebApplication1/
│ │ │ ├── Properties/
│ │ │ │ └── launchSettings.json
│ │ │ ├── Startup.cs
│ │ │ ├── WebApplication1.xproj
│ │ │ ├── project.json
│ │ │ └── wwwroot/
│ │ │ └── web.config
│ │ └── XprojLibrary/
│ │ ├── Class1.cs
│ │ ├── Properties/
│ │ │ └── AssemblyInfo.cs
│ │ ├── XprojLibrary.xproj
│ │ └── project.json
│ ├── KeyLogger/
│ │ ├── Gma.UserActivityMonitor/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── GlobalEventProvider.cs
│ │ │ ├── Gma.UserActivityMonitor.csproj
│ │ │ ├── HookManager.Callbacks.cs
│ │ │ ├── HookManager.Structures.cs
│ │ │ ├── HookManager.Windows.cs
│ │ │ ├── HookManager.cs
│ │ │ └── MouseEventExtArgs.cs
│ │ ├── KeyLogger/
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── KeyLogger.csproj
│ │ │ ├── NativeWin32.cs
│ │ │ ├── Properties/
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ ├── Resources.Designer.cs
│ │ │ │ ├── Resources.resx
│ │ │ │ ├── Settings.Designer.cs
│ │ │ │ └── Settings.settings
│ │ │ ├── Window1.xaml
│ │ │ └── Window1.xaml.cs
│ │ └── KeyLogger.sln
│ ├── ProjectReferenceGraph/
│ │ ├── Program.cs
│ │ ├── Project.cs
│ │ ├── ProjectReferenceGraph.csproj
│ │ ├── ProjectReferenceGraph.sln
│ │ └── Solution.cs
│ ├── RoslynClassifier/
│ │ └── readme.md
│ ├── SyntaxHighlighter/
│ │ ├── App.xaml
│ │ ├── App.xaml.cs
│ │ ├── AsmFormatter.cs
│ │ ├── Color.cs
│ │ ├── HtmlParser.cs
│ │ ├── MainWindow.xaml
│ │ ├── MainWindow.xaml.cs
│ │ ├── Mode.cs
│ │ ├── RtfParser.cs
│ │ └── SyntaxHighlighter.csproj
│ ├── Tools.sln
│ └── UnicodeService/
│ ├── UnicodeService/
│ │ ├── Pages/
│ │ │ ├── Extensions.cs
│ │ │ ├── Grapheme.cshtml
│ │ │ └── Index.cshtml
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ └── launchSettings.json
│ │ ├── Startup.cs
│ │ ├── UnicodeService.csproj
│ │ ├── appsettings.Development.json
│ │ ├── appsettings.json
│ │ └── wwwroot/
│ │ └── css/
│ │ └── site.css
│ ├── UnicodeService.sln
│ └── readme.md
├── _config.yml
└── docs/
└── canvas-fill-text.html
Showing preview only (1,115K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (12762 symbols across 1867 files)
FILE: BreakingChanges/VS2008_CS3/OverloadResolutionArraysOfPointer.cs
class OverloadResolutionArraysOfPointer (line 9) | unsafe class OverloadResolutionArraysOfPointer
method Main (line 11) | static void Main()
method Test (line 18) | static void Test<S>(IEnumerable<S> x) { System.Console.WriteLine("Test...
method Test (line 21) | static void Test(object o) { System.Console.WriteLine("Test(object o)"...
FILE: BreakingChanges/VS2008_CS3/ParamsOverride.cs
type I (line 1) | interface I
class Base (line 6) | class Base : I
class ParamsOverride (line 47) | class ParamsOverride { static void Main() { } }
method Main (line 47) | static void Main() { }
FILE: BreakingChanges/VS2010_CS4/ImplicitConversionCausedByVariance.cs
class ImplicitConversionCausedByVariance (line 21) | class ImplicitConversionCausedByVariance
method Test (line 23) | public static void Test(IEnumerable e)
method Test (line 27) | public static void Test(IEnumerable<object> e)
method Main (line 31) | static void Main(string[] args)
FILE: BreakingChanges/VS2012_CS5/IterationVariableOfForeach.cs
class IterationVariableOfForeach (line 10) | class IterationVariableOfForeach
method Main (line 12) | static void Main()
FILE: BreakingChanges/VS2015_CS6/CyclicalConstructorChaining.cs
class C (line 1) | class C
method C (line 3) | public C(int x) : this() { }
method C (line 4) | public C() : this(0) { }
class CyclicalConstructorChaining (line 13) | class CyclicalConstructorChaining
method Main (line 15) | static void Main() { }
FILE: BreakingChanges/VS2015_CS6/DefiniteAssignment.cs
class DefiniteAssignment (line 6) | class DefiniteAssignment
method Main (line 8) | static void Main(string[] args)
FILE: BreakingChanges/VS2015_CS6/EnumBaseTypeSystemInt32.cs
type X (line 1) | enum X : System.Int32
class EnumBaseTypeSystemInt32 (line 15) | class EnumBaseTypeSystemInt32 { static void Main() { } }
method Main (line 15) | static void Main() { }
FILE: BreakingChanges/VS2015_CS6/FuncOfFuncTypeInference.cs
class FuncOfFuncTypeInference (line 3) | class FuncOfFuncTypeInference
method Main (line 5) | static void Main()
method X (line 11) | private static int X(Func<Func<int>> f) { return f()(); }
method X (line 12) | private static int X(Func<Func<int?>> f) { return f()() ?? 0; }
method Y (line 14) | private static int Y(Func<Func<int>> f) { return f()(); }
method Y (line 15) | private static double Y(Func<Func<double>> f) { return f()(); }
FILE: BreakingChanges/VS2015_CS6/InvariantMeaningInBlock.cs
class InvariantMeaningInBlock (line 9) | class InvariantMeaningInBlock
method F (line 13) | void F(bool b)
method F1 (line 25) | void F1(bool b)
method Main (line 36) | static void Main()
FILE: BreakingChanges/VS2015_CS6/KatakanaMiddleDot.cs
class KatakanaMiddleDot (line 15) | class KatakanaMiddleDot
method Main (line 17) | static void Main(string[] args)
FILE: BreakingChanges/a.cs
type X (line 3) | interface X<in U, out T>
method X (line 5) | Func<U, T> X(Func<T, U> f);
class P (line 8) | class P
method Main (line 10) | static void Main() { }
FILE: Chapters/Algorithm/Collections/ArrayList.cs
class ArrayList (line 9) | public class ArrayList<T> : IEnumerable<T>
method ArrayList (line 19) | public ArrayList() : this(256) {}
method ArrayList (line 25) | public ArrayList(int capacity)
method Extend (line 62) | void Extend()
method Insert (line 74) | public void Insert(int i, T elem)
method InsertLast (line 91) | public void InsertLast(T elem)
method Erase (line 104) | public void Erase(int i)
method EraseLast (line 116) | public void EraseLast()
method GetEnumerator (line 124) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 130) | System.Collections.IEnumerator
FILE: Chapters/Algorithm/Collections/BinaryTree.cs
class BinaryTree (line 11) | class BinaryTree<T> : ISet<T>
class Node (line 19) | public class Node
method Node (line 29) | internal Node() : this(default(T), null) { }
method Node (line 31) | internal Node(T val, Node parent)
method Output (line 115) | [System.Diagnostics.Conditional("DEBUG")]
method BinaryTree (line 153) | public BinaryTree()
method Insert (line 190) | public void Insert(T elem)
method Replace (line 218) | void Replace(Node n, Node m)
method Erase (line 231) | public void Erase(Node n)
method Erase (line 249) | public void Erase(T elem)
method Find (line 261) | public Node Find(T elem)
method Contains (line 273) | public bool Contains(T elem)
method FindRange (line 284) | public IEnumerable<T> FindRange(T elem)
method GetEnumerator (line 293) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 299) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
method Output (line 307) | [System.Diagnostics.Conditional("DEBUG")]
FILE: Chapters/Algorithm/Collections/CircularBuffer.cs
class CircularBuffer (line 9) | public class CircularBuffer<T> : IEnumerable<T>
method CircularBuffer (line 20) | public CircularBuffer() : this(256) {}
method CircularBuffer (line 26) | public CircularBuffer(int capacity)
method Pow2 (line 34) | static int Pow2(uint n)
method Extend (line 78) | void Extend()
method Insert (line 98) | public void Insert(int i, T elem)
method InsertFirst (line 127) | public void InsertFirst(T elem)
method InsertLast (line 140) | public void InsertLast(T elem)
method Erase (line 153) | public void Erase(int i)
method EraseFirst (line 165) | public void EraseFirst()
method EraseLast (line 173) | public void EraseLast()
method GetEnumerator (line 181) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 197) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
FILE: Chapters/Algorithm/Collections/Dictionary.cs
type IDictionary (line 12) | public interface IDictionary<TKey, TValue>
method Insert (line 20) | void Insert(TKey key, TValue val);
method Erase (line 26) | void Erase(TKey key);
method Contains (line 33) | bool Contains(TKey key);
class Entry (line 62) | internal class Entry<TKey, TValue>
method Entry (line 67) | internal Entry(TKey key) : this(key, default(TValue)) { }
method Entry (line 69) | internal Entry(TKey key, TValue val)
method GetHashCode (line 77) | public override int GetHashCode()
method Equals (line 82) | public override bool Equals(object obj)
class ComparableEntry (line 99) | internal class ComparableEntry<TKey, TValue>
method ComparableEntry (line 104) | internal ComparableEntry(TKey key) : base(key) { }
method ComparableEntry (line 105) | internal ComparableEntry(TKey key, TValue val) : base(key, val) { }
method CompareTo (line 109) | public int CompareTo(ComparableEntry<TKey, TValue> other)
class HashDictionary (line 117) | public class HashDictionary<TKey, TValue> : IDictionary<TKey, TValue>
method HashDictionary (line 126) | public HashDictionary() : this(256) { }
method HashDictionary (line 128) | public HashDictionary(int capacity)
method Insert (line 136) | public void Insert(TKey key, TValue val)
method Erase (line 141) | public void Erase(TKey key)
method Contains (line 146) | public bool Contains(TKey key)
method GetEnumerator (line 192) | public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
method GetEnumerator (line 200) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
class SortedDictionary (line 208) | public class SortedDictionary<TKey, TValue> : IDictionary<TKey, TValue>
method SortedDictionary (line 218) | public SortedDictionary() : this(256) { }
method SortedDictionary (line 220) | public SortedDictionary(int capacity)
method Insert (line 228) | public void Insert(TKey key, TValue val)
method Erase (line 233) | public void Erase(TKey key)
method Contains (line 238) | public bool Contains(TKey key)
method GetEnumerator (line 284) | public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
method GetEnumerator (line 292) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
class TreeDictionary (line 300) | public class TreeDictionary<TKey, TValue> : IDictionary<TKey, TValue>
method TreeDictionary (line 310) | public TreeDictionary()
method Insert (line 318) | public void Insert(TKey key, TValue val)
method Erase (line 323) | public void Erase(TKey key)
method Contains (line 328) | public bool Contains(TKey key)
method GetEnumerator (line 376) | public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator()
method GetEnumerator (line 384) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
FILE: Chapters/Algorithm/Collections/ForwardLinkedList.cs
class ForwardLinkedList (line 9) | public class ForwardLinkedList<T> : IEnumerable<T>
class Node (line 16) | public class Node
method Node (line 26) | internal Node(T val, Node next)
method ForwardLinkedList (line 64) | public ForwardLinkedList()
method InsertAfter (line 103) | public Node InsertAfter(Node n, T elem)
method InsertFirst (line 115) | public Node InsertFirst(T elem)
method EraseAfter (line 126) | public void EraseAfter(Node n)
method Erase (line 137) | public Node Erase(Node n)
method EraseFirst (line 157) | public void EraseFirst()
method GetEnumerator (line 166) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 172) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
FILE: Chapters/Algorithm/Collections/HashTable.cs
class HashTable (line 11) | class HashTable<T> : ISet<T>
class Node (line 15) | class Node
method Node (line 20) | internal Node(T val, Node next)
method HashTable (line 36) | public HashTable() : this(256) { }
method HashTable (line 38) | public HashTable(int capacity)
method Pow2 (line 45) | static int Pow2(uint n)
method Insert (line 60) | public void Insert(T elem)
method Erase (line 73) | public void Erase(T elem)
method Contains (line 92) | public bool Contains(T elem)
method Find (line 105) | public T Find(T elem)
method GetEnumerator (line 117) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 124) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
FILE: Chapters/Algorithm/Collections/LinkedList.cs
class LinkedList (line 9) | public class LinkedList<T> : IEnumerable<T>
class Node (line 16) | public class Node
method Node (line 27) | internal Node(T val, Node prev, Node next)
method LinkedList (line 75) | public LinkedList()
method InsertAfter (line 132) | public Node InsertAfter(Node n, T elem)
method InsertBefore (line 146) | public Node InsertBefore(Node n, T elem)
method InsertFirst (line 159) | public Node InsertFirst(T elem)
method InsertLast (line 169) | public Node InsertLast(T elem)
method Erase (line 179) | public Node Erase(Node n)
method EraseFirst (line 193) | public void EraseFirst()
method EraseLast (line 201) | public void EraseLast()
method GetEnumerator (line 209) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 215) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
FILE: Chapters/Algorithm/Collections/PriorityQueue.cs
class PriorityQueue (line 11) | class PriorityQueue<T>
method PriorityQueue (line 21) | public PriorityQueue() { this.buffer = new ArrayList<T>(); }
method PriorityQueue (line 22) | public PriorityQueue(int capacity) { this.buffer = new ArrayList<T>(ca...
method PushHeap (line 31) | static void PushHeap(ArrayList<T> array, T elem)
method PopHeap (line 51) | static void PopHeap(ArrayList<T> array)
method Push (line 76) | public void Push(T elem)
method Pop (line 89) | public void Pop()
FILE: Chapters/Algorithm/Collections/Queue.cs
class Queue (line 11) | class Queue<T>
method Queue (line 20) | public Queue() { this.buffer = new CircularBuffer<T>(); }
method Queue (line 21) | public Queue(int capacity) { this.buffer = new CircularBuffer<T>(capac...
method Push (line 33) | public void Push(T elem)
method Pop (line 47) | public void Pop()
FILE: Chapters/Algorithm/Collections/Set.cs
type ISet (line 11) | interface ISet<T> : IEnumerable<T>
method Insert (line 13) | void Insert(T elem);
method Erase (line 14) | void Erase(T elem);
method Contains (line 15) | bool Contains(T elem);
FILE: Chapters/Algorithm/Collections/SortedArray.cs
class SortedArray (line 14) | class SortedArray<T> : ISet<T>
method SortedArray (line 24) | public SortedArray() : this(256) { }
method SortedArray (line 26) | public SortedArray(int capacity)
method Insert (line 38) | public void Insert(T elem)
method IndexOf (line 70) | public int IndexOf(T elem)
method Contains (line 96) | public bool Contains(T elem)
method Find (line 106) | public T Find(T elem)
method Erase (line 118) | public void Erase(T elem)
method GetEnumerator (line 128) | public IEnumerator<T> GetEnumerator()
method GetEnumerator (line 134) | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnume...
FILE: Chapters/Algorithm/Collections/Stack.cs
class Stack (line 11) | class Stack<T>
method Stack (line 20) | public Stack() { this.buffer = new ArrayList<T>(); }
method Stack (line 21) | public Stack(int capacity) { this.buffer = new ArrayList<T>(capacity); }
method Push (line 30) | public void Push(T elem)
method Pop (line 43) | public void Pop()
FILE: Chapters/Algorithm/Program.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main(string[] args)
FILE: Chapters/Algorithm/Sort/BubbleSort.cs
class Sort (line 5) | partial class Sort
method BubbleSort (line 11) | public static void BubbleSort<T>(T[] a)
FILE: Chapters/Algorithm/Sort/BucketSort.cs
class Sort (line 5) | partial class Sort
method BucketSort (line 12) | public static void BucketSort(int[] a, int max)
method BucketSort (line 32) | public static void BucketSort<T>(KeyValuePair<int, T>[] a, int max)
FILE: Chapters/Algorithm/Sort/HeapSort.cs
class Sort (line 5) | partial class Sort
method HeapSort (line 11) | public static void HeapSort<T>(T[] a)
method MakeHeap (line 27) | static void MakeHeap<T>(T[] a, int n)
method PopHeap (line 44) | static T PopHeap<T>(T[] a, int n)
FILE: Chapters/Algorithm/Sort/InsertSort.cs
class Sort (line 5) | partial class Sort
method InsertSort (line 11) | public static void InsertSort<T>(T[] a)
method InsertSort (line 28) | static void InsertSort<T>(T[] a, int first, int last)
FILE: Chapters/Algorithm/Sort/MergeSort.cs
class Sort (line 5) | partial class Sort
method MergeSort (line 11) | public static void MergeSort<T>(T[] a)
method MergeSort (line 31) | static void MergeSort<T>(T[] a, int begin, int end, T[] work)
method Merge (line 55) | static void Merge<T>(T[] a, int begin, int mid, int end, T[] work)
FILE: Chapters/Algorithm/Sort/QuickSort.cs
class Sort (line 5) | partial class Sort
method QuickSort (line 11) | public static void QuickSort<T>(T[] a)
method QuickSort (line 29) | static void QuickSort<T>(T[] a, int first, int last)
method Median (line 67) | static T Median<T>(T a, T b, T c)
FILE: Chapters/Algorithm/Sort/RadixSort.cs
class Sort (line 9) | partial class Sort
method RadixSort10 (line 18) | public static void RadixSort10(int[] a)
method RadixSort (line 50) | public static void RadixSort(int[] a)
FILE: Chapters/Algorithm/Sort/SelectSort.cs
class Sort (line 5) | partial class Sort
method SelectSort (line 11) | public static void SelectSort<T>(T[] a)
FILE: Chapters/Algorithm/Sort/ShellSort.cs
class Sort (line 5) | partial class Sort
method ShellSort (line 11) | public static void ShellSort<T>(T[] a)
FILE: Chapters/Algorithm/Sort/Sort.cs
class Sort (line 5) | partial class Sort
method Swap (line 7) | private static void Swap<T>(ref T t1, ref T t2) where T : IComparable<T>
FILE: Chapters/Async/Lock/Monitor.cs
class Program (line 10) | class Program
method Main (line 12) | static void Main()
FILE: Chapters/Async/Lock/Program.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main(string[] args)
FILE: Chapters/Async/TaskLike/Program.cs
class Program (line 6) | class Program
method XAsync (line 8) | static async ValueTask<int> XAsync(Random r)
method Y (line 30) | static async ValueTask<int> Y() => await CachedX;
method Z (line 31) | static async ValueTask<int> Z() => await Y();
FILE: Chapters/Async/TaskLike/TaskLike.cs
type TaskLike (line 4) | [AsyncMethodBuilder(typeof(AsyncValueTaskMethodBuilder<>))]
type AsyncValueTaskMethodBuilder (line 9) | struct AsyncValueTaskMethodBuilder<TResult>
method Create (line 11) | public static AsyncValueTaskMethodBuilder<TResult> Create() => default...
method Start (line 12) | public void Start<TStateMachine>(ref TStateMachine stateMachine) where...
method SetStateMachine (line 13) | public void SetStateMachine(IAsyncStateMachine stateMachine) { }
method SetResult (line 14) | public void SetResult(TResult result) { }
method SetException (line 15) | public void SetException(Exception exception) { }
method AwaitOnCompleted (line 17) | public void AwaitOnCompleted<TAwaiter, TStateMachine>(ref TAwaiter awa...
method AwaitUnsafeOnCompleted (line 21) | public void AwaitUnsafeOnCompleted<TAwaiter, TStateMachine>(ref TAwait...
class AsyncMethodBuilderAttribute (line 30) | sealed class AsyncMethodBuilderAttribute : Attribute
method AsyncMethodBuilderAttribute (line 32) | public AsyncMethodBuilderAttribute(Type builderType)
FILE: Chapters/Data/Deconstruction/DeconstructMethod.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
FILE: Chapters/Data/Deconstruction/Evaluation.cs
class Program (line 7) | class Program
method Main (line 9) | static void Main()
method FailureSwap (line 20) | private static void FailureSwap()
method TupleSwap (line 37) | private static void TupleSwap()
method TupleSwapEval (line 49) | private static void TupleSwapEval()
method SideEffect (line 64) | private static void SideEffect()
method SideEffectEval (line 76) | private static void SideEffectEval()
FILE: Chapters/Data/Deconstruction/Extensions.cs
class Extensions (line 6) | static class Extensions
method Deconstruct (line 8) | public static void Deconstruct<T, U>(this KeyValuePair<T, U> pair, out...
method Deconstruct (line 14) | public static void Deconstruct<T1, T2>(this Tuple<T1, T2> x, out T1 it...
FILE: Chapters/Data/Deconstruction/Program.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main(string[] args)
method Conversion (line 21) | private static void Conversion()
method DeconstractionAssingment (line 36) | private static void DeconstractionAssingment(int[] items)
method DeconstractionAssingment (line 58) | private static void DeconstractionAssingment()
method Mod (line 74) | static ref T Mod<T>(T[] array, int index) => ref array[index % array.L...
method DeconstractionDeclaration (line 76) | private static void DeconstractionDeclaration(int[] items)
method ManuallyDeconstructed (line 105) | private static void ManuallyDeconstructed()
method MeaninglessVariable (line 117) | private static void MeaninglessVariable()
method Tally (line 124) | static (int count, int sum) Tally(IEnumerable<int> items)
method Statements (line 137) | static void Statements()
FILE: Chapters/Data/Deconstruction/Summary.cs
class Program (line 6) | class Program
method Tally (line 9) | static (int count, int sum) Tally(IEnumerable<int> items)
method Main (line 22) | static void Main()
method Main (line 37) | static void Main()
class Program (line 35) | class Program
method Tally (line 9) | static (int count, int sum) Tally(IEnumerable<int> items)
method Main (line 22) | static void Main()
method Main (line 37) | static void Main()
class Extensions (line 43) | static class Extensions
method Deconstruct (line 45) | public static void Deconstruct<T, U>(this KeyValuePair<T, U> pair, out...
FILE: Chapters/Data/Deconstruction/Vector2D.cs
type Radian (line 5) | struct Radian
method Radian (line 8) | public Radian(double value) => Value = value;
type Vector2D (line 11) | struct Vector2D
method Vector2D (line 17) | public Vector2D(double x, double y) => (X, Y) = (x, y);
method Vector2D (line 18) | public Vector2D(double radius, Radian angle)
method Deconstruct (line 23) | public void Deconstruct(out double x, out double y) => (x, y) = (X, Y);
method Deconstruct (line 25) | public void Deconstruct(out double radius, out Radian angle)
class Program (line 30) | class Program
method Main (line 32) | static void Main()
FILE: Chapters/Data/Deconstruction/Vector3D.cs
type Vector3D (line 5) | struct Vector3D
method Vector3D (line 10) | public Vector3D(double x, double y, double z) => (X, Y, Z) = (x, y, z);
method Deconstruct (line 13) | public void Deconstruct(out double x, out double y, out double z) => (...
method Deconstruct (line 14) | public void Deconstruct(out double first, out Vector2D rest) => (first...
class Program (line 17) | class Program
method Main (line 19) | static void Main()
FILE: Chapters/Data/Discards/Program.cs
class Program (line 4) | class Program
method Main (line 6) | static void Main()
method Deconstruct0 (line 12) | static void Deconstruct0()
method DivRem (line 24) | static (int quotient, int remainder) DivRem(int dividend, int divisor)
method Deconstruct (line 27) | static void Deconstruct()
method Deconstruct1 (line 38) | static void Deconstruct1()
method Deconstruct2 (line 48) | static void Deconstruct2()
method TypeSwitch (line 66) | static int TypeSwitch(object obj)
method CanParse (line 85) | static bool CanParse(string s) => int.TryParse(s, out _);
method Subscribe (line 88) | static void Subscribe(INotifyPropertyChanged source)
method Subscribe (line 94) | static void Subscribe(INotifyPropertyChanged source)
FILE: Chapters/Data/OutVar/Point.cs
type Point (line 5) | struct Point
method GetCoordinate (line 10) | public void GetCoordinate(out int x, out int y)
class Program (line 17) | class Program
method Main (line 19) | static void Main()
FILE: Chapters/Data/OutVar/Program.cs
class Program (line 3) | class Program
method Main (line 5) | static void Main(string[] args)
class csharp6 (line 9) | class csharp6
method ParseOrDefault (line 11) | static int? ParseOrDefault(string s)
class csharp7int (line 18) | class csharp7int
method ParseOrDefault (line 20) | static int? ParseOrDefault(string s)
class csharp7var (line 26) | class csharp7var
method ParseOrDefault (line 28) | static int? ParseOrDefault(string s)
class csharp7expression (line 34) | class csharp7expression
method ParseOrDefault (line 36) | static int? ParseOrDefault(string s) => int.TryParse(s, out var x) ?...
FILE: Chapters/Data/Patterns/CallOnce.cs
class X (line 7) | class X
method X (line 10) | public X(int value) => Value = value;
method Deconstruct (line 11) | public void Deconstruct(out int value) => value = Value;
class Program (line 14) | class Program
method M (line 16) | static int M(X x)
FILE: Chapters/Data/Patterns/ConstantPattern.cs
class Program (line 7) | class Program
method Main (line 9) | static void Main()
method M (line 13) | static int M(object x)
method M (line 25) | static int M(object x, int comparand)
FILE: Chapters/Data/Patterns/DeconstructRemoval.cs
class X (line 5) | class X
method Deconstruct (line 8) | public void Deconstruct() => Console.WriteLine("Deconstruct()");
method Deconstruct (line 9) | public void Deconstruct(out int a)
method Deconstruct (line 14) | public void Deconstruct(out int a, out int b)
class Program (line 21) | class Program
method Main (line 23) | static void Main()
FILE: Chapters/Data/Patterns/DiscardPattern.cs
class Program (line 3) | class Program
method Main (line 5) | static void Main()
method M (line 10) | static int M(object x)
class _Type (line 24) | class _Type
class _ (line 26) | class _ { }
method M (line 28) | static void M(object x)
class _Constant (line 34) | class _Constant
method M (line 38) | static void M(object x)
FILE: Chapters/Data/Patterns/Expressions/Node.cs
class Node (line 3) | public abstract class Node
class Var (line 11) | public class Var : Node { public override string ToString() => "x"; }
method ToString (line 11) | public override string ToString() => "x";
class Const (line 13) | public class Const : Node
method Const (line 16) | public Const(int value) { Value = value; }
method Deconstruct (line 17) | public void Deconstruct(out int value) => value = Value;
method ToString (line 18) | public override string ToString() => Value.ToString();
class Add (line 21) | public class Add : Node
method Add (line 25) | public Add(Node left, Node right) => (Left, Right) = (left, right);
method Deconstruct (line 26) | public void Deconstruct(out Node left, out Node right) => (left, right...
method ToString (line 27) | public override string ToString() => $"({Left.ToString()} + {Right.ToS...
class Mul (line 30) | public class Mul : Node
method Mul (line 34) | public Mul(Node left, Node right) => (Left, Right) = (left, right);
method Deconstruct (line 35) | public void Deconstruct(out Node left, out Node right) => (left, right...
method ToString (line 36) | public override string ToString() => $"{Left.ToString()} * {Right.ToSt...
FILE: Chapters/Data/Patterns/Expressions/Program.cs
class Program (line 5) | public static class Program
method Calculate (line 7) | public static int Calculate(this Node n, int x)
method Simplify (line 17) | public static Node Simplify(this Node n)
method ClassicSimplify (line 42) | public static Node ClassicSimplify(this Node n)
method Main (line 79) | static void Main()
FILE: Chapters/Data/Patterns/Line.cs
class Line (line 3) | public class Line
method Line (line 7) | public Line(Point s, Point e) => (Start, End) = (s, e);
method Deconstruct (line 8) | public void Deconstruct(out Point s, out Point e) => (s, e) = (Start, ...
FILE: Chapters/Data/Patterns/NoOrderGarantee.cs
type Type (line 5) | enum Type { A, B }
class X (line 7) | class X
method X (line 10) | public X(Type type) => Type = type;
method Deconstruct (line 17) | public void Deconstruct(out Type t) => t = Type;
class Program (line 20) | class Program
method Main (line 22) | static void Main()
method M (line 30) | static int M(X x) => x switch
FILE: Chapters/Data/Patterns/NonNull.cs
class Program (line 3) | class Program
type LongLongNamedStruct (line 5) | struct LongLongNamedStruct { }
method M1 (line 7) | void M1(LongLongNamedStruct? x)
method M2 (line 17) | void M2(LongLongNamedStruct? x)
method M3 (line 27) | void M3(LongLongNamedStruct? x)
FILE: Chapters/Data/Patterns/Point.cs
class Point (line 3) | public class Point
method Point (line 7) | public Point(int x = 0, int y = 0) => (X, Y) = (x, y);
method Deconstruct (line 8) | public void Deconstruct(out int x, out int y) => (x, y) = (X, Y);
FILE: Chapters/Data/Patterns/PositionalPattern.cs
class Program (line 3) | class Program
method Main (line 5) | static void Main()
method M (line 27) | static int M(Point p)
method M1 (line 35) | static int M1(Point p)
method ExplicitType (line 43) | static int ExplicitType(object obj)
method MixPatterns (line 52) | static int MixPatterns(object obj)
method NamedPattern (line 58) | static int NamedPattern(Point p)
FILE: Chapters/Data/Patterns/PropertyPattern.cs
class Program (line 3) | class Program
method Main (line 5) | public static void Main()
method M (line 16) | static int M(Point p)
method M1 (line 24) | static int M1(Point p)
method M (line 33) | static int M(object obj)
FILE: Chapters/Data/Patterns/PropertyPatternField.cs
class X (line 5) | class X
class Program (line 20) | class Program
method Main (line 22) | public static void Main()
FILE: Chapters/Data/Patterns/RecursivePattern.cs
class Program (line 3) | class Program
method M (line 5) | static int M(object obj)
FILE: Chapters/Data/Patterns/Tuple.cs
class X (line 5) | class X : ITuple
method Deconstruct (line 9) | public void Deconstruct(out int a, out int b) => (a, b) = (0, 1);
class Source (line 12) | class Source
method TupleSyntax (line 14) | public bool TupleSyntax((int a, int b) x) => x is (1, 2);
method Deconstruct (line 15) | public bool Deconstruct(X x) => x is (1, 2);
method Object (line 16) | public bool Object(object x) => x is (1, 2);
class Result (line 19) | class Result
method TupleSyntax (line 22) | public bool TupleSyntax((int a, int b) x)
method Deconstruct (line 28) | public bool Deconstruct(X x)
method Object (line 36) | public bool Object(object x)
FILE: Chapters/Data/Patterns/TupleSwitch.cs
class TupleSwitch (line 7) | class TupleSwitch
method Compare (line 9) | int Compare(int? a, int? b)
FILE: Chapters/Data/Patterns/TypePattern.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
method M (line 14) | static void M(object x)
method M1 (line 20) | static void M1(object x)
FILE: Chapters/Data/Patterns/TypePatternNull.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
method M (line 13) | static void M(string x)
method M (line 18) | static void M<T>(T x)
FILE: Chapters/Data/Patterns/UserDefinedOperator.cs
class X (line 5) | class X
class Program (line 13) | class Program
method Main (line 15) | static void Main()
FILE: Chapters/Data/Patterns/VarPattern.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
method DeclarationExpression (line 13) | static void DeclarationExpression()
method MatchNull (line 21) | static void MatchNull()
method M (line 28) | static int M(object x)
FILE: Chapters/Data/Patterns/ZeroOneTuple.cs
class X (line 5) | class X
method Deconstruct (line 7) | public void Deconstruct() { }
method Deconstruct (line 8) | public void Deconstruct(out int a) => a = 0;
class Program (line 11) | class Program
method Main (line 13) | static void Main() => M(new X());
method M (line 15) | static void M(X x)
FILE: Chapters/Data/Tuples/ErroneousSamples.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
method Main (line 29) | static void Main()
method M (line 36) | static void M(object obj)
method Main (line 51) | static void Main()
method M (line 58) | static void M(object obj)
class Program (line 27) | class Program
method Main (line 8) | static void Main()
method Main (line 29) | static void Main()
method M (line 36) | static void M(object obj)
method Main (line 51) | static void Main()
method M (line 58) | static void M(object obj)
class Program (line 49) | class Program
method Main (line 8) | static void Main()
method Main (line 29) | static void Main()
method M (line 36) | static void M(object obj)
method Main (line 51) | static void Main()
method M (line 58) | static void M(object obj)
FILE: Chapters/Data/Tuples/Implementation.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main()
method LocalTuple (line 20) | private static void LocalTuple()
method LocalTupleImpl (line 28) | private static void LocalTupleImpl()
method Dynamic (line 37) | private static void Dynamic()
method Sum (line 50) | private static dynamic Sum(dynamic d) => d.x + d.y;
method F (line 52) | public (int x, int y) F((int a, int b) t) => (t.a + t.b, t.a - t.b);
method F (line 55) | [return: TupleElementNames(new[] { "x", "y" })]
method LongTuple (line 60) | private static void LongTuple()
method LongTupleImple (line 66) | private static void LongTupleImple()
method Onetuple (line 73) | private static void Onetuple()
method F0 (line 85) | async Task F0() { }
method F1 (line 86) | async Task<int> F1() => 1;
method F2 (line 87) | async Task<(int x1, int x2)> F2() => (1, 2);
method F3 (line 88) | async Task<(int x1, int x2, int x3)> F3() => (1, 2, 3);
method F0 (line 91) | async Task<()> F0() { }
method F1 (line 92) | async Task<(int x1)> F1() => (1);
method F2 (line 93) | async Task<(int x1, int x2)> F2() => (1, 2);
method F3 (line 94) | async Task<(int x1, int x2, int x3)> F3() => (1, 2, 3);
FILE: Chapters/Data/Tuples/OutParams.cs
class Out6 (line 12) | class Out6
method F (line 14) | static void F(Point p)
method Deconstruct (line 26) | static void Deconstruct(Point p, out int x, out int y)
class Out7 (line 37) | class Out7
method F (line 39) | static void F(Point p)
method Deconstruct (line 50) | static void Deconstruct(Point p, out int x, out int y) => (x, y) = (p....
class Tuple (line 56) | class Tuple
method F (line 58) | static async Task F(Point p)
method Deconstruct (line 73) | static (int x, int y) Deconstruct(Point p) => (p.X, p.Y);
method DeconstructAsync (line 74) | static async Task<(int x, int y)> DeconstructAsync(Point p) => (p.X, p...
type Point (line 77) | struct Point
class ButStillOut (line 86) | class ButStillOut
method TryPattern (line 89) | static void TryPattern()
method TuplePattern (line 96) | static void TuplePattern()
method Parse (line 103) | static (bool success, int value) Parse(string s) => int.TryParse(s, ou...
method NullCheckPattern (line 106) | static void NullCheckPattern()
method ParseOrDefault (line 112) | static int? ParseOrDefault(string s) => int.TryParse(s, out var x) ? x...
method F (line 115) | static void F(out int x, out int y) => (x, y) = (1, 2);
method F (line 116) | static void F(out int id, out string name) => (id, name) = (1, "abc");
method F (line 120) | static (int x, int y) F() => (1, 2);
method F (line 122) | static (int id, string name) F() => (1, "abc");
FILE: Chapters/Data/Tuples/Overload.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main()
method F (line 17) | void F((int x, int y) t) { }
method F (line 18) | void F((int x, string y) t) { }
method G (line 22) | void G((int x, int y) t) { }
method G (line 23) | void G((int a, int b) t) { }
FILE: Chapters/Data/Tuples/Program.cs
class Sample (line 9) | class Sample
method GetValue (line 12) | public (int x, int y) GetValue() => value;
method Sample (line 14) | public Sample() { }
method Sample (line 15) | public Sample(int x, int y)
class Program (line 21) | class Program
method Main (line 23) | static void Main(string[] args)
method LocalDenotation (line 31) | private static void LocalDenotation()
method TypeInference (line 37) | private static void TypeInference()
method New (line 45) | static void New()
method Deconstruct (line 55) | static void Deconstruct()
method Literal (line 69) | static void Literal()
method MemberTypeInference (line 78) | private static void MemberTypeInference()
method MemberAccess (line 89) | static void MemberAccess()
method Ref (line 107) | static void Ref()
method Swap (line 115) | static void Swap<T>(ref T x, ref T y)
method DifferentNames (line 122) | static void DifferentNames()
method DifferentTypes (line 133) | static void DifferentTypes()
method NestedTuples (line 153) | static void NestedTuples()
method TypeParameters (line 165) | static void TypeParameters()
method AnonymousMember (line 176) | static void AnonymousMember()
FILE: Chapters/Data/Tuples/Summary.cs
class Program (line 6) | class Program
method Tally (line 9) | static (int count, int sum) Tally(IEnumerable<int> items)
method Main (line 22) | static void Main()
FILE: Chapters/Data/Tuples/ValueTuple.cs
type ValueTuple (line 7) | [StructLayout(LayoutKind.Auto)]
method ValueTuple (line 14) | public ValueTuple(T1 item1, T2 item2)
FILE: Chapters/Data/Tuples/ZipSample.cs
class Program (line 7) | class Program
method Main (line 9) | static void Main()
class TupelExtensions (line 22) | static class TupelExtensions
method Zip (line 25) | public static IEnumerable<(T1 x1, T2 x2)> Zip<T1, T2>(this (IEnumerabl...
FILE: Chapters/Data/TypeSwitch/Expressions/Calculate.switcha.cs
class NodeExtensions (line 5) | public static partial class NodeExtensions
method Calculate (line 7) | public static int Calculate(this Node n, int x)
FILE: Chapters/Data/TypeSwitch/Expressions/Calculate.vritual.cs
class Node (line 3) | abstract partial class Node
method Calculate (line 5) | public abstract int Calculate(int x);
class Var (line 8) | partial class Var
method Calculate (line 10) | public override int Calculate(int x) => x;
class Const (line 13) | partial class Const
method Calculate (line 15) | public override int Calculate(int x) => Value;
class Add (line 18) | partial class Add
method Calculate (line 20) | public override int Calculate(int x) => Left.Calculate(x) + Right.Calc...
class Mul (line 23) | partial class Mul
method Calculate (line 25) | public override int Calculate(int x) => Left.Calculate(x) * Right.Calc...
FILE: Chapters/Data/TypeSwitch/Expressions/Node.cs
class Node (line 3) | public partial class Node { }
class Var (line 5) | public partial class Var : Node { }
class Const (line 7) | public partial class Const : Node
method Const (line 10) | public Const(int value) { Value = value; }
class Add (line 13) | public partial class Add : Node
method Add (line 17) | public Add(Node left, Node right)
class Mul (line 24) | public partial class Mul : Node
method Mul (line 28) | public Mul(Node left, Node right)
FILE: Chapters/Data/TypeSwitch/Expressions/NodeBuilder.cs
class Node (line 9) | partial class Node
FILE: Chapters/Data/TypeSwitch/Expressions/Program.cs
class Program (line 10) | class Program
method Main (line 12) | static void Main()
method WriteResults (line 49) | private static void WriteResults(Node[] expressions, int[] values)
FILE: Chapters/Data/TypeSwitch/Expressions/ToString.cs
class NodeExtensions (line 5) | public static partial class NodeExtensions
method ToCsharpCode (line 7) | public static string ToCsharpCode(this Node n)
FILE: Chapters/Data/TypeSwitch/IsSample.cs
class IsSample (line 9) | class IsSample
method 型判定のみ (line 11) | static void 型判定のみ(object obj)
method 型変換もしたい (line 17) | static void 型変換もしたい(object obj)
method TypeSwitch (line 37) | static void TypeSwitch(object obj)
method NullCheck (line 46) | static void NullCheck()
method F (line 58) | static void F(string nullable)
method F (line 66) | static void F(int? x)
FILE: Chapters/Data/TypeSwitch/Program.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main(string[] args)
FILE: Chapters/Data/TypeSwitch/Summary.cs
class Program (line 5) | class Program
method F (line 7) | static void F(object obj)
FILE: Chapters/Data/TypeSwitch/SwitchPerformance.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
method TypeSwitch (line 34) | static int TypeSwitch(object x)
FILE: Chapters/Data/TypeSwitch/SwitchSample.cs
class SwitchSample (line 9) | class SwitchSample
method F (line 11) | static void F(object obj)
method TypeSwitch (line 35) | static void TypeSwitch(object obj)
method 値だけでswitch (line 51) | static string 値だけでswitch(int n)
method ジャンプテーブル化 (line 69) | static string ジャンプテーブル化(int n)
FILE: Chapters/Data/TypeSwitch/TypeSwitchPerformance.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
method TypeSwitch (line 34) | static int TypeSwitch(object x)
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmetic/FluentExtensions.cs
class FluentExtensions (line 3) | public static class FluentExtensions
method Add (line 5) | public static int Add(this int x, int y) => x + y;
method Sub (line 6) | public static int Sub(this int x, int y) => x - y;
method Mul (line 7) | public static int Mul(this int x, int y) => x * y;
method Div (line 8) | public static int Div(this int x, int y) => x / y;
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/DivByZeroUnitTest.cs
class DivByZeroUnitTest (line 10) | [TestClass]
method TestMethod1 (line 13) | [TestMethod]
method TestMethod2 (line 32) | [TestMethod]
method GetCSharpCodeFixProvider (line 61) | protected override CodeFixProvider GetCSharpCodeFixProvider() => null;
method GetCSharpDiagnosticAnalyzer (line 63) | protected override DiagnosticAnalyzer GetCSharpDiagnosticAnalyzer() =>...
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Helpers/CodeFixVerifier.Helper.cs
class CodeFixVerifier (line 15) | public abstract partial class CodeFixVerifier : DiagnosticVerifier
method ApplyFix (line 24) | private static Document ApplyFix(Document document, CodeAction codeAct...
method GetNewDiagnostics (line 39) | private static IEnumerable<Diagnostic> GetNewDiagnostics(IEnumerable<D...
method GetCompilerDiagnostics (line 66) | private static IEnumerable<Diagnostic> GetCompilerDiagnostics(Document...
method GetStringFromDocument (line 73) | private static string GetStringFromDocument(Document document)
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Helpers/DiagnosticResult.cs
type DiagnosticResultLocation (line 9) | public struct DiagnosticResultLocation
method DiagnosticResultLocation (line 11) | public DiagnosticResultLocation(string path, int line, int column)
type DiagnosticResult (line 35) | public struct DiagnosticResult
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Helpers/DiagnosticVerifier.Helper.cs
class DiagnosticVerifier (line 17) | public abstract partial class DiagnosticVerifier
method GetSortedDiagnostics (line 41) | private static Diagnostic[] GetSortedDiagnostics(string[] sources, str...
method GetSortedDiagnosticsFromDocuments (line 51) | protected static Diagnostic[] GetSortedDiagnosticsFromDocuments(Diagno...
method SortDiagnostics (line 95) | private static Diagnostic[] SortDiagnostics(IEnumerable<Diagnostic> di...
method GetDocuments (line 106) | private static Document[] GetDocuments(string[] sources, string language)
method CreateDocument (line 135) | protected static Document CreateDocument(string source, string languag...
method CreateProject (line 143) | private static Project CreateProject(string[] sources, string language...
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/LiteralUnitTest.cs
class LiteralUnitTest (line 10) | [TestClass]
method TestMethod1 (line 13) | [TestMethod]
method TestMethod2 (line 56) | [TestMethod]
method GetCSharpCodeFixProvider (line 75) | protected override CodeFixProvider GetCSharpCodeFixProvider() => new L...
method GetCSharpDiagnosticAnalyzer (line 77) | protected override DiagnosticAnalyzer GetCSharpDiagnosticAnalyzer() =>...
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Verifiers/CodeFixVerifier.cs
class CodeFixVerifier (line 17) | public abstract partial class CodeFixVerifier : DiagnosticVerifier
method GetCSharpCodeFixProvider (line 23) | protected virtual CodeFixProvider GetCSharpCodeFixProvider() => null;
method GetBasicCodeFixProvider (line 29) | protected virtual CodeFixProvider GetBasicCodeFixProvider() => null;
method VerifyCSharpFix (line 38) | protected void VerifyCSharpFix(string oldSource, string newSource, int...
method VerifyBasicFix (line 50) | protected void VerifyBasicFix(string oldSource, string newSource, int?...
method VerifyFix (line 68) | private void VerifyFix(string language, DiagnosticAnalyzer analyzer, C...
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Verifiers/DiagnosticVerifier.cs
class DiagnosticVerifier (line 14) | public abstract partial class DiagnosticVerifier
method GetCSharpDiagnosticAnalyzer (line 20) | protected virtual DiagnosticAnalyzer GetCSharpDiagnosticAnalyzer() => ...
method GetBasicDiagnosticAnalyzer (line 25) | protected virtual DiagnosticAnalyzer GetBasicDiagnosticAnalyzer() => n...
method VerifyCSharpDiagnostic (line 36) | protected void VerifyCSharpDiagnostic(string source, params Diagnostic...
method VerifyBasicDiagnostic (line 47) | protected void VerifyBasicDiagnostic(string source, params DiagnosticR...
method VerifyCSharpDiagnostic (line 58) | protected void VerifyCSharpDiagnostic(string[] sources, params Diagnos...
method VerifyBasicDiagnostic (line 69) | protected void VerifyBasicDiagnostic(string[] sources, params Diagnost...
method VerifyDiagnostics (line 82) | private void VerifyDiagnostics(string[] sources, string language, Diag...
method VerifyDiagnosticResults (line 98) | private static void VerifyDiagnosticResults(IEnumerable<Diagnostic> ac...
method VerifyDiagnosticLocation (line 174) | private static void VerifyDiagnosticLocation(DiagnosticAnalyzer analyz...
method FormatDiagnostics (line 215) | private static string FormatDiagnostics(DiagnosticAnalyzer analyzer, p...
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/DivByZero/DivByZeroAnalyzer.cs
class DivByZeroAnalyzer (line 10) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
method Initialize (line 22) | public override void Initialize(AnalysisContext context)
method AnalyzeMethod (line 27) | private void AnalyzeMethod(SyntaxNodeAnalysisContext context)
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Literal/LiteralAnalyzer.cs
class LiteralAnalyzer (line 10) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
method Initialize (line 22) | public override void Initialize(AnalysisContext context)
method AnalyzeMethod (line 27) | private void AnalyzeMethod(SyntaxNodeAnalysisContext context)
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Literal/LiteralFix.cs
class LiteralFix (line 18) | [ExportCodeFixProvider(LanguageNames.CSharp, Name = nameof(LiteralFix)),...
method GetFixAllProvider (line 23) | public sealed override FixAllProvider GetFixAllProvider() => WellKnown...
method RegisterCodeFixesAsync (line 25) | public sealed override async Task RegisterCodeFixesAsync(CodeFixContex...
method ChangeToOneLiteral (line 39) | private async Task<Document> ChangeToOneLiteral(InvocationExpressionSy...
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Resources.Designer.cs
class Resources (line 23) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 32) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/SyntaxExtensions.cs
class SyntaxExtensions (line 13) | internal static class SyntaxExtensions
method GetFluentExtensionsMember (line 15) | public static ISymbol GetFluentExtensionsMember(this InvocationExpress...
method GetLiteralArgument (line 29) | public static LiteralExpressionSyntax GetLiteralArgument(this Invocati...
method GetLiteralExpression (line 42) | public static LiteralExpressionSyntax GetLiteralExpression(this Invoca...
method GetMemberName (line 53) | public static string GetMemberName(this InvocationExpressionSyntax expr)
FILE: Chapters/DevEnv/ConsoleApplication1/ConsoleApplication1/Logic.cs
class Logic (line 3) | class Logic
method Filter (line 5) | public int Filter(int x) => x * x;
FILE: Chapters/DevEnv/ConsoleApplication1/ConsoleApplication1/Program.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main(string[] args)
FILE: Chapters/DevEnv/Dependency/Game/App/App.xaml.cs
class App (line 25) | sealed partial class App : Application
method App (line 36) | public App()
method OnLaunched (line 49) | protected override void OnLaunched(LaunchActivatedEventArgs e)
method OnNavigationFailed (line 95) | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
method OnSuspending (line 107) | private void OnSuspending(object sender, SuspendingEventArgs e)
FILE: Chapters/DevEnv/Dependency/Game/App/MainPage.xaml.cs
class MainPage (line 23) | public sealed partial class MainPage : Page
method MainPage (line 25) | public MainPage()
FILE: Chapters/DevEnv/Dependency/Game/ClassLibrary/Game.cs
class Game (line 9) | public class Game
FILE: Chapters/DevEnv/Dependency/Game/ConsoleApplication/Program.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main(string[] args)
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/BundleConfig.cs
class BundleConfig (line 6) | public class BundleConfig
method RegisterBundles (line 9) | public static void RegisterBundles(BundleCollection bundles)
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/FilterConfig.cs
class FilterConfig (line 6) | public class FilterConfig
method RegisterGlobalFilters (line 8) | public static void RegisterGlobalFilters(GlobalFilterCollection filters)
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/IdentityConfig.cs
class EmailService (line 17) | public class EmailService : IIdentityMessageService
method SendAsync (line 19) | public Task SendAsync(IdentityMessage message)
class SmsService (line 26) | public class SmsService : IIdentityMessageService
method SendAsync (line 28) | public Task SendAsync(IdentityMessage message)
class ApplicationUserManager (line 36) | public class ApplicationUserManager : UserManager<ApplicationUser>
method ApplicationUserManager (line 38) | public ApplicationUserManager(IUserStore<ApplicationUser> store)
method Create (line 43) | public static ApplicationUserManager Create(IdentityFactoryOptions<App...
class ApplicationSignInManager (line 92) | public class ApplicationSignInManager : SignInManager<ApplicationUser, s...
method ApplicationSignInManager (line 94) | public ApplicationSignInManager(ApplicationUserManager userManager, IA...
method CreateUserIdentityAsync (line 99) | public override Task<ClaimsIdentity> CreateUserIdentityAsync(Applicati...
method Create (line 104) | public static ApplicationSignInManager Create(IdentityFactoryOptions<A...
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/RouteConfig.cs
class RouteConfig (line 10) | public class RouteConfig
method RegisterRoutes (line 12) | public static void RegisterRoutes(RouteCollection routes)
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/Startup.Auth.cs
class Startup (line 12) | public partial class Startup
method ConfigureAuth (line 15) | public void ConfigureAuth(IAppBuilder app)
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Controllers/AccountController.cs
class AccountController (line 15) | [Authorize]
method AccountController (line 21) | public AccountController()
method AccountController (line 25) | public AccountController(ApplicationUserManager userManager, Applicati...
method Login (line 57) | [AllowAnonymous]
method Login (line 66) | [HttpPost]
method VerifyCode (line 96) | [AllowAnonymous]
method VerifyCode (line 109) | [HttpPost]
method Register (line 139) | [AllowAnonymous]
method Register (line 147) | [HttpPost]
method ConfirmEmail (line 177) | [AllowAnonymous]
method ForgotPassword (line 190) | [AllowAnonymous]
method ForgotPassword (line 198) | [HttpPost]
method ForgotPasswordConfirmation (line 226) | [AllowAnonymous]
method ResetPassword (line 234) | [AllowAnonymous]
method ResetPassword (line 242) | [HttpPost]
method ResetPasswordConfirmation (line 268) | [AllowAnonymous]
method ExternalLogin (line 276) | [HttpPost]
method SendCode (line 287) | [AllowAnonymous]
method SendCode (line 302) | [HttpPost]
method ExternalLoginCallback (line 322) | [AllowAnonymous]
method ExternalLoginConfirmation (line 352) | [HttpPost]
method LogOff (line 390) | [HttpPost]
method ExternalLoginFailure (line 400) | [AllowAnonymous]
method Dispose (line 406) | protected override void Dispose(bool disposing)
method AddErrors (line 438) | private void AddErrors(IdentityResult result)
method RedirectToLocal (line 446) | private ActionResult RedirectToLocal(string returnUrl)
class ChallengeResult (line 455) | internal class ChallengeResult : HttpUnauthorizedResult
method ChallengeResult (line 457) | public ChallengeResult(string provider, string redirectUri)
method ChallengeResult (line 462) | public ChallengeResult(string provider, string redirectUri, string u...
method ExecuteResult (line 473) | public override void ExecuteResult(ControllerContext context)
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Controllers/HomeController.cs
class HomeController (line 9) | public class HomeController : Controller
method Index (line 11) | public ActionResult Index()
method About (line 16) | public ActionResult About()
method Contact (line 23) | public ActionResult Contact()
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Controllers/ManageController.cs
class ManageController (line 13) | [Authorize]
method ManageController (line 19) | public ManageController()
method ManageController (line 23) | public ManageController(ApplicationUserManager userManager, Applicatio...
method Index (line 55) | public async Task<ActionResult> Index(ManageMessageId? message)
method RemoveLogin (line 80) | [HttpPost]
method AddPhoneNumber (line 104) | public ActionResult AddPhoneNumber()
method AddPhoneNumber (line 111) | [HttpPost]
method EnableTwoFactorAuthentication (line 135) | [HttpPost]
method DisableTwoFactorAuthentication (line 150) | [HttpPost]
method VerifyPhoneNumber (line 165) | public async Task<ActionResult> VerifyPhoneNumber(string phoneNumber)
method VerifyPhoneNumber (line 174) | [HttpPost]
method RemovePhoneNumber (line 199) | public async Task<ActionResult> RemovePhoneNumber()
method ChangePassword (line 216) | public ActionResult ChangePassword()
method ChangePassword (line 223) | [HttpPost]
method SetPassword (line 247) | public ActionResult SetPassword()
method SetPassword (line 254) | [HttpPost]
method ManageLogins (line 279) | public async Task<ActionResult> ManageLogins(ManageMessageId? message)
method LinkLogin (line 302) | [HttpPost]
method LinkLoginCallback (line 312) | public async Task<ActionResult> LinkLoginCallback()
method Dispose (line 323) | protected override void Dispose(bool disposing)
method AddErrors (line 346) | private void AddErrors(IdentityResult result)
method HasPassword (line 354) | private bool HasPassword()
method HasPhoneNumber (line 364) | private bool HasPhoneNumber()
type ManageMessageId (line 374) | public enum ManageMessageId
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Global.asax.cs
class MvcApplication (line 11) | public class MvcApplication : System.Web.HttpApplication
method Application_Start (line 13) | protected void Application_Start()
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Models/AccountViewModels.cs
class ExternalLoginConfirmationViewModel (line 6) | public class ExternalLoginConfirmationViewModel
class ExternalLoginListViewModel (line 13) | public class ExternalLoginListViewModel
class SendCodeViewModel (line 18) | public class SendCodeViewModel
class VerifyCodeViewModel (line 26) | public class VerifyCodeViewModel
class ForgotViewModel (line 42) | public class ForgotViewModel
class LoginViewModel (line 49) | public class LoginViewModel
class RegisterViewModel (line 65) | public class RegisterViewModel
class ResetPasswordViewModel (line 84) | public class ResetPasswordViewModel
class ForgotPasswordViewModel (line 105) | public class ForgotPasswordViewModel
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Models/IdentityModels.cs
class ApplicationUser (line 10) | public class ApplicationUser : IdentityUser
method GenerateUserIdentityAsync (line 12) | public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManage...
class ApplicationDbContext (line 21) | public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
method ApplicationDbContext (line 23) | public ApplicationDbContext()
method Create (line 28) | public static ApplicationDbContext Create()
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Models/ManageViewModels.cs
class IndexViewModel (line 8) | public class IndexViewModel
class ManageLoginsViewModel (line 17) | public class ManageLoginsViewModel
class FactorViewModel (line 23) | public class FactorViewModel
class SetPasswordViewModel (line 28) | public class SetPasswordViewModel
class ChangePasswordViewModel (line 42) | public class ChangePasswordViewModel
class AddPhoneNumberViewModel (line 61) | public class AddPhoneNumberViewModel
class VerifyPhoneNumberViewModel (line 69) | public class VerifyPhoneNumberViewModel
class ConfigureTwoFactorViewModel (line 81) | public class ConfigureTwoFactorViewModel
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/bootstrap.js
function transitionEnd (line 48) | function transitionEnd() {
function removeElement (line 133) | function removeElement() {
function clearMenus (line 779) | function clearMenus() {
function getParent (line 790) | function getParent($this) {
function complete (line 1351) | function complete() {
function ScrollSpy (line 1619) | function ScrollSpy(element, options) {
function next (line 1820) | function next() {
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery-1.10.2.js
function isArraylike (line 997) | function isArraylike( obj ) {
function Sizzle (line 1197) | function Sizzle( selector, context, results, seed ) {
function createCache (line 1312) | function createCache() {
function markFunction (line 1330) | function markFunction( fn ) {
function assert (line 1339) | function assert( fn ) {
function addHandle (line 1361) | function addHandle( attrs, handler ) {
function siblingCheck (line 1376) | function siblingCheck( a, b ) {
function createInputPseudo (line 1403) | function createInputPseudo( type ) {
function createButtonPseudo (line 1414) | function createButtonPseudo( type ) {
function createPositionalPseudo (line 1425) | function createPositionalPseudo( fn ) {
function setFilters (line 2408) | function setFilters() {}
function tokenize (line 2412) | function tokenize( selector, parseOnly ) {
function toSelector (line 2479) | function toSelector( tokens ) {
function addCombinator (line 2489) | function addCombinator( matcher, combinator, base ) {
function elementMatcher (line 2539) | function elementMatcher( matchers ) {
function condense (line 2553) | function condense( unmatched, map, filter, context, xml ) {
function setMatcher (line 2574) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
function matcherFromTokens (line 2667) | function matcherFromTokens( tokens ) {
function matcherFromGroupMatchers (line 2722) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
function multipleContexts (line 2850) | function multipleContexts( selector, contexts, results ) {
function select (line 2859) | function select( selector, context, results, seed ) {
function createOptions (line 2999) | function createOptions( options ) {
function internalData (line 3582) | function internalData( elem, name, data, pvt /* Internal Use Only */ ){
function internalRemoveData (line 3671) | function internalRemoveData( elem, name, pvt ) {
function dataAttr (line 3868) | function dataAttr( elem, key, data ) {
function isEmptyDataObject (line 3900) | function isEmptyDataObject( obj ) {
function returnTrue (line 4726) | function returnTrue() {
function returnFalse (line 4730) | function returnFalse() {
function safeActiveElement (line 4734) | function safeActiveElement() {
function sibling (line 5852) | function sibling( cur, dir ) {
function winnow (line 5970) | function winnow( elements, qualifier, not ) {
function createSafeFragment (line 5998) | function createSafeFragment( document ) {
function manipulationTarget (line 6312) | function manipulationTarget( elem, content ) {
function disableScript (line 6322) | function disableScript( elem ) {
function restoreScript (line 6326) | function restoreScript( elem ) {
function setGlobalEval (line 6337) | function setGlobalEval( elems, refElements ) {
function cloneCopyEvent (line 6345) | function cloneCopyEvent( src, dest ) {
function fixCloneNodeIssues (line 6373) | function fixCloneNodeIssues( src, dest ) {
function getAll (line 6466) | function getAll( context, tag ) {
function fixDefaultChecked (line 6489) | function fixDefaultChecked( elem ) {
function vendorPropName (line 6831) | function vendorPropName( style, name ) {
function isHidden (line 6853) | function isHidden( elem, el ) {
function showHide (line 6860) | function showHide( elements, show ) {
function setPositiveNumber (line 7189) | function setPositiveNumber( elem, value, subtract ) {
function augmentWidthOrHeight (line 7197) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
function getWidthOrHeight (line 7236) | function getWidthOrHeight( elem, name, extra ) {
function css_defaultDisplay (line 7280) | function css_defaultDisplay( nodeName ) {
function actualDisplay (line 7312) | function actualDisplay( name, doc ) {
function buildParams (line 7541) | function buildParams( prefix, obj, traditional, add ) {
function addToPrefiltersOrTransports (line 7656) | function addToPrefiltersOrTransports( structure ) {
function inspectPrefiltersOrTransports (line 7688) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
function ajaxExtend (line 7715) | function ajaxExtend( target, src ) {
function done (line 8163) | function done( status, nativeStatusText, responses, headers ) {
function ajaxHandleResponses (line 8310) | function ajaxHandleResponses( s, jqXHR, responses ) {
function ajaxConvert (line 8365) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
function createStandardXHR (line 8633) | function createStandardXHR() {
function createActiveXHR (line 8639) | function createActiveXHR() {
function createFxNow (line 8885) | function createFxNow() {
function createTween (line 8892) | function createTween( value, prop, animation ) {
function Animation (line 8906) | function Animation( elem, properties, options ) {
function propFilter (line 9010) | function propFilter( props, specialEasing ) {
function defaultPrefilter (line 9077) | function defaultPrefilter( elem, props, opts ) {
function Tween (line 9202) | function Tween( elem, options, prop, end, easing ) {
function genFx (line 9426) | function genFx( type, includeWidth ) {
function getWindow (line 9722) | function getWindow( elem ) {
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery.validate-vsdoc.js
function handle (line 88) | function handle() {
function delegate (line 377) | function delegate(event) {
function handler (line 1285) | function handler(e) {
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery.validate.js
function handle (line 75) | function handle() {
function delegate (line 343) | function delegate(event) {
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery.validate.unobtrusive.js
function setValidationValues (line 28) | function setValidationValues(options, ruleName, value) {
function splitAndTrim (line 35) | function splitAndTrim(value) {
function escapeAttributeValue (line 39) | function escapeAttributeValue(value) {
function getModelPrefix (line 44) | function getModelPrefix(fieldName) {
function appendModelPrefix (line 48) | function appendModelPrefix(value, prefix) {
function onError (line 55) | function onError(error, inputElement) { // 'this' is the form element
function onErrors (line 72) | function onErrors(event, validator) { // 'this' is the form element
function onSuccess (line 86) | function onSuccess(error) { // 'this' is the form element
function onReset (line 101) | function onReset(event) { // 'this' is the form element
function validationInfo (line 126) | function validationInfo(form) {
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/modernizr-2.6.2.js
function isEventSupported (line 216) | function isEventSupported( eventName, element ) {
function setCss (line 312) | function setCss( str ) {
function setCssAll (line 319) | function setCssAll( str1, str2 ) {
function is (line 326) | function is( obj, type ) {
function contains (line 333) | function contains( str, substr ) {
function testProps (line 357) | function testProps( props, prefixed ) {
function testDOMProps (line 373) | function testDOMProps( props, obj, elem ) {
function testPropsAll (line 401) | function testPropsAll( prop, prefixed, elem ) {
function webforms (line 872) | function webforms() {
function addStyleSheet (line 1090) | function addStyleSheet(ownerDocument, cssText) {
function getElements (line 1103) | function getElements() {
function getExpandoData (line 1114) | function getExpandoData(ownerDocument) {
function createElement (line 1132) | function createElement(nodeName, ownerDocument, data){
function createDocumentFragment (line 1168) | function createDocumentFragment(ownerDocument, data){
function shivMethods (line 1192) | function shivMethods(ownerDocument, data) {
function shivDocument (line 1230) | function shivDocument(ownerDocument) {
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/respond.js
function callMedia (line 331) | function callMedia(){
FILE: Chapters/DevEnv/Dependency/Game/WebApplication/Startup.cs
class Startup (line 7) | public partial class Startup
method Configuration (line 9) | public void Configuration(IAppBuilder app)
FILE: Chapters/DevEnv/Dependency/Game/WpfApplication/App.xaml.cs
class App (line 14) | public partial class App : Application
FILE: Chapters/DevEnv/Dependency/Game/WpfApplication/MainWindow.xaml.cs
class MainWindow (line 21) | public partial class MainWindow : Window
method MainWindow (line 23) | public MainWindow()
FILE: Chapters/DevEnv/Dependency/Game/WpfApplication/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 32) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: Chapters/DevEnv/Dependency/Game/WpfApplication/Properties/Settings.Designer.cs
class Settings (line 15) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: Chapters/DevEnv/Dependency/GameFramework/Game.Android/Class1.cs
class Class1 (line 8) | public class Class1
FILE: Chapters/DevEnv/Dependency/GameFramework/Game.Android/Resources/Resource.Designer.cs
class Resource (line 18) | [System.CodeDom.Compiler.GeneratedCodeAttribute("Xamarin.Android.Build.T...
method Resource (line 22) | static Resource()
class Attribute (line 27) | public partial class Attribute
method Attribute (line 30) | static Attribute()
method Attribute (line 35) | private Attribute()
class String (line 40) | public partial class String
method String (line 49) | static String()
method String (line 54) | private String()
FILE: Chapters/DevEnv/Dependency/GameFramework/Game.Core/Game.cs
class Game (line 8) | public class Game
FILE: Chapters/DevEnv/Dependency/GameFramework/Game.Desktop/Class1.cs
class Class1 (line 9) | public class Class1
FILE: Chapters/DevEnv/Dependency/GameFramework/Game.Ios/Class1.cs
class Class1 (line 8) | public class Class1
FILE: Chapters/DevEnv/Dependency/GameFramework/Game.Server/Class1.cs
class Class1 (line 9) | public class Class1
FILE: Chapters/DevEnv/Dependency/GameFramework/Game.Universal/Class1.cs
class Class1 (line 9) | public class Class1
FILE: Chapters/DevEnv/アプリ1/アプリ1/App.xaml.cs
class App (line 25) | sealed partial class App : Application
method App (line 36) | public App()
method OnLaunched (line 49) | protected override void OnLaunched(LaunchActivatedEventArgs e)
method OnNavigationFailed (line 95) | void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
method OnSuspending (line 107) | private void OnSuspending(object sender, SuspendingEventArgs e)
FILE: Chapters/DevEnv/アプリ1/アプリ1/MainPage.xaml.cs
class MainPage (line 23) | public sealed partial class MainPage : Page
method MainPage (line 25) | public MainPage()
FILE: Chapters/DevEnv/アプリ1/共通部品/Class1.cs
class Class1 (line 8) | public class Class1
FILE: Chapters/DevEnv/アプリ1/社内ツール1/App.xaml.cs
class App (line 14) | public partial class App : Application
FILE: Chapters/DevEnv/アプリ1/社内ツール1/MainWindow.xaml.cs
class MainWindow (line 21) | public partial class MainWindow : Window
method MainWindow (line 23) | public MainWindow()
FILE: Chapters/DevEnv/アプリ1/社内ツール1/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 32) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: Chapters/DevEnv/アプリ1/社内ツール1/Properties/Settings.Designer.cs
class Settings (line 15) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: Chapters/DevEnv/アプリ1/社内ツール2/Program.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main(string[] args)
FILE: Chapters/Event/EventDriven/Program.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main(string[] args)
method InvokeMain (line 20) | static void InvokeMain(Type t)
FILE: Chapters/Event/EventDriven/Version1/Program.cs
class Program (line 7) | class Program
method Main (line 17) | static void Main()
method TimerLoop (line 30) | private static async Task TimerLoop(CancellationToken ct)
method EventLoop (line 44) | static void EventLoop(CancellationTokenSource cts)
method WriteHelp (line 81) | private static void WriteHelp()
FILE: Chapters/Event/EventDriven/Version2/KeyboardEventLoop.cs
class KeyboardEventLoop (line 13) | class KeyboardEventLoop
method KeyboardEventLoop (line 17) | public KeyboardEventLoop(KeyboadEventHandler onKeyDown)
method Start (line 26) | public Task Start(CancellationToken ct)
method EventLoop (line 34) | void EventLoop(CancellationToken ct)
FILE: Chapters/Event/EventDriven/Version2/Program.cs
class Program (line 7) | class Program
method Main (line 18) | static void Main()
method TimerLoop (line 32) | private static async Task TimerLoop(CancellationToken ct)
method OnKeyDown (line 46) | static void OnKeyDown(char eventCode, CancellationTokenSource cts)
method WriteHelp (line 75) | private static void WriteHelp()
FILE: Chapters/Event/EventDriven/Version3/KeyboardEventLoop.cs
class KeyboardEventLoop (line 13) | class KeyboardEventLoop
method KeyboardEventLoop (line 20) | public KeyboardEventLoop(KeyboadEventHandler onKeyDown)
method Start (line 29) | public Task Start(CancellationToken ct)
method EventLoop (line 37) | void EventLoop(CancellationToken ct)
FILE: Chapters/Event/EventDriven/Version3/Program.cs
class Program (line 7) | class Program
method Main (line 18) | static void Main()
method TimerLoop (line 32) | private static async Task TimerLoop(CancellationToken ct)
method OnKeyDown (line 46) | static void OnKeyDown(char eventCode, CancellationTokenSource cts)
method WriteHelp (line 75) | private static void WriteHelp()
FILE: Chapters/Event/Observable/AnonymousFunction.cs
class AnonymousFunctionProbrem (line 5) | class AnonymousFunctionProbrem
method RaiseX (line 9) | private void RaiseX() => X?.Invoke();
method IncorrectSample (line 11) | public void IncorrectSample()
method CorrectSample (line 28) | public void CorrectSample()
class SubscribeAnonymousFunctionProbrem (line 51) | class SubscribeAnonymousFunctionProbrem
method SubscribeX (line 55) | public IDisposable SubscribeX(Action handler)
method RaiseX (line 61) | private void RaiseX() => X?.Invoke();
method CorrectSample (line 63) | public void CorrectSample()
FILE: Chapters/Event/Observable/EventInternal/Cshap4/EventSample.cs
class EventSample (line 12) | class EventSample
FILE: Chapters/Event/Observable/EventInternal/Csharp1/EventSample.cs
class EventSample (line 11) | class EventSample
class EventSample (line 43) | class EventSample
class EventSample (line 80) | class EventSample
FILE: Chapters/Event/Observable/EventInternal/EventSample.cs
class EventSample (line 10) | class EventSample
FILE: Chapters/Event/Observable/EventSource.cs
class EventSource (line 4) | class EventSource
method RunAsync (line 8) | private async Task RunAsync()
class EventSubscriber (line 18) | class EventSubscriber : IDisposable
method EventSubscriber (line 22) | public EventSubscriber(EventSource source)
method OnProgress (line 29) | private void OnProgress(object sender, int i)
method Dispose (line 34) | public void Dispose()
FILE: Chapters/Event/Observable/ParameterProbrem.cs
class ParameterProbrem (line 8) | static class ParameterProbrem
method FirstClickAsync (line 13) | public static Task FirstClickAsync(this Button x)
method FirstDoubleClickAsync (line 31) | public static Task FirstDoubleClickAsync(this Button x)
method FirstAsync (line 48) | public static Task FirstAsync<TEventHandler>(this event TEventHandler x)
type IEvent (line 72) | public interface IEvent<TArg>
method Subscribe (line 74) | IDisposable Subscribe(EventHandler<TArg> handler);
class Event (line 80) | public class Event<TArg> : IEvent<TArg>
method Subscribe (line 87) | public IDisposable Subscribe(EventHandler<TArg> handler)
method Raise (line 96) | public void Raise(object sender, TArg arg) => e?.Invoke(sender, arg);
class EventExtensions (line 105) | public static class EventExtensions
method FirstAsync (line 113) | public static Task FirstAsync<TArg>(this IEvent<TArg> x)
class PreferredButton (line 137) | class PreferredButton
FILE: Chapters/Event/Observable/Program.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main(string[] args)
FILE: Chapters/Event/Observable/ReactiveExtensions.cs
class PreferredButtonByRx (line 12) | class PreferredButtonByRx
FILE: Chapters/FileBaseApp/Lib/Program.cs
class Class1 (line 3) | public class Class1
FILE: Chapters/Functional/DelegateInternal/F.cs
class F (line 6) | class F : Delegate
method F (line 13) | public F(object target, IntPtr fp) => (Target, FunctionPointer) = (tar...
method Invoke (line 15) | public virtual int Invoke(int x)
FILE: Chapters/Functional/DelegateInternal/GetLength.cs
class Program (line 5) | static class Program
method M (line 7) | static void M(Func<int> f)
method Main (line 12) | static void Main()
method GetLength (line 23) | static int GetLength(this string s) => s.Length;
FILE: Chapters/Functional/DelegateInternal/InstanceMethod.cs
class Sample (line 5) | class Sample
method StaticMethod (line 7) | static void StaticMethod(int x)
method InstanceMethod (line 12) | void InstanceMethod(int x)
method InstanceLikeMethod (line 21) | static void InstanceLikeMethod(Sample @this, int x)
method InstanceMethod (line 34) | public void InstanceMethod(int x)
method InstanceLikeMethod (line 40) | static void InstanceLikeMethod(Sample @this, int x)
class Sample (line 32) | class Sample
method StaticMethod (line 7) | static void StaticMethod(int x)
method InstanceMethod (line 12) | void InstanceMethod(int x)
method InstanceLikeMethod (line 21) | static void InstanceLikeMethod(Sample @this, int x)
method InstanceMethod (line 34) | public void InstanceMethod(int x)
method InstanceLikeMethod (line 40) | static void InstanceLikeMethod(Sample @this, int x)
class SampleExtensions (line 45) | static class SampleExtensions
method ExtensionMethod (line 48) | public static void ExtensionMethod(this Sample @this, int x)
class Program (line 53) | class Program
method Main (line 55) | static void Main()
method F (line 74) | static int F(int x) => 2 * x;
method F (line 77) | static int F(this object? dummy, int x) => 2 * x;
method Main (line 79) | static void Main()
class Program (line 71) | static class Program
method Main (line 55) | static void Main()
method F (line 74) | static int F(int x) => 2 * x;
method F (line 77) | static int F(this object? dummy, int x) => 2 * x;
method Main (line 79) | static void Main()
FILE: Chapters/Functional/DelegateInternal/LambdaOptimization.cs
class Program (line 5) | class Program
method M (line 8) | static void M(Func<string> factory)
method Main (line 13) | static void Main()
class TrickyExtension (line 27) | static class TrickyExtension
method Identity (line 30) | public static T Identity<T>(this T x) => x;
FILE: Chapters/Functional/DelegateInternal/MakePrimitiveContravariant.cs
class Program (line 5) | static class Program
method M (line 7) | static void M(Action<int> a)
method Main (line 12) | static void Main()
method Upcast (line 28) | static void Upcast(this Action<long> a, int x) => a(x);
FILE: Chapters/Functional/DelegateInternal/MakePrimitiveCovariant.cs
class Program (line 5) | static class Program
method M (line 7) | static void M(Func<long> f)
method Main (line 12) | static void Main()
method Upcast (line 28) | static long Upcast(this Func<int> f) => f();
FILE: Chapters/Functional/DelegateInternal/Program.cs
class Sample (line 3) | class Sample
method Sample (line 6) | public Sample(int a = 2) => _a = a;
method Static (line 8) | public static int Static(int x) => 2 * x;
method Instance (line 9) | public int Instance(int x) => _a * x;
class Program (line 12) | class Program
method Main (line 14) | static void Main()
FILE: Chapters/Functional/ExtensionMethods/Instance.cs
class X (line 5) | class X
method F (line 7) | public void F(object x) => WriteLine($"object {x}");
method F (line 8) | public void F(string x) => WriteLine($"string {x}");
class Program (line 11) | class Program
method Main (line 13) | static void Main(string[] args)
FILE: Chapters/Functional/ExtensionMethods/InstanceAndExtension.cs
class X (line 5) | class X
method F (line 7) | public void F(object x) => WriteLine($"object {x}");
method F (line 8) | public void F(string x) => WriteLine($"string {x}");
class XExtensions (line 11) | static class XExtensions
method F (line 13) | public static void F(this X @this, int x) => WriteLine($"int {x}");
class Program (line 17) | class Program
method Main (line 19) | static void Main(string[] args)
FILE: Chapters/Functional/ExtensionMethods/MyApp.cs
class Lib (line 5) | static class Lib { public static void F(this int x) => WriteLine("global...
method F (line 5) | public static void F(this int x) => WriteLine("global");
method F (line 11) | public static void F(this int x) => WriteLine("MyApp");
method F (line 35) | public static void F(this int x) => WriteLine("A");
method F (line 39) | public static void F(this int x) => WriteLine("B");
method F (line 43) | public static void F(this int x) => WriteLine("C");
class Lib (line 11) | static class Lib { public static void F(this int x) => WriteLine("MyApp"...
method F (line 5) | public static void F(this int x) => WriteLine("global");
method F (line 11) | public static void F(this int x) => WriteLine("MyApp");
method F (line 35) | public static void F(this int x) => WriteLine("A");
method F (line 39) | public static void F(this int x) => WriteLine("B");
method F (line 43) | public static void F(this int x) => WriteLine("C");
class Program (line 13) | class Program
method Main (line 15) | static void Main()
class Lib (line 35) | static class Lib { public static void F(this int x) => WriteLine("A"); }
method F (line 5) | public static void F(this int x) => WriteLine("global");
method F (line 11) | public static void F(this int x) => WriteLine("MyApp");
method F (line 35) | public static void F(this int x) => WriteLine("A");
method F (line 39) | public static void F(this int x) => WriteLine("B");
method F (line 43) | public static void F(this int x) => WriteLine("C");
class Lib (line 39) | static class Lib { public static void F(this int x) => WriteLine("B"); }
method F (line 5) | public static void F(this int x) => WriteLine("global");
method F (line 11) | public static void F(this int x) => WriteLine("MyApp");
method F (line 35) | public static void F(this int x) => WriteLine("A");
method F (line 39) | public static void F(this int x) => WriteLine("B");
method F (line 43) | public static void F(this int x) => WriteLine("C");
class Lib (line 43) | static class Lib { public static void F(this int x) => WriteLine("C"); }
method F (line 5) | public static void F(this int x) => WriteLine("global");
method F (line 11) | public static void F(this int x) => WriteLine("MyApp");
method F (line 35) | public static void F(this int x) => WriteLine("A");
method F (line 39) | public static void F(this int x) => WriteLine("B");
method F (line 43) | public static void F(this int x) => WriteLine("C");
FILE: Chapters/Functional/LambdaInternal/InSameBoat.cs
class Program (line 6) | class Program
method Main (line 8) | static async Task Main()
FILE: Chapters/Functional/LambdaInternal/InstanceMethod.cs
class Sample (line 5) | class Sample
method M (line 9) | public void M()
method M (line 22) | public void M()
method AnonymousMethod1 (line 28) | private int AnonymousMethod1() => X;
class Sample (line 18) | class Sample
method M (line 9) | public void M()
method M (line 22) | public void M()
method AnonymousMethod1 (line 28) | private int AnonymousMethod1() => X;
FILE: Chapters/Functional/LambdaInternal/MultipleFunctions.cs
class Program (line 5) | class Program
method F (line 7) | static void F(int m)
method Invoke (line 17) | static void Invoke(params Action<int>[] list)
method F (line 38) | static void F(int m)
method Invoke (line 51) | static void Invoke(params Action<int>[] list)
class AnonymousClass (line 28) | class AnonymousClass
method A (line 31) | internal void A(int x) => Console.WriteLine("A " + x);
method B (line 32) | internal void B(int x) => Console.WriteLine("B " + x);
method C (line 33) | internal void C(int x) => Console.WriteLine("C " + x);
class Program (line 36) | class Program
method F (line 7) | static void F(int m)
method Invoke (line 17) | static void Invoke(params Action<int>[] list)
method F (line 38) | static void F(int m)
method Invoke (line 51) | static void Invoke(params Action<int>[] list)
FILE: Chapters/Functional/LambdaInternal/Program.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main(string[] args)
FILE: Chapters/Functional/LambdaInternal/StaticMethod.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main(string[] args)
method AnonymousMethod1 (line 18) | static int AnonymousMethod1()
method Main (line 23) | static void Main(string[] args)
class AnonymousClass (line 35) | class AnonymousClass
method AnonymousMethod1 (line 40) | internal int AnonymousMethod1()
method Main (line 46) | static void Main(string[] args)
class Program (line 16) | class Program
method Main (line 7) | static void Main(string[] args)
method AnonymousMethod1 (line 18) | static int AnonymousMethod1()
method Main (line 23) | static void Main(string[] args)
class AnonymousClass (line 35) | class AnonymousClass
method AnonymousMethod1 (line 40) | internal int AnonymousMethod1()
method Main (line 46) | static void Main(string[] args)
class Program (line 33) | class Program
method Main (line 7) | static void Main(string[] args)
method AnonymousMethod1 (line 18) | static int AnonymousMethod1()
method Main (line 23) | static void Main(string[] args)
class AnonymousClass (line 35) | class AnonymousClass
method AnonymousMethod1 (line 40) | internal int AnonymousMethod1()
method Main (line 46) | static void Main(string[] args)
FILE: Chapters/Functional/LocalFunctions/Capture.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
FILE: Chapters/Functional/LocalFunctions/CaptureOptimization.cs
class Program (line 5) | class Program
method M1 (line 7) | static void M1(int m, int n)
method M2 (line 14) | static void M2(int m, int n)
method M3 (line 22) | static void M3(int m, int n)
class CompilationResult (line 30) | class CompilationResult
type State (line 32) | struct State
method Anonymous (line 38) | static int Anonymous(int x, int y, ref State state)
method M1 (line 43) | static void M1(int m, int n)
FILE: Chapters/Functional/LocalFunctions/CaptureOverwrite.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
FILE: Chapters/Functional/LocalFunctions/Factorial.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
FILE: Chapters/Functional/LocalFunctions/Iterator/MyEnumerable1.cs
class MyEnumerable (line 6) | static class MyEnumerable
method Where (line 8) | public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func...
FILE: Chapters/Functional/LocalFunctions/Iterator/MyEnumerable2.cs
class MyEnumerable (line 6) | static class MyEnumerable
method Where (line 8) | public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func...
method WhereInternal (line 17) | private static IEnumerable<T> WhereInternal<T>(IEnumerable<T> source, ...
FILE: Chapters/Functional/LocalFunctions/Iterator/MyEnumerable3.cs
class MyEnumerable (line 6) | static class MyEnumerable
method Where (line 8) | public static IEnumerable<T> Where<T>(this IEnumerable<T> source, Func...
FILE: Chapters/Functional/LocalFunctions/Iterator/Program1.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
FILE: Chapters/Functional/LocalFunctions/Iterator/Program2.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
FILE: Chapters/Functional/LocalFunctions/Lambda.cs
class Program (line 10) | class Program
method Main (line 12) | static void Main()
method M1 (line 25) | static void M1()
method 再帰 (line 38) | static void 再帰()
method イテレーター (line 49) | static void イテレーター()
method ジェネリック (line 69) | static void ジェネリック()
method 引数の規定値 (line 88) | static void 引数の規定値()
FILE: Chapters/Functional/LocalFunctions/Program.cs
class Program (line 12) | class Program
method Main (line 14) | static void Main(string[] args)
class Sample (line 19) | class Sample
method Sample (line 21) | public Sample()
FILE: Chapters/Functional/LocalFunctions/RecursiveFunction/Node.cs
class Node (line 3) | class Node
method Node (line 9) | public Node(int value, Node? left = null, Node? right = null)
FILE: Chapters/Functional/LocalFunctions/RecursiveFunction/Program.cs
class Program (line 3) | class Program
method Main (line 5) | static void Main()
FILE: Chapters/Functional/LocalFunctions/RecursiveFunction/Tree.cs
class Tree (line 5) | class Tree
method Inorder (line 20) | public IEnumerable<int> Inorder()
method Inorder (line 26) | private static IEnumerable<int> Inorder(Node n)
FILE: Chapters/Functional/LocalFunctions/TaskCache/Program1.cs
class Program (line 8) | class Program
method Main (line 10) | static void Main()
method MainAsync (line 15) | static async Task MainAsync()
method LoadAsync (line 23) | static Task<string> LoadAsync() => _loadCache ??= LoadAsyncInternal();
method LoadAsyncInternal (line 26) | static async Task<string> LoadAsyncInternal()
FILE: Chapters/Functional/LocalFunctions/TaskCache/Program2.cs
class Program (line 8) | class Program
method Main (line 10) | static void Main()
method MainAsync (line 15) | static async Task MainAsync()
method LoadAsync (line 23) | static Task<string> LoadAsync()
FILE: Chapters/Functional/LocalFunctions/ToArray/Program1.cs
class MyEnumerable (line 7) | static class MyEnumerable
method SelectToArray (line 9) | public static U[] SelectToArray<T, U>(this T[] array, Func<T, U> selec...
method Select (line 15) | private static IEnumerable<U> Select<T, U>(IEnumerable<T> source, Func...
class Program (line 22) | class Program
method Main (line 24) | static void Main()
FILE: Chapters/Functional/LocalFunctions/ToArray/Program2.cs
class MyEnumerable (line 7) | static class MyEnumerable
method SelectToArray (line 9) | public static U[] SelectToArray<T, U>(this T[] array, Func<T, U> selec...
class Program (line 21) | class Program
method Main (line 23) | static void Main()
FILE: Chapters/Functional/LocalFunctions/Usage/Usage.cs
class Usage1 (line 3) | class Usage1
method M (line 5) | static void M()
method MInternal (line 11) | static void MInternal()
class Usage2 (line 17) | class Usage2
method M (line 19) | static void M()
FILE: Chapters/Interop/NativeInterop/Com/ComImportSample.cs
class ComImportSample (line 9) | class ComImportSample
method Main (line 11) | public static void Main()
FILE: Chapters/Interop/NativeInterop/Com/ComLateBindingSample.cs
class ComLateBindingSample (line 9) | class ComLateBindingSample
method Main (line 11) | public static void Main()
FILE: Chapters/Interop/NativeInterop/Dll/BlittableSample1.cs
type Enum16 (line 6) | enum Enum16 : ushort { }
type Struct16 (line 8) | struct Struct16 { public byte x, y; }
type ExplicitStruct16 (line 10) | [StructLayout(LayoutKind.Explicit, Size = 2)]
class BlittableSample1 (line 23) | class BlittableSample1
method SetValue (line 31) | [DllImport("Win32Dll.dll")]
method SetValue (line 34) | [DllImport("Win32Dll.dll")]
method SetValue (line 36) | [DllImport("Win32Dll.dll")]
method SetValue (line 38) | [DllImport("Win32Dll.dll")]
method Main (line 41) | public static void Main()
FILE: Chapters/Interop/NativeInterop/Dll/BlittableSample2.cs
class BlittableSample2 (line 11) | class BlittableSample2
method Shift (line 16) | [DllImport("Win32Dll.dll")]
type Data (line 20) | struct Data
method ToString (line 26) | public override string ToString() => $"{A:X2}{B:X2}{C:X4}{D:X8}";
method Shift (line 29) | [DllImport("Win32Dll.dll")]
method Main (line 32) | public static void Main()
FILE: Chapters/Interop/NativeInterop/Dll/CallbackSample.cs
class CallbackSample (line 14) | class CallbackSample
method SetCallback (line 18) | [DllImport("Win32Dll.dll")]
method FireCallback (line 21) | [DllImport("Win32Dll.dll")]
method Main (line 24) | public static void Main()
method MakeGarbage (line 35) | private static void MakeGarbage()
method StaticMethod (line 47) | private static void StaticMethod()
method NonReferencedInstanceMethod (line 72) | private static void NonReferencedInstanceMethod()
method ReferencedInstanceMethod (line 97) | private static void ReferencedInstanceMethod()
method ViaCallbackParameter (line 140) | private static void ViaCallbackParameter()
class CallbackParameter (line 178) | [StructLayout(LayoutKind.Sequential)]
FILE: Chapters/Interop/NativeInterop/Dll/DllImportSample.cs
class DllImportSample (line 6) | class DllImportSample
method Main (line 8) | public static void Main()
method GetLocalTime (line 16) | [DllImport("kernel32.dll")]
type SYSTEMTIME (line 20) | [StructLayout(LayoutKind.Sequential, Pack = 2)]
FILE: Chapters/Interop/NativeInterop/Dll/StringSample.cs
class StringSample (line 21) | class StringSample
method FillA16 (line 26) | [DllImport("Win32Dll.dll", CharSet = CharSet.Unicode)]
method FillA8 (line 30) | [DllImport("Win32Dll.dll", CharSet = CharSet.Ansi)]
method Main (line 33) | public static void Main()
FILE: Chapters/Interop/NativeInterop/Dll/YourOwnDllImport.cs
class Program (line 12) | class Program
method GetValue (line 14) | [DllImport("Win32Dll.dll")]
method GetAddress (line 17) | private static IntPtr GetAddress(object x)
class CallbackParam (line 22) | [StructLayout(LayoutKind.Sequential)]
method Main (line 28) | public static void Main()
FILE: Chapters/Interop/NativeInterop/Program.cs
class Program (line 3) | class Program
method Main (line 5) | static void Main(string[] args)
FILE: Chapters/Interop/NativeInterop/WinRt/WinRtSample.cs
class WinRtSample (line 14) | class WinRtSample
method Main (line 16) | public static void Main()
method MainAsync (line 21) | static async Task MainAsync()
class WinRtExtensions (line 32) | static class WinRtExtensions
method GetAwaiter (line 34) | public static TaskAwaiter<T> GetAwaiter<T>(this IAsyncOperation<T> t) ...
method AsTask (line 36) | public static Task<T> AsTask<T>(this IAsyncOperation<T> t)
FILE: Chapters/Interop/NativeMemory/ManagedApp/Interop.cs
class Interop (line 6) | static class Interop
method SetCallback (line 10) | [DllImport("NativeLib.dll", CallingConvention = CallingConvention.StdC...
method Trigger (line 13) | [DllImport("NativeLib.dll", CallingConvention = CallingConvention.StdC...
method AddRef (line 16) | [DllImport("NativeLib.dll", CallingConvention = CallingConvention.StdC...
method Release (line 19) | [DllImport("NativeLib.dll", CallingConvention = CallingConvention.StdC...
FILE: Chapters/Interop/NativeMemory/ManagedApp/Program.cs
class Program (line 7) | class Program
method Main (line 12) | static void Main(string[] args)
method Callback (line 24) | private static async void Callback(int senderId, IntPtr data, IntPtr d...
method WriteBytes (line 56) | static unsafe void WriteBytes(IntPtr data, IntPtr dataLen)
FILE: Chapters/Interop/NativeMemory/NativeLib/NativeLib.cpp
function SetCallback (line 15) | __declspec(dllexport) void SetCallback(Callback callback)
function Trigger (line 23) | __declspec(dllexport) void Trigger(__int32 senderId)
function AddRef (line 45) | __declspec(dllexport) void AddRef(void* data)
function Release (line 53) | __declspec(dllexport) void Release(void* data)
FILE: Chapters/Interop/NativeMemory/NativeLib/dllmain.cpp
function BOOL (line 4) | BOOL APIENTRY DllMain( HMODULE hModule,
FILE: Chapters/Interop/TypedReference/ArgList/Program.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main(string[] args)
method X (line 12) | static void X(__arglist) // 仮引数のところに __arglist を書く
FILE: Chapters/Interop/TypedReference/CppReference/CppReference.cpp
function sample (line 5) | void sample()
function _tmain (line 15) | int _tmain(int argc, _TCHAR* argv[])
FILE: Chapters/Interop/TypedReference/ImplicitReference/Program.cs
class Program (line 7) | class Program
method Main (line 9) | static void Main(string[] args)
method ReferenceParameters (line 18) | static void ReferenceParameters()
method ReferenceParameters (line 28) | static void ReferenceParameters(ref int x, out int y)
type StructThis (line 38) | struct StructThis
method Y (line 41) | public int Y()
type A (line 49) | struct A { public B b; }
type B (line 50) | struct B { public C c; }
type C (line 51) | struct C { public int x; }
method NestedStructs (line 56) | static void NestedStructs()
FILE: Chapters/Interop/TypedReference/InteropArgList/Program.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main(string[] args)
method printf (line 12) | [DllImport("msvcrt", CallingConvention = CallingConvention.Cdecl)]
FILE: Chapters/Interop/TypedReference/MakeRef/Program.cs
class Program (line 8) | class Program
method Main (line 10) | static void Main(string[] args)
FILE: Chapters/Interop/TypedReference/Program.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main(string[] args)
FILE: Chapters/Interop/TypedReference/ReferenceUsage/Program.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main(string[] args)
class AvoidBoxing (line 27) | class AvoidBoxing
method Set1 (line 29) | public static void Set1<T>(ref T value)
class Boxed (line 39) | class Boxed
method Set1 (line 41) | public static void Set1<T>(ref T value)
FILE: Chapters/Interop/Unsafe/Unsafe/Array.cs
class Program (line 3) | class Program
method Main (line 5) | unsafe static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/CustomFixed.cs
type Array (line 6) | readonly struct Array<T>
method Array (line 9) | public Array(int length) => _array = new T[length];
method GetPinnableReference (line 15) | public ref T GetPinnableReference() => ref _array[0];
method GetPinnableReference (line 18) | public unsafe ref T GetPinnableReference()
class Program (line 27) | class Program
method Main (line 29) | static void Main(string[] args)
FILE: Chapters/Interop/Unsafe/Unsafe/EmptyArray.cs
class Program (line 6) | class Program
method Main (line 8) | unsafe static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/GcTracking.cs
class X (line 8) | class X
class Program (line 16) | unsafe class Program
method AsUnmanaged (line 22) | static ulong AsUnmanaged<T>(T r) where T : class => (ulong)Unsafe.As<T...
method AsUnmanaged (line 25) | static ulong AsUnmanaged<T>(ref T r) => (ulong)Unsafe.AsPointer(ref r);
method Main (line 27) | static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/MutateString.cs
class Program (line 3) | unsafe class Program
method Main (line 5) | static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/PointerOperators.cs
type Point (line 5) | struct Point
class Program (line 11) | class Program
method Main (line 13) | unsafe static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/Program.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/RewriteString.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/String.Copy.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/String.cs
class Program (line 5) | unsafe class Program
method Main (line 7) | static void Main()
FILE: Chapters/Interop/Unsafe/Unsafe/StringInternal.cs
class Program (line 7) | unsafe class Program
method AsUnmanaged (line 9) | static ulong AsUnmanaged<T>(T r) where T : class => (ulong)Unsafe.As<T...
method AsUnmanaged (line 10) | static ulong AsUnmanaged<T>(ref T r) => (ulong)Unsafe.AsPointer(ref r);
method Main (line 12) | static void Main()
FILE: Chapters/Interop/Win32Dll/Win32Dll.cpp
function FillA16 (line 9) | __declspec(dllexport) void __stdcall FillA16(wchar_t* str)
function FillA8 (line 18) | __declspec(dllexport) void __stdcall FillA8(char* str)
function GetValue (line 26) | __declspec(dllexport) int __stdcall GetValue()
function SetValue (line 31) | __declspec(dllexport) void __stdcall SetValue(UINT16& x)
type Data (line 36) | struct Data
function Data (line 44) | __declspec(dllexport) Data __stdcall Shift(Data data)
function SetCallback (line 56) | __declspec(dllexport) void __stdcall SetCallback(void* param, Callback c...
function FireCallback (line 62) | __declspec(dllexport) void __stdcall FireCallback(UINT32 value)
FILE: Chapters/Interop/Win32Dll/dllmain.cpp
function BOOL (line 4) | BOOL APIENTRY DllMain( HMODULE hModule,
FILE: Chapters/MemoryManagement/DefaultValue/ArrayInitialization.cs
class ArrayInitialization (line 3) | class ArrayInitialization
method Run (line 5) | public static void Run()
type Vector4 (line 28) | struct Vector4
FILE: Chapters/MemoryManagement/DefaultValue/FieldInitialization.cs
class FieldInitialization (line 5) | class FieldInitialization
method Run (line 7) | public static void Run()
class DefaultValues (line 19) | class DefaultValues
FILE: Chapters/MemoryManagement/DefaultValue/Point.cs
type Point (line 14) | struct Point
method Point (line 20) | public Point()
type Entry (line 27) | struct Entry
FILE: Chapters/MemoryManagement/DefaultValue/Program.cs
class Program (line 3) | class Program
method Main (line 5) | static void Main(string[] args)
FILE: Chapters/MemoryManagement/UninitializedMemory/UninitializedMemory.cpp
function main (line 3) | void main()
FILE: Chapters/Misc/Keywords/Await/async.cs
class Program (line 5) | class Program
method F (line 10) | static async F()
method G (line 16) | static async async G()
FILE: Chapters/Misc/Keywords/Await/await.cs
class A (line 6) | class A
method X (line 8) | static int X()
method XAsync (line 21) | static async Task<int> XAsync()
class Program (line 36) | class Program
type await (line 38) | public struct await { }
method XAsync (line 41) | static async Task<int> XAsync()
FILE: Chapters/Misc/Keywords/Await/yield.cs
class YieldAndAwait (line 6) | class YieldAndAwait
method Yield (line 8) | static IEnumerable<int> Yield()
method Await (line 14) | static async Task<int> Await()
FILE: Chapters/Misc/Keywords/NameOf/NameOf.cs
class NoMethod (line 5) | class NoMethod
method F (line 7) | static void F()
class SuccessfullyCompiled (line 15) | class SuccessfullyCompiled
method F (line 17) | static void F()
method nameof (line 24) | static string nameof(int n) => "abc";
class Erroneous (line 27) | class Erroneous
method F (line 29) | static void F()
method nameof (line 39) | static string nameof(string s) => "";
FILE: Chapters/Misc/Keywords/NameOf/UsingStatic.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
class MyExtensions (line 17) | static class MyExtensions
method nameof (line 19) | public static string nameof(object x) => "abc";
FILE: Chapters/Misc/Keywords/Program.cs
class Program (line 9) | class Program
method Main (line 11) | static void Main(string[] args)
FILE: Chapters/Misc/Keywords/Var/Variance.cs
class Variance (line 9) | class Variance
method Calc (line 11) | static double Calc(IEnumerable<double> data)
FILE: Chapters/Misc/Keywords/Var/var.cs
class Inferred (line 5) | class Inferred
method F (line 7) | static void F()
class SuccessfullyCompiled (line 14) | class SuccessfullyCompiled
type var (line 16) | struct var
method F (line 22) | static void F()
class Erroneous (line 29) | class Erroneous
type var (line 31) | struct var { }
method F (line 33) | static void F()
FILE: Chapters/Misc/Keywords/Yield/Program.cs
class Program (line 5) | class Program
method F (line 7) | static IEnumerator<yield> F()
type yield (line 17) | struct yield
FILE: Chapters/Misc/Keywords/Yield/cs1.cs
class cs1 (line 5) | class cs1
method Calc (line 7) | static void Calc(decimal dividends, decimal price)
FILE: Chapters/Misc/PatternBased/CollectionInitializer.cs
type Adder (line 6) | struct Adder : IEnumerable
method GetEnumerator (line 8) | public IEnumerator GetEnumerator() => throw new NotImplementedExceptio...
class AdderExtensions (line 11) | static class AdderExtensions
method Add (line 13) | public static void Add(this Adder a, int x, int dummy = 0) { }
class Program (line 16) | class Program
method Main (line 18) | static void Main()
FILE: Chapters/Misc/PatternBased/DeconstructBenchmark.cs
type IDeconstructibleTo2Ints (line 6) | interface IDeconstructibleTo2Ints
method Deconstruct (line 8) | void Deconstruct(out int x, out int y);
type Point (line 11) | struct Point : IDeconstructibleTo2Ints
method Point (line 15) | public Point(int x, int y) => (X, Y) = (x, y);
method Deconstruct (line 16) | public void Deconstruct(out int x, out int y) => (x, y) = (X, Y);
class DeconstructBenchmark (line 19) | [MemoryDiagnoser]
method Sum1 (line 24) | static int Sum1(Point p)
method Sum2 (line 32) | static int Sum2(IDeconstructibleTo2Ints p)
method NoInterafce (line 38) | [Benchmark]
method WithInterafce (line 41) | [Benchmark]
class Program (line 45) | class Program
method Main (line 47) | static void Main()
FILE: Chapters/Misc/PatternBased/Queryable1.cs
type Queryable (line 5) | struct Queryable
method Where (line 7) | public Queryable Where(Func<int, bool> f) => this;
method Select (line 8) | public Queryable Select(Func<int, int> f) => this;
class Program (line 11) | class Program
method Main (line 13) | static void Main()
FILE: Chapters/Misc/PatternBased/Queryable12.cs
type Queryable (line 5) | struct Queryable
method Where (line 7) | public Queryable Where(Func<int, bool> f, params int[] dummy) => this;
class QueryableExtensions (line 10) | static class QueryableExtensions
method Select (line 12) | public static Queryable Select(this Queryable q, Func<int, int> f, int...
class Program (line 15) | class Program
method Main (line 17) | static void Main()
FILE: Chapters/Misc/PatternBased/Using.cs
type Disposable (line 5) | struct Disposable
method Dispose (line 10) | public void Dispose() { }
class Program (line 13) | class Program
method Main (line 15) | static void Main()
FILE: Chapters/NullableReferenceTypes/DefiniteAssignment/Program.cs
class Program (line 5) | class Program
method M1 (line 8) | static void M1()
method M2 (line 15) | static void M2()
method M3 (line 24) | static void M3()
method M (line 32) | static void M(bool flag)
method M2 (line 41) | static void M2(bool flag)
FILE: Chapters/NullableReferenceTypes/FlowAnalysis/Assingment.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
FILE: Chapters/NullableReferenceTypes/FlowAnalysis/Attributes.cs
class Program (line 10) | class Program
method Main (line 12) | static void Main()
method AllowNullAttribute (line 20) | private static void AllowNullAttribute(string path)
method DisallowNullAttribute (line 27) | private static void DisallowNullAttribute()
method MaybeNullAttribute (line 34) | private static void MaybeNullAttribute()
method NotNullAttribute (line 41) | private static void NotNullAttribute()
method MaybeNullWhenAttribute (line 48) | private static void MaybeNullWhenAttribute(Dictionary<int, string> map)
method NotNullWhenAttribute (line 54) | private static void NotNullWhenAttribute(string? s)
method NotNullIfNotNullAttribute (line 60) | private static void NotNullIfNotNullAttribute()
method DoesNotReturnAttribute (line 66) | private static void DoesNotReturnAttribute(bool flag)
method DoesNotReturnIfAttribute (line 74) | private static void DoesNotReturnIfAttribute(string? s)
FILE: Chapters/NullableReferenceTypes/FlowAnalysis/BclAnnotation.cs
class Program (line 5) | class Program
method Main (line 7) | static void Main()
method Warning (line 13) | private static void Warning()
method NoWarning (line 19) | private static void NoWarning()
FILE: Chapters/NullableReferenceTypes/FlowAnalysis/Default.cs
class Program (line 7) | class Program
type S (line 9) | struct S { public string Name; }
method M (line 10) | static int M(S s) => s.Name.Length;
method Main (line 11) | static void Main() => M(default);
method Main (line 19) | static void Main()
class Program (line 17) | class Program
type S (line 9) | struct S { public string Name; }
method M (line 10) | static int M(S s) => s.Name.Length;
method Main (line 11) | static void Main() => M(default);
method Main (line 19) | static void Main()
FILE: Chapters/NullableReferenceTypes/FlowAnalysis/Equality.cs
class Program (line 6) | class Program
method Main (line 8) | static void Main()
method Equality (line 14) | private static void Equality(string x, string? y)
method SpecialEquality (line 26) | private static void SpecialEquality(string x, string? y)
FILE: Chapters/NullableReferenceTypes/FlowAnalysis/Forgiving.cs
class Program (line 5) | class Program
method Main (line 10) | static void Main()
FILE: Chapters/NullableReferenceTypes/FlowAnalysis/Generics.cs
class Program (line 5) | class Program
method M (line 7) | static void M<T>(T? x)
method Main (line 10) | static void Main()
method M (line 26) | static void M<T>(T? x)
method Main (line 30) | static void Main()
method M (line 46) | static void M<T>(T x)
method Main (line 50) | static void Main()
method M1 (line 57) | static void M1<T>(T? x)
method M (line 68) | static void M<T>(T x)
method Main (line 72) | static void Main()
method M1 (line 81) | static void M1<T>(T? x)
class Program (line 24) | class Program
method M (line 7) | static void M<T>(T? x)
method Main (line 10) | static void Main()
method M (line 26) | static void M<T>(T? x)
method Main (line 30) | static void Main()
method M (line 46) | static void M<T>(T x)
method Main (line 50) | static void Main()
method M1 (line 57) | static void M1<T>(T? x)
method M (line 68) | static void M<T>(T x)
method Main (line 72) | static void Main()
method M1 (line 81) | static void M1<T>(T? x)
class Program (line 44) | class Program
method M (line 7) | static void M<T>(T? x)
method Main (line 10) | static void Main()
method M (line 26) | static void M<T>(T? x)
method Main (line 30) | static void Main()
method M (line 46) | static void M<T>(T x)
method Main (line 50) | static void Main()
method M1 (line 57) | static void M1<T>(T? x)
method M (line 68) | static void M<T>(T x)
method Main (line 72) | static void Main()
method M1 (line 81) | static void M1<T>(T? x)
class Program (line 66) | class Program
method M (line 7) | static void M<T>(T? x)
method Main (line 10) | static void Main()
method M (line 26) | static void M<T>(T? x)
method Main (line 30) | static void Main()
method M (line 46) | static void M<T>(T x)
method Main (line 50) | static void Main()
method M1 (line 57) | static void M1<T>(T? x)
method M (line 68) | static void M<T>(T x)
method Main (line 72) | static void Main()
method M1 (line 81) | static void M1<T>(T? x)
FILE: Chapters/NullableReferenceTypes/NullPointer/InvalidPointer.cs
class Program (line 6) | class Program
method Main (line 8) | unsafe static void Main()
method UnsafeString (line 15) | private static unsafe void UnsafeString()
method NullPointer (line 29) | unsafe static void NullPointer()
method InvalidPointer (line 36) | unsafe static void InvalidPointer()
FILE: Chapters/NullableReferenceTypes/NullPointer/ManualNullCheck/CallHierarchy.cs
class CallHierarchy (line 5) | class CallHierarchy
method Run (line 7) | public void Run() => A();
method A (line 9) | void A() => B(null);
method B (line 10) | void B(string s) => C(s);
method C (line 11) | void C(string s) => D(s);
method D (line 12) | void D(string s) => E(s);
method E (line 13) | void E(string s) => F(s);
method F (line 14) | void F(string s) => Console.WriteLine(s.Length);
FILE: Chapters/NullableReferenceTypes/NullPointer/ManualNullCheck/DuplicateNullCheck.cs
class DuplicateNullCheck (line 5) | class DuplicateNullCheck
method A (line 7) | void A(string s)
method B (line 12) | void B(string s)
FILE: Chapters/NullableReferenceTypes/ProjectLevel/Nullability.cs
class Nullability (line 1) | class Nullability
method Main (line 3) | public void Main()
method NotNull (line 14) | string NotNull() => "";
method DisallowNull (line 15) | int DisallowNull(string s) => s.Length;
method MaybeNull (line 17) | string? MaybeNull() => null;
method AllowNull (line 18) | int? AllowNull(string? s) => s?.Length;
method FalseNotNull (line 20) | string FalseNotNull() => null;
method M (line 22) | void M(string s)
FILE: Chapters/NullableReferenceTypes/SourceLevel/IntParse.cs
class IntParse (line 7) | class IntParse
method M (line 9) | public static void M()
FILE: Chapters/NullableReferenceTypes/SourceLevel/Program.cs
class Program (line 3) | public class Program
method Main (line 5) | static void Main()
method E1 (line 16) | static int E1(string s) => s.Length;
method E2 (line 17) | static int? E2(string? s) => s?.Length;
method D1 (line 22) | static int D1(string s) => s.Length;
method R1 (line 27) | static int? R1(string? s) => s?.Length;
FILE: Chapters/Old/ApplyXsl/ApplyXsl.cs
class XslApplier (line 13) | class XslApplier
method Main (line 18) | [STAThread]
method ApplyXslFiles (line 32) | static void ApplyXslFiles(string dirName)
method ApplyXsl (line 48) | static void ApplyXsl(string fileName)
method GetXSlUri (line 68) | static string GetXSlUri(string fileName)
FILE: Chapters/Old/BitField/BitField.cs
class BitFieldException (line 8) | public class BitFieldException : System.Exception
method BitFieldException (line 13) | public BitFieldException(){}
method BitFieldException (line 19) | public BitFieldException(string msg) : base(msg){}
class BitField (line 41) | abstract class BitField
method Create (line 53) | public static BitField Create(int m, int l)
method Create (line 70) | public static BitField Create(int m, int l, ulong val)
method Create (line 80) | public static BitField Create(bool b)
method GetValue (line 89) | internal abstract ulong GetValue();
method GetValue (line 101) | internal abstract ulong GetValue(int m, int l);
method Assign (line 107) | public void Assign(ulong val)
method Assign (line 120) | public abstract void Assign(BitField a);
method Assign (line 131) | public abstract void Assign(int m, int l, BitField a);
method Sub (line 216) | internal BitField Sub(int i)
method Sub (line 232) | internal abstract BitField Sub(int m, int l);
method Concat (line 241) | static public BitField Concat(params BitField[] a)
method ToString (line 396) | public override string ToString()
class BitFieldImmediate (line 413) | internal class BitFieldImmediate : BitField
method BitFieldImmediate (line 424) | public BitFieldImmediate(int msb, int lsb) : this(msb, lsb, 0){}
method BitFieldImmediate (line 433) | public BitFieldImmediate(int msb, int lsb, ulong n)
method GetValue (line 449) | internal override ulong GetValue()
method GetValue (line 464) | internal override ulong GetValue(int m, int l)
method Assign (line 479) | public override void Assign(BitField a)
method Assign (line 497) | public override void Assign(int m, int l, BitField a)
method Sub (line 546) | internal override BitField Sub(int m, int l)
method GetMask (line 560) | private ulong GetMask(int m, int l)
class BitFieldSub (line 574) | internal class BitFieldSub : BitField
method BitFieldSub (line 586) | public BitFieldSub(int msb, int lsb, BitField bf)
method GetValue (line 597) | internal override ulong GetValue()
method GetValue (line 612) | internal override ulong GetValue(int m, int l)
method Assign (line 627) | public override void Assign(BitField a)
method Assign (line 644) | public override void Assign(int m, int l, BitField a)
method Sub (line 688) | internal override BitField Sub(int m, int l)
FILE: Chapters/Old/BitField/SampleLogic.cs
class SampleLogic (line 9) | class SampleLogic
method MulDiv (line 18) | public static BitField MulDiv(BitField a, BitField b, bool mul)
method Mul (line 62) | public static BitField Mul(BitField a, BitField b)
method Div (line 99) | public static BitField Div(BitField a, BitField b)
method Negate (line 137) | public static BitField Negate(BitField a)
method BcdToBin (line 149) | public static BitField BcdToBin(BitField bcd)
method BcdToBinAddIn (line 177) | static private BitField BcdToBinAddIn(BitField a)
method BinToBcd (line 188) | public static BitField BinToBcd(BitField bin, out bool overflow)
method BinToBcdAddIn (line 219) | static private BitField BinToBcdAddIn(BitField a)
FILE: Chapters/Old/BitField/test.cs
class BitFieldTest (line 13) | class BitFieldTest
method Main (line 18) | [STAThread]
method TestBcd (line 72) | static void TestBcd(ulong m)
method TestMulDiv (line 95) | static void TestMulDiv(ulong m, ulong n)
method TestMul (line 136) | static void TestMul(ulong m, ulong n)
method TestDiv (line 163) | static void TestDiv(ulong m, ulong n)
FILE: Chapters/Old/Complex/CartesianComplex.cs
class CartesianComplex (line 10) | public class CartesianComplex : Complex
method CartesianComplex (line 19) | public CartesianComplex(double x, double y)
method CartesianComplex (line 25) | public CartesianComplex(Complex z) : this(z.Re, z.Im){}
method CartesianComplex (line 26) | public CartesianComplex(double x) : this(x, 0){}
method CartesianComplex (line 27) | public CartesianComplex() : this(0, 0){}
method FromPolar (line 35) | static CartesianComplex FromPolar(double r, double theta)
method Clone (line 43) | public override object Clone()
method Equals (line 48) | public override bool Equals(object o)
method Equals (line 56) | public override bool Equals(double x)
method GetHashCode (line 61) | public override int GetHashCode()
method Negate (line 112) | public override Complex Negate()
method Conjugate (line 117) | public override Complex Conjugate()
method Invert (line 122) | public override Complex Invert()
method Add (line 128) | public override Complex Add(Complex z)
method Add (line 132) | public override Complex Add(double x)
method Sub (line 137) | public override Complex Sub(Complex z)
method Sub (line 141) | public override Complex Sub(double x)
method Mul (line 146) | public override Complex Mul(Complex z)
method Mul (line 150) | public override Complex Mul(double x)
method Div (line 155) | public override Complex Div(Complex z)
method Div (line 162) | public override Complex Div(double x)
method Norm (line 167) | public override double Norm()
FILE: Chapters/Old/Complex/Complex.cs
class Complex (line 8) | public abstract class Complex : ICloneable
method Clone (line 12) | public abstract object Clone();
method Equals (line 13) | public abstract override bool Equals(object o);
method Equals (line 14) | public abstract bool Equals(double x);
method GetHashCode (line 15) | public abstract override int GetHashCode();
method Norm (line 46) | public abstract double Norm();
method Negate (line 51) | public abstract Complex Negate();
method Invert (line 56) | public abstract Complex Invert();
method Conjugate (line 61) | public abstract Complex Conjugate();
method Add (line 67) | public abstract Complex Add(Complex z);
method Add (line 68) | public abstract Complex Add(double x);
method Sub (line 74) | public abstract Complex Sub(Complex z);
method Sub (line 75) | public abstract Complex Sub(double x);
method Mul (line 81) | public abstract Complex Mul(Complex z);
method Mul (line 82) | public abstract Complex Mul(double x);
method Div (line 88) | public abstract Complex Div(Complex z);
method Div (line 89) | public abstract Complex Div(double x);
method ToString (line 97) | public override string ToString()
method Norm_ (line 246) | static protected double Norm_(double x, double y)
method Abs_ (line 251) | static protected double Abs_(double x, double y)
method Arg_ (line 256) | static protected double Arg_(double x, double y)
FILE: Chapters/Old/Complex/PolarComplex.cs
class PolarComplex (line 10) | public class PolarComplex : Complex
method PolarComplex (line 20) | public PolarComplex(double r, double t)
method PolarComplex (line 26) | public PolarComplex(Complex z) : this(z.Abs, z.Arg){}
method PolarComplex (line 27) | public PolarComplex(double r) : this(r, 0){}
method PolarComplex (line 28) | public PolarComplex() : this(0, 0){}
method FromCartesian (line 36) | static PolarComplex FromCartesian(double x, double y)
method Clone (line 44) | public override object Clone()
method Equals (line 49) | public override bool Equals(object o)
method Equals (line 57) | public override bool Equals(double x)
method GetHashCode (line 62) | public override int GetHashCode()
method Negate (line 113) | public override Complex Negate()
method Invert (line 118) | public override Complex Invert()
method Conjugate (line 123) | public override Complex Conjugate()
method Add (line 128) | public override Complex Add(Complex z)
method Add (line 132) | public override Complex Add(double x)
method Sub (line 137) | public override Complex Sub(Complex z)
method Sub (line 141) | public override Complex Sub(double x)
method Mul (line 146) | public override Complex Mul(Complex z)
method Mul (line 150) | public override Complex Mul(double x)
method Div (line 155) | public override Complex Div(Complex z)
method Div (line 159) | public override Complex Div(double x)
method Norm (line 164) | public override double Norm()
FILE: Chapters/Old/Complex/test.cs
class TestComplex (line 8) | class TestComplex
method Main (line 10) | static void Main(string[] args)
method Show (line 28) | static void Show(Complex z, Complex w)
FILE: Chapters/Old/DrawImage/Form1.Designer.cs
class Form1 (line 3) | partial class Form1
method Dispose (line 14) | protected override void Dispose(bool disposing)
method InitializeComponent (line 29) | private void InitializeComponent()
FILE: Chapters/Old/DrawImage/Form1.cs
class Form1 (line 14) | public partial class Form1 : Form
method UpdatePanel (line 37) | private void UpdatePanel(Graphics g, int width, int height)
method Form1 (line 53) | public Form1()
method OnClosing (line 62) | protected override void OnClosing(CancelEventArgs e)
method MainThread (line 74) | private void MainThread()
method panel1_Resize (line 93) | private void panel1_Resize(object sender, EventArgs e)
method panel1_Paint (line 105) | private void panel1_Paint(object sender, PaintEventArgs e)
FILE: Chapters/Old/DrawImage/Program.cs
class Program (line 7) | static class Program
method Main (line 12) | [STAThread]
FILE: Chapters/Old/DrawImage/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: Chapters/Old/DrawImage/Properties/Settings.Designer.cs
class Settings (line 14) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: Chapters/Old/KeyLogger/Gma.UserActivityMonitor/GlobalEventProvider.cs
class GlobalEventProvider (line 11) | public class GlobalEventProvider : Component
method HookManager_MouseMove (line 53) | void HookManager_MouseMove(object sender, MouseEventArgs e)
method HookManager_MouseClick (line 86) | void HookManager_MouseClick(object sender, MouseEventArgs e)
method HookManager_MouseDown (line 120) | void HookManager_MouseDown(object sender, MouseEventArgs e)
method HookManager_MouseUp (line 155) | void HookManager_MouseUp(object sender, MouseEventArgs e)
method HookManager_MouseDoubleClick (line 189) | void HookManager_MouseDoubleClick(object sender, MouseEventArgs e)
method HookManager_MouseMoveExt (line 228) | void HookManager_MouseMoveExt(object sender, MouseEventExtArgs e)
method HookManager_MouseClickExt (line 266) | void HookManager_MouseClickExt(object sender, MouseEventExtArgs e)
method HookManager_KeyPress (line 317) | void HookManager_KeyPress(object sender, KeyPressEventArgs e)
method HookManager_KeyUp (line 350) | private void HookManager_KeyUp(object sender, KeyEventArgs e)
method HookManager_KeyDown (line 383) | private void HookManager_KeyDown(object sender, KeyEventArgs e)
FILE: Chapters/Old/KeyLogger/Gma.UserActivityMonitor/HookManager.Callbacks.cs
class HookManager (line 9) | public static partial class HookManager
method MouseHookProc (line 86) | private static int MouseHookProc(int nCode, int wParam, IntPtr lParam)
method EnsureSubscribedToGlobalMouseEvents (line 214) | private static void EnsureSubscribedToGlobalMouseEvents()
method TryUnsubscribeFromGlobalMouseEvents (line 241) | private static void TryUnsubscribeFromGlobalMouseEvents()
method ForceUnsunscribeFromGlobalMouseEvents (line 256) | private static void ForceUnsunscribeFromGlobalMouseEvents()
method KeyboardHookProc (line 319) | private static int KeyboardHookProc(int nCode, Int32 wParam, IntPtr lP...
method EnsureSubscribedToGlobalKeyboardEvents (line 379) | private static void EnsureSubscribedToGlobalKeyboardEvents()
method TryUnsubscribeFromGlobalKeyboardEvents (line 406) | private static void TryUnsubscribeFromGlobalKeyboardEvents()
method ForceUnsunscribeFromGlobalKeyboardEvents (line 417) | private static void ForceUnsunscribeFromGlobalKeyboardEvents()
FILE: Chapters/Old/KeyLogger/Gma.UserActivityMonitor/HookManager.Structures.cs
class HookManager (line 5) | public static partial class HookManager {
type Point (line 12) | [StructLayout(LayoutKind.Sequential)]
type MouseLLHookStruct (line 27) | [StructLayout(LayoutKind.Sequential)]
type KeyboardHookStruct (line 72) | [StructLayout(LayoutKind.Sequential)]
FILE: Chapters/Old/KeyLogger/Gma.UserActivityMonitor/HookManager.Windows.cs
class HookManager (line 6) | public static partial class HookManager
method CallNextHookEx (line 151) | [DllImport("user32.dll", CharSet = CharSet.Auto,
method SetWindowsHookEx (line 190) | [DllImport("user32.dll", CharSet = CharSet.Auto,
method UnhookWindowsHookEx (line 211) | [DllImport("user32.dll", CharSet = CharSet.Auto,
method GetDoubleClickTime (line 226) | [DllImport("user32")]
method ToAscii (line 267) | [DllImport("user32")]
method GetKeyboardState (line 289) | [DllImport("user32")]
method GetKeyState (line 305) | [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = C...
FILE: Chapters/Old/KeyLogger/Gma.UserActivityMonitor/HookManager.cs
class HookManager (line 10) | public static partial class HookManager
method DoubleClickTimeElapsed (line 215) | private static void DoubleClickTimeElapsed(object sender, EventArgs e)
method OnMouseUp (line 228) | private static void OnMouseUp(object sender, MouseEventArgs e)
FILE: Chapters/Old/KeyLogger/Gma.UserActivityMonitor/MouseEventExtArgs.cs
class MouseEventExtArgs (line 9) | public class MouseEventExtArgs : MouseEventArgs
method MouseEventExtArgs (line 19) | public MouseEventExtArgs(MouseButtons buttons, int clicks, int x, int ...
method MouseEventExtArgs (line 27) | internal MouseEventExtArgs(MouseEventArgs e) : base(e.Button, e.Clicks...
FILE: Chapters/Old/KeyLogger/KeyLogger/App.xaml.cs
class App (line 13) | public partial class App : Application
FILE: Chapters/Old/KeyLogger/KeyLogger/NativeWin32.cs
class Win32 (line 9) | public class Win32
method SendInput (line 15) | public static void SendInput(INPUT[] inputs)
method SendInput (line 31) | public static void SendInput(INPUT input)
method ExtendedKeyFlagW (line 38) | private static dwFlags ExtendedKeyFlagW(wVk key)
method SendInput (line 49) | [DllImport("user32.dll")]
method SendInput (line 52) | [DllImport("user32.dll")]
method GetMessageExtraInfo (line 57) | [DllImport("user32.dll")]
method MapVirtualKey (line 62) | [DllImport("user32.dll")]
method GetForegroundWindow (line 65) | [DllImport("user32.dll")]
method SetForegroundWindow (line 68) | [DllImport("user32.dll")]
method GetWindowThreadProcessId (line 71) | [DllImport("user32.dll")]
method AttachThreadInput (line 74) | [DllImport("user32.dll")]
type dwFlags (line 79) | public enum dwFlags
type type (line 102) | public enum type
type INPUT (line 111) | [StructLayout(LayoutKind.Explicit)]
type MOUSEINPUT (line 126) | [StructLayout(LayoutKind.Explicit)]
type KEYBDINPUT (line 145) | [StructLayout(LayoutKind.Explicit)]
type HARDWAREINPUT (line 162) | [StructLayout(LayoutKind.Explicit)]
type wVk (line 173) | public enum wVk : short
FILE: Chapters/Old/KeyLogger/KeyLogger/Properties/Resources.Designer.cs
class Resources (line 22) | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resource...
method Resources (line 31) | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Mic...
FILE: Chapters/Old/KeyLogger/KeyLogger/Properties/Settings.Designer.cs
class Settings (line 14) | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
FILE: Chapters/Old/KeyLogger/KeyLogger/Window1.xaml.cs
type EventType (line 25) | public enum EventType
type KeyEvent (line 31) | [Serializable]
class Window1 (line 42) | public partial class Window1 : Window
method Window1 (line 44) | public Window1()
method buttonReduce_Click (line 60) | void buttonReduce_Click(object sender, RoutedEventArgs e)
method Dispatch (line 89) | void Dispatch(Action a)
method ReplayThread (line 94) | void ReplayThread()
method Replay (line 137) | void Replay()
method buttonReplay_Click (line 155) | void buttonReplay_Click(object sender, RoutedEventArgs e)
method Serialize (line 177) | void Serialize(Stream stream)
method Deserialize (line 182) | void Deserialize(Stream stream)
method Serialize (line 189) | void Serialize()
method Deserialize (line 208) | void Deserialize()
method buttonLoad_Click (line 227) | void buttonLoad_Click(object sender, RoutedEventArgs e)
method buttonSave_Click (line 232) | void buttonSave_Click(object sender, RoutedEventArgs e)
method buttonClear_Click (line 237) | void buttonClear_Click(object sender, RoutedEventArgs e)
method SwitchRecording (line 250) | void SwitchRecording()
method buttonRecord_Click (line 266) | void buttonRecord_Click(object sender, RoutedEventArgs e)
method ShowHistory (line 274) | void ShowHistory()
method HookManager_KeyDown (line 282) | void HookManager_KeyDown(object sender, System.Windows.Forms.KeyEventA...
method HookManager_KeyUp (line 311) | void HookManager_KeyUp(object sender, System.Windows.Forms.KeyEventArg...
FILE: Chapters/Old/LineArt/Form1.cs
class LineArtForm (line 14) | public class LineArtForm : System.Windows.Forms.Form
method LineArtForm (line 37) | public LineArtForm()
method Dispose (line 58) | protected override void Dispose( bool disposing )
method InitializeComponent (line 75) | private void InitializeComponent()
method Main (line 96) | [STAThread]
method InitializeLineObject (line 113) | private void InitializeLineObject()
method OnPaintBackground (line 142) | protected override void OnPaintBackground(PaintEventArgs e)
method ThreadProc (line 159) | void ThreadProc()
method LineArtForm_Closed (line 213) | private void LineArtForm_Closed(object sender, System.EventArgs e)
method ParameterSetting (line 233) | private void ParameterSetting(object sender, System.EventArgs e)
method ReadParameter (line 255) | private void ReadParameter()
method WriteParameter (line 283) | private void WriteParameter()
FILE: Chapters/Old/LineArt/SettingForm.cs
class SettingForm (line 12) | public class SettingForm : System.Windows.Forms.Form
method SettingForm (line 27) | public SettingForm()
method Dispose (line 35) | protected override void Dispose( bool disposing )
method InitializeComponent (line 52) | private void InitializeComponent()
method buttonOK_Click (line 158) | private void buttonOK_Click(object sender, System.EventArgs e)
method buttonCancel_Click (line 163) | private void buttonCancel_Click(object sender, System.EventArgs e)
FILE: Chapters/Old/SoundLibrary/BitOperation.cs
class BitOperation (line 8) | public class BitOperation
method FloorLog2 (line 15) | public static int FloorLog2(int x)
method CeilLog2 (line 30) | public static int CeilLog2(int x)
method Power2 (line 44) | [System.Obsolete("FloorPower2 に移行")]
method FloorPower2 (line 55) | public static int FloorPower2(int x)
method CeilPower2 (line 71) | public static int CeilPower2(int x)
method Mask (line 84) | public static int Mask(int n)
method RoundShift (line 95) | public static int RoundShift(long val, int shift)
FILE: Chapters/Old/SoundLibrary/Command/CommandParser.cs
class CommandParser (line 21) | public class CommandParser
class Tuple (line 25) | class Tuple
method Tuple (line 30) | public Tuple(CommandHandlar ope, string help)
method CommandParser (line 56) | public CommandParser() : this("> ", @"\s+", @"\s+", @"\s*>\s*")
method CommandParser (line 67) | public CommandParser(string prompt, string delim1, string delim2, stri...
method Parse (line 89) | public bool Parse()
method Parse (line 100) | public bool Parse(TextReader sin)
method Parse (line 111) | public bool Parse(TextReader sin, TextWriter sout)
method Parse (line 157) | bool Parse(string commandLine, TextWriter sout)
method Add (line 203) | public void Add(string command, CommandHandlar ope)
method Add (line 214) | public void Add(string command, CommandHandlar ope, string help)
method Remove (line 223) | public void Remove(string command)
method SetNotFound (line 246) | void SetNotFound(CommandHandlar notFound)
method DefaultNotFound (line 257) | bool DefaultNotFound(string[] args, TextWriter sout)
method ShowHelp (line 271) | void ShowHelp(TextWriter sout)
method ShowHelp (line 290) | bool ShowHelp(string[] command, TextWriter sout)
method Quit (line 309) | static bool Quit(string[] args, TextWriter sout)
method Source (line 320) | bool Source(string[] args, TextWriter sout)
FILE: Chapters/Old/SoundLibrary/Data/DataGenerator.cs
type IDataGenerator (line 8) | public interface IDataGenerator : ICloneable
method Next (line 14) | double Next();
method Reset (line 19) | void Reset();
FILE: Chapters/Old/SoundLibrary/Data/FourierSeriesGenerator.cs
class FourierSeriesGenerator (line 8) | public class FourierSeriesGenerator : IDataGenerator
method FourierSeriesGenerator (line 15) | public FourierSeriesGenerator(double[] gain, double[] phase)
method Next (line 21) | public double Next()
method Reset (line 30) | public void Reset()
method Clone (line 35) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Data/ImpulseGenerator.cs
class ImpulseGenerator (line 8) | public class ImpulseGenerator : IDataGenerator
method ImpulseGenerator (line 12) | public ImpulseGenerator () : this(short.MaxValue){}
method ImpulseGenerator (line 13) | public ImpulseGenerator (double gain){this.gain = gain;}
method Next (line 14) | public double Next()
method Reset (line 24) | public void Reset()
method Clone (line 29) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Data/MixedDataGenerator.cs
class MixedDataGenerator (line 8) | public class MixedDataGenerator : IDataGenerator
method MixedDataGenerator (line 12) | public MixedDataGenerator(params IDataGenerator[] generators)
method Next (line 17) | public double Next()
method Reset (line 27) | public void Reset()
method Clone (line 33) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Data/RampGenerator.cs
class RampGenerator (line 8) | public class RampGenerator : IDataGenerator
method RampGenerator (line 12) | public RampGenerator() : this(1) {}
method RampGenerator (line 13) | public RampGenerator(double gain){this.gain = gain;}
method Next (line 15) | public double Next()
method Reset (line 22) | public void Reset()
method Clone (line 27) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Data/RandomGenerator.cs
class RandomGenerator (line 8) | public class RandomGenerator : IDataGenerator
method RandomGenerator (line 13) | public RandomGenerator(){this.rnd = new Random();}
method RandomGenerator (line 14) | public RandomGenerator(int seed)
method Next (line 20) | public double Next()
method Reset (line 26) | public void Reset()
method Clone (line 31) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Data/SinusoidGenerator.cs
class SinusoidGenerator (line 8) | public class SinusoidGenerator : IDataGenerator
method SinusoidGenerator (line 15) | public SinusoidGenerator() : this(0) {}
method SinusoidGenerator (line 16) | public SinusoidGenerator(double phase) : this((ushort)short.MaxValue, ...
method SinusoidGenerator (line 17) | public SinusoidGenerator(double gain, double phase) : this(Math.PI / 2...
method SinusoidGenerator (line 25) | public SinusoidGenerator(double w, double gain, double phase)
method Next (line 32) | public double Next()
method Reset (line 39) | public void Reset()
method Clone (line 44) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Data/StepGenerator.cs
class StepGenerator (line 8) | public class StepGenerator : IDataGenerator
method StepGenerator (line 12) | public StepGenerator() : this(short.MaxValue / 100){}
method StepGenerator (line 13) | public StepGenerator(double gain){this.gain = gain;}
method Next (line 15) | public double Next()
method Reset (line 25) | public void Reset()
method Clone (line 30) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Data/TspGenerator.cs
class TspGenerator (line 8) | public class TspGenerator : IDataGenerator
method TspGenerator (line 15) | public TspGenerator() : this(512, short.MaxValue, 300){}
method TspGenerator (line 17) | public TspGenerator(int taps, double gain, double m)
method TspGenerator (line 24) | TspGenerator(TspGenerator x)
method Next (line 31) | public double Next()
method Reset (line 43) | public void Reset()
method Clone (line 48) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Data/WhiteNoiseGenerator.cs
class WhiteNoiseGenerator (line 9) | public class WhiteNoiseGenerator : IDataGenerator
method WhiteNoiseGenerator (line 19) | public WhiteNoiseGenerator() : this(0, 1, 0){}
method WhiteNoiseGenerator (line 26) | public WhiteNoiseGenerator(double mean, double sigma, int seed)
method Next (line 34) | public double Next()
method Reset (line 41) | public void Reset()
method Clone (line 46) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Filter/BandPass/BandPassFir.cs
type IWindow (line 13) | public interface IWindow
method Get (line 20) | double Get(double i);
type FirFilterType (line 31) | public enum FirFilterType
type WindowType (line 39) | public enum WindowType
class FirCommon (line 51) | public class FirCommon
method GetLowPassFilter (line 53) | public static IFirFilter GetLowPassFilter(int taps, double w, WindowTy...
method GetBandPassFilter (line 58) | public static IFirFilter GetBandPassFilter(int taps, double wl, double...
method GetHighPassFilter (line 63) | public static IFirFilter GetHighPassFilter(int taps, double w, WindowT...
method CalcLinearBPFCoefficient (line 68) | public static IFirFilter CalcLinearBPFCoefficient(FirFilterType type, ...
method CalcOddLinearBPFCoefficient (line 95) | public static void CalcOddLinearBPFCoefficient(FirFilterType type, dou...
method CalcEvenLinearBPFCoefficient (line 139) | public static void CalcEvenLinearBPFCoefficient(FirFilterType type, do...
method Constant1 (line 178) | public static double Constant1(double i)
method GetWindow (line 183) | public static WindowFunction GetWindow(WindowType type, int order)
class LowPassFir (line 204) | public class LowPassFir : OddLinearFir
method LowPassFir (line 211) | public LowPassFir(int n, double w) : this(n, w, new WindowFunction(Fir...
method LowPassFir (line 219) | public LowPassFir(int n, double w, IWindow window) : this(n, w, new Wi...
method LowPassFir (line 227) | public LowPassFir(int n, double w, WindowFunction window) : base(n)
method SetParameter (line 237) | public void SetParameter(double w, WindowFunction window)
class HighPassFir (line 246) | public class HighPassFir : OddLinearFir
method HighPassFir (line 253) | public HighPassFir(int n, double w) : this(n, w, new WindowFunction(Fi...
method HighPassFir (line 261) | public HighPassFir(int n, double w, IWindow window) : this(n, w, new W...
method HighPassFir (line 269) | public HighPassFir(int n, double w, WindowFunction window) : base(n)
method SetParameter (line 279) | public void SetParameter(double w, WindowFunction window)
class BandPassFir (line 288) | public class BandPassFir : OddLinearFir
method BandPassFir (line 296) | public BandPassFir(int n, double wl, double wh) : this(n, wl, wh, new ...
method BandPassFir (line 305) | public BandPassFir(int n, double wl, double wh, IWindow window) : this...
method BandPassFir (line 314) | public BandPassFir(int n, double wl, double wh, WindowFunction window)...
method SetParameter (line 325) | public void SetParameter(double wl, double wh, WindowFunction window)
class Hanning (line 336) | public class Hanning : IWindow
method Hanning (line 339) | public Hanning(int order){this.order = order;}
method Get (line 341) | public double Get(double i)
class Hamming (line 356) | public class Hamming : IWindow
method Hamming (line 359) | public Hamming(int order){this.order = order;}
method Get (line 361) | public double Get(double i)
class Blackman (line 376) | public class Blackman : IWindow
method Blackman (line 379) | public Blackman(int order){this.order = order;}
method Get (line 381) | public double Get(double i)
class Keiser (line 394) | public class Keiser : IWindow
method I0 (line 399) | static double I0(double x)
method Pow2 (line 412) | static double Pow2(double x){return x * x;}
method Keiser (line 417) | public Keiser(int order, double attenuate)
method Get (line 430) | public double Get(double i)
class Rectangular (line 446) | public class Rectangular : IWindow
method Get (line 448) | public double Get(double i)
FILE: Chapters/Old/SoundLibrary/Filter/CircularBuffer.cs
class CircularBuffer (line 13) | public class CircularBuffer : IEnumerable
method CircularBuffer (line 23) | public CircularBuffer(int len)
method PushBack (line 42) | public void PushBack(double x)
method PushFront (line 53) | public void PushFront(double x)
method GetEnumerator (line 80) | public IEnumerator GetEnumerator()
method Resize (line 89) | public void Resize(int length)
method CircularBuffer (line 118) | public CircularBuffer(int len)
method PushBack (line 136) | public void PushBack(double x)
method PushFront (line 149) | public void PushFront(double x)
method GetEnumerator (line 178) | public IEnumerator GetEnumerator()
method Resize (line 187) | public void Resize(int length)
method Clear (line 202) | public void Clear()
method Mac (line 216) | public double Mac(double[] coef)
method Mac (line 234) | public double Mac(int offset, double[] coef)
class CircularBuffer (line 110) | public class CircularBuffer : IEnumerable
method CircularBuffer (line 23) | public CircularBuffer(int len)
method PushBack (line 42) | public void PushBack(double x)
method PushFront (line 53) | public void PushFront(double x)
method GetEnumerator (line 80) | public IEnumerator GetEnumerator()
method Resize (line 89) | public void Resize(int length)
method CircularBuffer (line 118) | public CircularBuffer(int len)
method PushBack (line 136) | public void PushBack(double x)
method PushFront (line 149) | public void PushFront(double x)
method GetEnumerator (line 178) | public IEnumerator GetEnumerator()
method Resize (line 187) | public void Resize(int length)
method Clear (line 202) | public void Clear()
method Mac (line 216) | public double Mac(double[] coef)
method Mac (line 234) | public double Mac(int offset, double[] coef)
FILE: Chapters/Old/SoundLibrary/Filter/Connector.cs
class SerialConnector (line 8) | public class SerialConnector : IFilter
method SerialConnector (line 12) | public SerialConnector(params IFilter[] filters)
method GetValue (line 19) | public double GetValue(double x)
method Clear (line 26) | public void Clear()
method Clone (line 32) | public object Clone()
class PallarelConnector (line 47) | public class PallarelConnector : IFilter
method PallarelConnector (line 51) | public PallarelConnector(params IFilter[] filters)
method GetValue (line 58) | public double GetValue(double x)
method Clear (line 66) | public void Clear()
method Clone (line 72) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Filter/Delay/Delay.cs
class Delay (line 8) | public class Delay : IDelay
method Delay (line 16) | public Delay(int taps)
method GetValue (line 52) | public double GetValue(double x)
method Clear (line 65) | public void Clear()
method Clone (line 79) | public object Clone()
method GetValue (line 99) | public double GetValue()
method Push (line 107) | public void Push(double x)
method GetBufferValue (line 112) | public double GetBufferValue(int n)
FILE: Chapters/Old/SoundLibrary/Filter/Delay/FractionalDelay.cs
class FractionalDelay (line 8) | public class FractionalDelay : IDelay
method FractionalDelay (line 19) | public FractionalDelay(double time) : this(time, 4){}
method FractionalDelay (line 26) | public FractionalDelay(double time, int firLength)
method GetValue (line 51) | public double GetValue(double x)
method Push (line 76) | public void Push(double x)
method GetValue (line 88) | public double GetValue()
method GetBufferValue (line 107) | public double GetBufferValue(int n)
method Clear (line 118) | public void Clear()
method Clone (line 209) | public object Clone()
method GetFractionalDelayCoef (line 222) | static double[] GetFractionalDelayCoef(double delay, int length)
method GetFractionalDelayCoef (line 229) | static void GetFractionalDelayCoef(double delay, int length, double[] ...
FILE: Chapters/Old/SoundLibrary/Filter/Delay/IDelay.cs
type IDelay (line 8) | public interface IDelay : IFilter
method GetValue (line 23) | double GetValue();
method GetBufferValue (line 31) | double GetBufferValue(int n);
method Push (line 37) | void Push(double x);
FILE: Chapters/Old/SoundLibrary/Filter/Equalizer/ButterworthFilterDesigner.cs
class ButterworthFilterDesigner (line 8) | public class ButterworthFilterDesigner : FilterDesigner
method ButterworthFilterDesigner (line 12) | public ButterworthFilterDesigner(int order) : base(order)
method GetZeroPole (line 23) | public override void GetZeroPole(ZeroPole[] roots)
method GetAnalogPrototype2 (line 46) | public void GetAnalogPrototype2(Coefficient[] coefs)
method GetDigitalLPF2 (line 77) | public void GetDigitalLPF2(double w, Coefficient[] coefs)
FILE: Chapters/Old/SoundLibrary/Filter/Equalizer/ChebyshevFilterDesigner.cs
class ChebyshevFilterDesigner (line 8) | public class ChebyshevFilterDesigner : FilterDesigner
method ChebyshevFilterDesigner (line 25) | public ChebyshevFilterDesigner(int order, double epsilon) : this(order...
method ChebyshevFilterDesigner (line 27) | public ChebyshevFilterDesigner(int order, double epsilon, bool kind) :...
method GetZeroPole (line 70) | public override void GetZeroPole(ZeroPole[] roots)
method GetAnalogPrototype (line 95) | public override void GetAnalogPrototype(Coefficient[] coefs)
FILE: Chapters/Old/SoundLibrary/Filter/Equalizer/EllipticFilterDesigner.cs
class EllipticFilterDesigner (line 10) | public class EllipticFilterDesigner : FilterDesigner
method EllipticFilterDesigner (line 27) | public EllipticFilterDesigner(int order, double rp, double rs) : base(...
method SetParameter (line 40) | public void SetParameter(double rp, double rs)
method GetZeroPole (line 67) | public override void GetZeroPole(ZeroPole[] roots)
method GetAnalogPrototype (line 117) | public override void GetAnalogPrototype(Coefficient[] coefs)
FILE: Chapters/Old/SoundLibrary/Filter/Equalizer/FilterDesigner.cs
class FilterDesigner (line 22) | public abstract class FilterDesigner
method FilterDesigner (line 31) | protected FilterDesigner() : this(0) {}
method FilterDesigner (line 32) | protected FilterDesigner(int order){this.order = order;}
method GetZeroPole (line 61) | public abstract void GetZeroPole(ZeroPole[] roots);
method GetZeroPole (line 71) | public virtual ZeroPole[] GetZeroPole()
method GetAnalogPrototype (line 87) | public Coefficient[] GetAnalogPrototype()
method GetAnalogPrototype (line 101) | public virtual void GetAnalogPrototype(Coefficient[] coefs)
method GetDigitalLPF (line 115) | public Coefficient[] GetDigitalLPF(double w)
method GetDigitalLPF (line 130) | public virtual void GetDigitalLPF(double w, Coefficient[] coefs)
method GetLPF (line 144) | public virtual ParametricEqualizer.Parameter[] GetLPF(double w)
method RootToAnalogPrototype (line 157) | public static void RootToAnalogPrototype(Root root, double[] c)
method ZeroPoleToAnalogPrototype (line 184) | public static void ZeroPoleToAnalogPrototype(ZeroPole zeropole, Coeffi...
method ZeroPoleToAnalogPrototype (line 190) | public static void ZeroPoleToAnalogPrototype(ZeroPole[] roots, Coeffic...
method BilinearTransform (line 214) | public static void BilinearTransform(
method BilinearTransform (line 240) | public static void BilinearTransform(
method BilinearTransform (line 256) | public static void BilinearTransform(Coefficient ap, Coefficient digit...
method BilinearTransform (line 294) | public static void BilinearTransform(Coefficient[] ap, Coefficient[] d...
method GetSinCos (line 305) | protected static void GetSinCos(double w, out double sin, out double cos)
method ToPeqCoefficient (line 314) | public static void ToPeqCoefficient(Coefficient digital, ParametricEqu...
method ToPeqCoefficient (line 326) | public static void ToPeqCoefficient(Coefficient[] digital, ParametricE...
method ZInv (line 343) | public static Function ZInv(Function w)
method DigitalS (line 358) | public static Function DigitalS(Function w, Function ws)
method DigitalS (line 374) | public static Function DigitalS(Function w, double ws)
method DigitalS (line 389) | public static Function DigitalS(Function w)
method GetTransferFunction (line 402) | public Function GetTransferFunction(Function s)
method GetTransferFunction (line 423) | public Function GetTransferFunction(Function w, Function ws)
FILE: Chapters/Old/SoundLibrary/Filter/Equalizer/ParametricEqualizer.cs
class Parameter (line 19) | public class Parameter
class Tuple (line 31) | private class Tuple
method Tuple (line 37) | public Tuple(Parameter parameter)
method Clear (line 43) | public void Clear()
method ParametricEqualizer (line 59) | public ParametricEqualizer()
method ParametricEqualizer (line 65) | public ParametricEqualizer(params Parameter[] parameters) : this()
method ParametricEqualizer (line 70) | private ParametricEqualizer(ArrayList filters)
method Add (line 84) | public void Add(Parameter parameter)
method Add (line 90) | public void Add (params Parameter[] parameters)
method RemoveAt (line 98) | public void RemoveAt(int i)
method UpdateGain (line 121) | public void UpdateGain()
method GetValue (line 133) | public double GetValue(double x)
method GetValue (line 145) | static double GetValue(Tuple filter, double x)
method Clear (line 157) | public void Clear()
method Clone (line 168) | public ParametricEqualizer Clone()
method Clone (line 173) | object ICloneable.Clone()
method BilinearTransform (line 196) | static void BilinearTransform(ref double a0, ref double a1, double sin, ...
method BilinearTransform (line 219) | static void BilinearTransform(ref double a0, ref double a1, ref double a...
method BilinearTransformHPF (line 235) | static void BilinearTransformHPF(ref double a0, ref double a1, ref doubl...
method BilinearTransformHPF (line 244) | static void BilinearTransformHPF(ref double a0, ref double a1, double si...
method Swap (line 250) | static void Swap(ref double a, ref double b)
method GetLowPass (line 271) | public static Parameter GetLowPass(double w, double q)
method GetHighPass (line 300) | public static Parameter GetHighPass(double w, double q)
method GetPeaking (line 329) | public static Parameter GetPeaking(double w, double q, double g)
method GetPeaking (line 374) | public static void GetPeaking(double w, double q, double g, Parameter pa...
FILE: Chapters/Old/SoundLibrary/Filter/Equalizer/Type.cs
class Root (line 20) | public class Root : ICloneable
type Type (line 27) | public enum Type
method Root (line 45) | public Root() : this(Type.Complex, 0, 0) {}
method Root (line 47) | public Root(Type type, double a, double b)
method GetRoots (line 63) | public int GetRoots(out Complex x1, out Complex x2)
method Clone (line 89) | public Root Clone()
method Clone (line 94) | object ICloneable.Clone()
class ZeroPole (line 109) | public class ZeroPole : ICloneable
method ZeroPole (line 119) | public ZeroPole() : this(new Root(), new Root()) {}
method ZeroPole (line 121) | public ZeroPole(Root zero, Root pole)
method Clone (line 130) | public ZeroPole Clone()
method Clone (line 135) | object ICloneable.Clone()
class Coefficient (line 153) | public class Coefficient : ICloneable
method Coefficient (line 163) | public Coefficient() : this(1, 0, 0, 1, 0, 0) {}
method Coefficient (line 165) | public Coefficient(double a0, double a1, double a2, double b0, double ...
method Clone (line 178) | public Coefficient Clone()
method Clone (line 185) | object ICloneable.Clone()
FILE: Chapters/Old/SoundLibrary/Filter/Filter.cs
type IFilter (line 8) | public interface IFilter : ICloneable
method GetValue (line 15) | double GetValue(double x);
method Clear (line 20) | void Clear();
FILE: Chapters/Old/SoundLibrary/Filter/Fir.cs
type IFirCoefficient (line 8) | public interface IFirCoefficient : System.Collections.IEnumerable
type IFirFilter (line 24) | public interface IFirFilter : IFilter
class FirFilter (line 35) | public class FirFilter : IFirFilter
method FirFilter (line 43) | public FirFilter() : this(null){}
method FirFilter (line 49) | public FirFilter(int taps) : this(new double[taps]){}
method FirFilter (line 55) | public FirFilter(double[] coef)
method GetValue (line 74) | public double GetValue(double x)
method Clear (line 89) | public void Clear()
class CoefficientProxy (line 99) | public class CoefficientProxy : IFirCoefficient
method CoefficientProxy (line 103) | public CoefficientProxy(double[] x){this.x = x;}
class Enumerator (line 128) | internal class Enumerator : System.Collections.IEnumerator
method Enumerator (line 133) | public Enumerator(IFirCoefficient x){this.x = x; this.current = -1;}
method Reset (line 137) | public void Reset(){this.current = -1;}
method MoveNext (line 141) | public bool MoveNext()
method GetEnumerator (line 150) | public System.Collections.IEnumerator GetEnumerator()
method Clone (line 187) | public object Clone()
class OddLinearFir (line 199) | public class OddLinearFir : IFirFilter
method OddLinearFir (line 207) | public OddLinearFir() : this(null){}
method OddLinearFir (line 213) | public OddLinearFir(int n) : this(new double[n]){}
method OddLinearFir (line 219) | public OddLinearFir(double[] coef)
method GetValue (line 238) | public double GetValue(double x)
method Clear (line 254) | public void Clear()
class CoefficientProxy (line 264) | public class CoefficientProxy : IFirCoefficient
method CoefficientProxy (line 268) | public CoefficientProxy(double[] x){this.x = x;}
method GetEnumerator (line 299) | public System.Collections.IEnumerator GetEnumerator()
method Clone (line 336) | public object Clone()
class EvenLinearFir (line 348) | public class EvenLinearFir : IFirFilter
method EvenLinearFir (line 356) | public EvenLinearFir() : this(null){}
method EvenLinearFir (line 362) | public EvenLinearFir(int n) : this(new double[n]){}
method EvenLinearFir (line 368) | public EvenLinearFir(double[] coef)
method GetValue (line 387) | public double GetValue(double x)
method Clear (line 403) | public void Clear()
class CoefficientProxy (line 413) | public class CoefficientProxy : IFirCoefficient
method CoefficientProxy (line 417) | public CoefficientProxy(double[] x){this.x = x;}
method GetEnumerator (line 448) | public System.Collections.IEnumerator GetEnumerator()
method Clone (line 485) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Filter/FractionalCombFilter.cs
class FractionalCombFilter (line 8) | [Obsolete("SoundLibrary.Filter.Misc.CombFilter を使ってください。")]
method FractionalCombFilter (line 23) | public FractionalCombFilter(double direct, double effect, double feedb...
method FractionalCombFilter (line 35) | public FractionalCombFilter(double direct, double effect, double feedb...
method SetParameter (line 54) | public void SetParameter(double direct, double effect, double feedback...
method GetValue (line 109) | public double GetValue(double x)
method Clear (line 120) | public void Clear()
method Clone (line 125) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Filter/Iir.cs
class IirFilter (line 8) | public class IirFilter : IFilter
method IirFilter (line 17) | public IirFilter() : this(null, null) {}
method IirFilter (line 23) | public IirFilter(int order) : this(new double[order], new double[order...
method IirFilter (line 37) | public IirFilter(double[] a, double[] b)
method GetValue (line 59) | public double GetValue(double x)
method Clear (line 79) | public void Clear()
method SetCoefficient (line 92) | public void SetCoefficient(double[] a, double[]b)
method Clone (line 126) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Filter/Misc/AllPassFilter.cs
class AllPassFilter (line 12) | public class AllPassFilter : IFilter
method AllPassFilter (line 24) | public AllPassFilter(double feedback, double delay)
method AllPassFilter (line 34) | public AllPassFilter(double feedback, double delay, int firLength)
method SetParameter (line 49) | public void SetParameter(double feedback, double delay)
method GetValue (line 84) | public double GetValue(double x)
method Clear (line 96) | public void Clear()
method Clone (line 101) | public object Clone()
method GetBufferValue (line 106) | public double GetBufferValue(int n)
FILE: Chapters/Old/SoundLibrary/Filter/Misc/Amplifier.cs
class Amplifier (line 8) | public class Amplifier : IFilter
method Amplifier (line 12) | public Amplifier(double gain)
method GetValue (line 22) | public double GetValue(double x)
method Clear (line 30) | public void Clear()
method Clone (line 34) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Filter/Misc/CombFilter.cs
class CombFilter (line 12) | public class CombFilter : IFilter
method CombFilter (line 26) | public CombFilter(double direct, double effect, double feedback, doubl...
method CombFilter (line 31) | public CombFilter(double direct, double effect, double feedback, doubl...
method SetParameter (line 48) | public void SetParameter(double direct, double effect, double feedback...
method GetValue (line 102) | public double GetValue(double x)
method Clear (line 113) | public void Clear()
method Clone (line 118) | public object Clone()
method GetBufferValue (line 123) | public double GetBufferValue(int n)
FILE: Chapters/Old/SoundLibrary/Filter/Misc/Equalizer.cs
class PeakingEqualizer (line 8) | public class PeakingEqualizer : IirFilter
method PeakingEqualizer (line 16) | public PeakingEqualizer(double w, double q, double a) : base(2)
method SetParameter (line 27) | public void SetParameter(double w, double q, double a)
class ShelvingEqualizer (line 120) | public class ShelvingEqualizer : IirFilter
method ShelvingEqualizer (line 127) | public ShelvingEqualizer(double w, double a) : base(1)
method SetParameter (line 137) | public void SetParameter(double w, double a)
FILE: Chapters/Old/SoundLibrary/Filter/Misc/MultiDelay.cs
class MultiDelay (line 8) | public class MultiDelay : IFilter
type Tuple (line 10) | public struct Tuple
method Tuple (line 15) | public Tuple(double gain, int delay)
method MultiDelay (line 24) | public MultiDelay(params Tuple[] filters)
method GetValue (line 44) | public double GetValue(double x)
method Clear (line 56) | public void Clear()
method Clone (line 62) | public object Clone()
FILE: Chapters/Old/SoundLibrary/Filter/Mixer.cs
class Mixer (line 9) | public class Mixer : IFilter
type Tuple (line 11) | public struct Tuple
method Tuple (line 16) | public Tuple(IFilter filter, double gain)
method Mixer (line 24) | public Mixer(params Tuple[] filters)
method GetValue (line 31) | public double GetValue(double x)
method Clear (line 39) | public void Clear()
method Clone (line 45) | public object Clone()
class DelayMixer (line 63) | public class DelayMixer : IFilter
type Tuple (line 65) | public struct Tuple
method Tuple (line 71) | public Tuple(IFilter filter, double gain, int delay)
method DelayMixer (line 81) | public DelayMixer(params Tuple[] filters)
method GetValue (line 96) | public double GetValue(double x)
method Clear (line 105) | public void Clear()
method Clone (line 114) | public object Clone()
FILE: Chapters/Old/SoundLibrary/FilterGenerator/BandPassFir.cs
class LowPassFirGenerator (line 9) | public class LowPassFirGenerator : FilterGenerator
method LowPassFirGenerator (line 16) | public LowPassFirGenerator()
method CheckConstraint (line 42) | public override string CheckConstraint()
method GetFilter (line 54) | public override IFilter GetFilter()
method ToXml (line 59) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 68) | public override void FromXml(XmlElement elem)
class HighPassFirGenerator (line 79) | public class HighPassFirGenerator : FilterGenerator
method HighPassFirGenerator (line 86) | public HighPassFirGenerator()
method CheckConstraint (line 112) | public override string CheckConstraint()
method GetFilter (line 124) | public override IFilter GetFilter()
method ToXml (line 129) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 138) | public override void FromXml(XmlElement elem)
class BandPassFirGenerator (line 149) | public class BandPassFirGenerator : FilterGenerator
method BandPassFirGenerator (line 157) | public BandPassFirGenerator()
method CheckConstraint (line 190) | public override string CheckConstraint()
method GetFilter (line 209) | public override IFilter GetFilter()
method ToXml (line 214) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 224) | public override void FromXml(XmlElement elem)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/Basic.cs
class AmplifierGenerator (line 9) | public class AmplifierGenerator : FilterGenerator
method AmplifierGenerator (line 14) | public AmplifierGenerator()
method CheckConstraint (line 20) | public override string CheckConstraint()
method GetFilter (line 25) | public override IFilter GetFilter()
method ToXml (line 31) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 38) | public override void FromXml(XmlElement elem)
class DelayGenerator (line 53) | public class DelayGenerator : FilterGenerator
method DelayGenerator (line 58) | public DelayGenerator()
method CheckConstraint (line 64) | public override string CheckConstraint()
method GetFilter (line 69) | public override IFilter GetFilter()
method ToXml (line 75) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 82) | public override void FromXml(XmlElement elem)
class MultiDelayGenerator (line 97) | public class MultiDelayGenerator : FilterGenerator
method MultiDelayGenerator (line 103) | public MultiDelayGenerator()
method CheckConstraint (line 112) | public override string CheckConstraint()
method GetFilter (line 117) | public override IFilter GetFilter()
method ToXml (line 130) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 146) | public override void FromXml(XmlElement elem)
method GetGain (line 159) | public double GetGain(int i)
method GetDelay (line 164) | public int GetDelay(int i)
method SetSubfilter (line 169) | public void SetSubfilter(int i, FilterGenerator gen)
method Add (line 179) | public void Add(double gain, int delay)
method Remove (line 184) | public void Remove(int i)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/Comb.cs
class CombFilterGenerator (line 11) | public class CombFilterGenerator : FilterGenerator
method CombFilterGenerator (line 19) | public CombFilterGenerator()
method CheckConstraint (line 52) | public override string CheckConstraint()
method GetFilter (line 57) | public override IFilter GetFilter()
method ToXml (line 62) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 72) | public override void FromXml(XmlElement elem)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/Common.cs
class FilterProperty (line 11) | public class FilterProperty
method FilterProperty (line 17) | internal FilterProperty(string name, object obj)
method Name (line 48) | public string Name()
method Type (line 56) | public Type Type()
class FilterArrayProperty (line 65) | public class FilterArrayProperty
type Tuple (line 67) | public struct Tuple
method Tuple (line 72) | public Tuple(string name, Type type)
method FilterArrayProperty (line 82) | public FilterArrayProperty(params Tuple[] informations)
method Add (line 113) | public void Add(params object[] objs)
method Remove (line 134) | public void Remove(int i)
method Name (line 158) | public string Name(int i)
method Type (line 166) | public Type Type(int i)
class FilterGenerator (line 176) | public abstract class FilterGenerator
method GetArrayProperty (line 240) | public FilterArrayProperty GetArrayProperty(int i)
method GetFilter (line 249) | public abstract IFilter GetFilter();
method CheckConstraint (line 255) | public abstract string CheckConstraint();
method ToXml (line 261) | public abstract void ToXml(XmlWriter xwriter);
method FromXml (line 267) | public abstract void FromXml(XmlElement elem);
method WriteXml (line 273) | public void WriteXml(string filename)
method CreateFromXml (line 287) | public static FilterGenerator CreateFromXml(string filename)
method CreateFromXml (line 300) | public static FilterGenerator CreateFromXml(string filename, Converter...
method CreateFromXml (line 313) | internal static FilterGenerator CreateFromXml(XmlElement elem)
method CreateFromXml (line 323) | internal static FilterGenerator CreateFromXml(XmlElement elem, Convert...
class Util (line 366) | public class Util
method ArrayToString (line 368) | public static string ArrayToString(double[] array)
method StringToArray (line 376) | public static double[] StringToArray(string str)
class Converter (line 390) | public class Converter
method ToPower (line 420) | public double ToPower(string str)
method ToFrequency (line 436) | public double ToFrequency(string str)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/Connector.cs
class SerialConnectorGenerator (line 9) | public class SerialConnectorGenerator : FilterGenerator
method SerialConnectorGenerator (line 14) | public SerialConnectorGenerator()
method CheckConstraint (line 22) | public override string CheckConstraint()
method GetFilter (line 33) | public override IFilter GetFilter()
method ToXml (line 45) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 59) | public override void FromXml(XmlElement elem)
method GetSubfilter (line 71) | public FilterGenerator GetSubfilter(int i)
method SetSubfilter (line 76) | public void SetSubfilter(int i, FilterGenerator gen)
method Add (line 86) | public void Add(FilterGenerator gen)
method Remove (line 91) | public void Remove(int i)
class PallarelConnectorGenerator (line 100) | public class PallarelConnectorGenerator : FilterGenerator
method PallarelConnectorGenerator (line 105) | public PallarelConnectorGenerator()
method CheckConstraint (line 113) | public override string CheckConstraint()
method GetFilter (line 124) | public override IFilter GetFilter()
method ToXml (line 136) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 150) | public override void FromXml(XmlElement elem)
method GetSubfilter (line 162) | public FilterGenerator GetSubfilter(int i)
method SetSubfilter (line 167) | public void SetSubfilter(int i, FilterGenerator gen)
method Add (line 177) | public void Add(FilterGenerator gen)
method Remove (line 182) | public void Remove(int i)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/Equalizer.cs
class ShelvingEqualizerGenerator (line 9) | public class ShelvingEqualizerGenerator : FilterGenerator
method ShelvingEqualizerGenerator (line 16) | public ShelvingEqualizerGenerator()
method CheckConstraint (line 35) | public override string CheckConstraint()
method GetFilter (line 44) | public override IFilter GetFilter()
method ToXml (line 49) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 57) | public override void FromXml(XmlElement elem)
class PeakingEqualizerGenerator (line 67) | public class PeakingEqualizerGenerator : FilterGenerator
method PeakingEqualizerGenerator (line 74) | public PeakingEqualizerGenerator()
method CheckConstraint (line 100) | public override string CheckConstraint()
method GetFilter (line 112) | public override IFilter GetFilter()
method ToXml (line 117) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 126) | public override void FromXml(XmlElement elem)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/FilterGeneratorForm.cs
class FilterGeneratorForm (line 12) | public class FilterGeneratorForm : System.Windows.Forms.Form
method FilterGeneratorForm (line 17) | public FilterGeneratorForm(FilterGenerator fg)
method Dispose (line 38) | protected override void Dispose( bool disposing )
method InitializeComponent (line 55) | private void InitializeComponent()
method c (line 82) | private void c(object sender, System.EventArgs e)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/Fir.cs
class FirFilterGenerator (line 9) | public class FirFilterGenerator : FilterGenerator
method FirFilterGenerator (line 14) | public FirFilterGenerator()
method CheckConstraint (line 30) | public override string CheckConstraint()
method GetFilter (line 35) | public override IFilter GetFilter()
method ToXml (line 40) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 47) | public override void FromXml(XmlElement elem)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/Iir.cs
class IirFilterGenerator (line 9) | public class IirFilterGenerator : FilterGenerator
method IirFilterGenerator (line 15) | public IirFilterGenerator()
method CheckConstraint (line 38) | public override string CheckConstraint()
method GetFilter (line 46) | public override IFilter GetFilter()
method ToXml (line 51) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 59) | public override void FromXml(XmlElement elem)
FILE: Chapters/Old/SoundLibrary/FilterGenerator/Mixer.cs
class MixerGenerator (line 9) | public class MixerGenerator : FilterGenerator
method MixerGenerator (line 15) | public MixerGenerator()
method CheckConstraint (line 24) | public override string CheckConstraint()
method GetFilter (line 35) | public override IFilter GetFilter()
method ToXml (line 49) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 66) | public override void FromXml(XmlElement elem)
method GetSubfilter (line 79) | public FilterGenerator GetSubfilter(int i)
method GetGain (line 84) | public double GetGain(int i)
method SetSubfilter (line 89) | public void SetSubfilter(int i, FilterGenerator gen)
method Add (line 99) | public void Add(FilterGenerator gen, double gain)
method Remove (line 104) | public void Remove(int i)
class DelayMixerGenerator (line 113) | public class DelayMixerGenerator : FilterGenerator
method DelayMixerGenerator (line 120) | public DelayMixerGenerator()
method CheckConstraint (line 130) | public override string CheckConstraint()
method GetFilter (line 141) | public override IFilter GetFilter()
method ToXml (line 156) | public override void ToXml(XmlWriter xwriter)
method FromXml (line 174) | public override void FromXml(XmlElement elem)
method GetSubfilter (line 188) | public FilterGenerator GetSubfilter(int i)
method GetGain (line 193) | public double GetGain(int i)
method GetDelay (line 198) | public int GetDelay(int i)
method SetSubfilter (line 203) | public void SetSubfilter(int i, FilterGenerator gen)
method Add (line 213) | public void Add(FilterGenerator gen, double gain, int delay)
method Remove (line 218) | public void Remove(int i)
FILE: Chapters/Old/SoundLibrary/Mathematics/Array.cs
class Array (line 10) | public class Array
method Reverse (line 17) | public static Type[] Reverse(Type[] x)
method Delay (line 31) | public static void Delay(Type[] x, int delay, Type[] y)
FILE: Chapters/Old/SoundLibrary/Mathematics/Complex.cs
type Complex (line 8) | public struct Complex
method Complex (line 19) | public Complex(double re) : this(re, 0){}
method Complex (line 26) | public Complex(double re, double im)
method FromArg (line 37) | public static Complex FromArg(double arg)
method FromPolar (line 50) | public static Complex FromPolar(double abs, double arg)
method FromPowerPolar (line 63) | public static Complex FromPowerPolar(double power, double arg)
method Complex (line 72) | public Complex(Complex z)
method SetCartesian (line 114) | public void SetCartesian(double re, double im)
method SetPolar (line 128) | public void SetPolar(double abs, double arg)
method SetPowerPolar (line 139) | public void SetPowerPolar(double power, double arg)
method SetArg (line 148) | public void SetArg(double arg)
method Conjugate (line 193) | public Complex Conjugate()
method Invert (line 202) | public Complex Invert()
method Equals (line 359) | public override bool Equals(object obj)
method GetHashCode (line 365) | public override int GetHashCode()
method ToString (line 372) | public override string ToString()
FILE: Chapters/Old/SoundLibrary/Mathematics/ComplexMath.cs
class ComplexMath (line 9) | public class ComplexMath
method ExpI (line 11) | public static Complex ExpI(double y)
method Exp (line 16) | public static Complex Exp(Complex z)
method Log (line 21) | public static Complex Log(Complex z)
method Log10 (line 28) | public static Complex Log10(Complex z)
method Pow (line 33) | public static Complex Pow(Complex a, Complex z)
method Log (line 38) | public static Complex Log(Complex a, Complex z)
method Sin (line 43) | public static Complex Sin(Complex z)
method Cos (line 50) | public static Complex Cos(Complex z)
method Tan (line 57) | public static Complex Tan(Complex z)
method Sinh (line 65) | public static Complex Sinh(Complex z)
method Cosh (line 72) | public static Complex Cosh(Complex z)
method Tanh (line 79) | public static Complex Tanh(Complex z)
method Sqrt (line 93) | public static Complex Sqrt(Complex z)
FILE: Chapters/Old/SoundLibrary/Mathematics/Constant.cs
class Constant (line 8) | public /*static*/ class Constant
FILE: Chapters/Old/SoundLibrary/Mathematics/Continuous/Function.cs
class Function (line 10) | public abstract class Function
FILE: Chapters/Old/SoundLibrary/Mathematics/Continuous/Range.cs
type Range (line 8) | public struct Range
method Range (line 25) | public Range(bool hasMin, bool hasMax, double inf, double sup)
FILE: Chapters/Old/SoundLibrary/Mathematics/Discrete/CircularConvolution.cs
class CircularConvolution (line 11) | public class CircularConvolution : Function
method CircularConvolution (line 16) | public CircularConvolution(Type[] x, Type[] y)
FILE: Chapters/Old/SoundLibrary/Mathematics/Discrete/CircularCorrelation.cs
class CircularCorrelation (line 11) | public class CircularCorrelation : Function
method CircularCorrelation (line 16) | public CircularCorrelation(Type[] x, Type[] y)
FILE: Chapters/Old/SoundLibrary/Mathematics/Discrete/Convolution.cs
class Convolution (line 11) | public class Convolution : Function
method Convolution (line 16) | public Convolution(Type[] x, Type[] y)
FILE: Chapters/Old/SoundLibrary/Mathematics/Discrete/Correlation.cs
class Correlation (line 11) | public class Correlation : Function
method Correlation (line 16) | public Correlation(Type[] x, Type[] y)
FILE: Chapters/Old/SoundLibrary/Mathematics/Discrete/Differential.cs
class Differential (line 10) | public class Differential : Function
method Differential (line 18) | public Differential(Function primitive)
method ForwardDifference (line 65) | public static Type ForwardDifference(Function f, int i)
method BackwardDifference (line 76) | public static Type BackwardDifference(Function f, int i)
method Diffrential3 (line 87) | public static Type Diffrential3(Function f, int i)
method Diffrential5 (line 98) | public static Type Diffrential5(Function f, int i)
method Derive (line 108) | public static Type[] Derive(Type[] x)
FILE: Chapters/Old/SoundLibrary/Mathematics/Discrete/Function.cs
class Function (line 10) | abstract public class Function
method ToArray (line 36) | public virtual Type[] ToArray()
method Argmax (line 52) | public static int Argmax(Function func)
method Argmax (line 64) | public static int Argmax(Function func, int min, int max)
class Array (line 86) | class Array : Function
method Array (line 89) | internal Array(Type[] array){this.array = array;}
method ToArray (line 94) | public override Double[] ToArray(){return this.array;}
method FromArray (line 102) | public static Function FromArray(Type[] array)
FILE: Chapters/Old/SoundLibrary/Mathematics/Elliptic.cs
class Elliptic (line 22) | public class Elliptic
method Phi (line 34) | public static double Phi(double u, double m)
method Sn (line 106) | public static double Sn(double u, double m)
method Cn (line 119) | public static double Cn(double u, double m)
method Dn (line 132) | public static double Dn(double u, double m)
method Jacobi (line 148) | public static void Jacobi(double phi, double m, out double sn, out dou...
method Jacobi (line 172) | public static void Jacobi(double u, double m, out double phi, out doub...
method InverseSn (line 227) | public static double InverseSn(double v, double m)
method Theta (line 248) | public static double Theta(int a, double u, double q)
method ThetaPrime (line 260) | public static double ThetaPrime(int a, double u, double q)
method Q (line 282) | public double Q(double m)
method InverseQ (line 293) | public static double InverseQ(double q)
method K (line 333) | public static double K(double m)
method F (line 376) | public static double F(double phi, double m)
method E (line 442) | public static double E(double m)
method E (line 454) | public static double E(double phi, double m)
method Pi (line 465) | public static double Pi(double n, double m)
method Pi (line 477) | public static double Pi(double phi, double n, double m)
method JacobiZeta (line 489) | public static double JacobiZeta(double phi, double m)
FILE: Chapters/Old/SoundLibrary/Mathematics/Expression/Polynomial.cs
class Polynomial (line 24) | public class Polynomial : ICloneable
method Polynomial (line 36) | public Polynomial() : this(0) {}
method Polynomial (line 42) | public Polynomial(int order) : this(new CoefType[order + 1]) {}
method Polynomial (line 48) | public Polynomial(params CoefType[] coef)
method Value (line 61) | public ValueType Value(DomainType x)
method X (line 204) | public static Polynomial X(int n)
method X (line 215) | public static Polynomial X(int n, CoefType a)
method Chebyshev (line 232) | public static Polynomial Chebyshev(int n)
method Lagrange (line 245) | public static Polynomial Lagrange(DomainType[] x, DomainType[] y)
method Select (line 280) | static void Select(CoefType[] x, CoefType[] y, out CoefType[] a, out C...
method Convolute (line 300) | static CoefType[] Convolute(CoefType[] x, CoefType[] y)
method Equals (line 326) | public override bool Equals(object obj)
method GetHashCode (line 347) | public override int GetHashCode()
method Clone (line 363) | public Polynomial Clone()
method Clone (line 368) | object ICloneable.Clone()
FILE: Chapters/Old/SoundLibrary/Mathematics/Expression/Rational.cs
class Rational (line 14) | public class Rational
method Rational (line 27) | public Rational() : this(0) {}
method Rational (line 33) | public Rational(int nOrder) : this(nOrder, 0) {}
method Rational (line 40) | public Rational(int nOrder, int dOrder) : this(new Polynomial(nOrder),...
method Rational (line 47) | public Rational(Polynomial num, Polynomial denom)
method Value (line 61) | public ValueType Value(DomainType x)
method Elliptic (line 177) | public static Rational Elliptic(int n, double l)
FILE: Chapters/Old/SoundLibrary/Mathematics/Function/Algorithm.cs
class Algorithm (line 11) | public class Algorithm
class Range (line 17) | public class Range
method Range (line 31) | public Range(Variable variable, ValueType min, ValueType max, ValueT...
method Range (line 46) | public Range(Variable variable, ValueType min, ValueType max, int n)
method Argmin (line 62) | public static VariableTable Argmin(Function f, params Range[] rangeList)
method Integral (line 110) | public static Function Integral(Function f, Range range)
FILE: Chapters/Old/SoundLibrary/Mathematics/Function/Binary.cs
class Binary (line 15) | public class Binary : Function
method Binary (line 34) | public Binary(BinaryFunction func, Function inner0, Function inner1)
method GetVariableList (line 44) | public override System.Collections.ArrayList GetVariableList()
method GetValue (line 49) | public override ValueType GetValue(params Parameter[] x)
method Bind (line 54) | public override Function Bind(params Parameter[] x)
method Optimize (line 76) | public override Function Optimize()
method FunctionName (line 89) | protected virtual string FunctionName()
method ToString (line 94) | public override string ToString()
method Equals (line 99) | public override bool Equals(object obj)
method GetHashCode (line 113) | public override int GetHashCode()
method Clone (line 122) | public override Function Clone()
FILE: Chapters/Old/SoundLibrary/Mathematics/Function/CachedFunction.cs
class CachedFunction (line 12) | public class CachedFunction : Function
class Cache (line 16) | class Cache
method Cache (line 20) | public Cache(){this.unique_id = count; ++count;}
method CachedFunction (line 49) | public CachedFunction(Function f) : this(f, new Cache()) {}
method CachedFunction (line 51) | CachedFunction(Function f, Cache c)
method ParameterEquals (line 62) | static bool ParameterEquals(Parameter[] a, Parameter[] b)
method Bind (line 79) | public override Function Bind(params Parameter[] x)
method GetValue (line 92) | public override ValueType GetValue(params Parameter[] x)
method GetComplexPart (line 105) | public override void GetComplexPart(out Function re, out Function im)
method GetVariableList (line 121) | public override System.Collections.ArrayList GetVariableList()
method Optimize (line 133) | public override Function Optimize()
method Clone (line 141) | public override Function Clone()
method ToString (line 149) | public override string ToString()
method Equals (line 158) | public override bool Equals(object obj)
method GetHashCode (line 166) | public override int GetHashCode()
method Exp (line 176) | public static new CachedFunction Exp(Function f)
method Log (line 181) | public static new CachedFunction Log(Function f)
method Log10 (line 186) | public static new CachedFunction Log10(Function f)
method Sin (line 191) | public static new CachedFunction Sin(Function f)
method Cos (line 196) | public static new CachedFunction Cos(Function f)
method Tan (line 201) | public static new CachedFunction Tan(Function f)
method Asin (line 206) | public static new CachedFunction Asin(Function f)
method Acos (line 211) | public static new CachedFunction Acos(Function f)
method Atan (line 216) | public static new CachedFunction Atan(Function f)
method Sinh (line 221) | public static new CachedFunction Sinh(Function f)
method Cosh (line 226) | public static new CachedFunction Cosh(Function f)
method Tanh (line 231) | public static new CachedFunction Tanh(Function f)
method Abs (line 236) | public static new CachedFunction Abs(Function f)
method Sqrt (line 241) | public static new CachedFunction Sqrt(Function f)
method Pow (line 249) | public static new CachedFunction Pow(Function f, Function g)
method Log (line 254) | public static new CachedFunction Log(Function f, Function g)
method Atan2 (line 259) | public static new CachedFunction Atan2(Function f, Function g)
FILE: Chapters/Old/SoundLibrary/Mathematics/Function/ComplexVariable.cs
class ComplexVariable (line 8) | public class ComplexVariable : Variable
method ComplexVariable (line 10) | public ComplexVariable(IComparable id) : base(id) {}
method GetComplexPart (line 30) | public override void GetComplexPart(out Function re, out Function im)
class ImaginaryVariable (line 42) | public class ImaginaryVariable : Variable
method ImaginaryVariable (line 44) | public ImaginaryVariable(IComparable id) : base(id) {}
method GetComplexPart (line 48) | public override void GetComplexPart(out Function re, out Function im)
type ComplexId (line 65) | internal struct ComplexId : IComparable
type ReIm (line 69) | public enum ReIm
method ComplexId (line 83) | public ComplexId(ReIm ri, IComparable id)
method Equals (line 92) | public override bool Equals(object obj)
method GetHashCode (line 98) | public override int GetHashCode()
method ToString (line 103) | public override string ToString()
method CompareTo (line 118) | public int CompareTo(object obj)
FILE: Chapters/Old/SoundLibrary/Mathematics/Function/Constant.cs
class Constant (line 10) | public class Constant : Function
method Constant (line 22) | public Constant() : this(0){}
method Constant (line 24) | public Constant(ValueType val)
method GetComplexPart (line 45) | public override void GetComplexPart(out Function re, out Function im)
method GetVariableList (line 54) | public override System.Collections.ArrayList GetVariableList()
method GetValue (line 59) | public override ValueType GetValue(params Parameter[] x)
method Bind (line 64) | public override Function Bind(params Parameter[] x)
method Negate (line 72) | public override Function Negate()
method Add (line 77) | public override Function Add(Function f)
method Subtract (line 89) | public override Function Subtract(Function f)
method Multiply (line 101) | public override Function Multiply(Function f)
method Divide (line 118) | public override Function Divide(Function f)
method Differentiate (line 133) | public override Function Differentiate(Variable x)
method ToString (line 141) | public override string ToString()
method Equals (line 146) | public override bool Equals(object obj)
method GetHashCode (line 158) | public override int GetHashCode()
method Clone (line 166) | public override Function Clone()
FILE: Chapters/Old/SoundLibrary/Mathematics/Function/Elementary/Exp.cs
class Exp (line 13) | public class Exp : Unary
method Exp (line 15) | public Exp(Function f) : base(new UnaryFunction(Math.Exp), f)
method GetComplexPart (line 19) | protected override void GetComplexPart(Function reX, Function imX, out...
method Clone (line 26) | public override Function Clone()
method Differentiate (line 31) | protected override Function Differentiate()
method FunctionName (line 36) | protected override string FunctionName()
class LogE (line 45) | public class LogE : Unary
method LogE (line 47) | public LogE(Function f) : base(new UnaryFunction(Math.Log), f)
method Clone (line 58) | public override Function Clone()
method Differentiate (line 63) | protected override Function Differentiate()
method FunctionName (line 68) | protected override string FunctionName()
class Log10 (line 77) | public class Log10 : Unary
method Log10 (line 79) | public Log10(Function f) : base(new UnaryFunction(Math.Log10), f)
method Clone (line 83) | public override Function Clone()
method Differentiate (line 88) | protected override Function Differentiate()
method FunctionName (line 94) | protected override string FunctionName()
class Log (line 103) | public class Log : Binary
method Log (line 105) | public Log(Function f1, Function f2) : base(new BinaryFunction(Math.Lo...
method Clone (line 109) | public override Function Clone()
method FunctionName (line 114) | protected override string FunctionName()
class Pow (line 123) | public class Pow : Binary
method Pow (line 125) | public Pow(Function f1, Function f2) : base(new BinaryFunction(Math.Po...
method Clone (line 129) | public override Function Clone()
method FunctionName (line 134) | protected override string FunctionName()
class Sin (line 146) | public class Sin : Unary
method Sin (line 148) | public Sin(Function f) : base(new UnaryFunction(Math.Sin), f)
method GetComplexPart (line 152) | protected override void GetComplexPart(Function reX, Function imX, out...
method Clone (line 158) | public override Function Clone()
method Differentiate (line 163) | protected override Function Differentiate()
method FunctionName (line 168) | protected override string FunctionName()
class Cos (line 177) | public class Cos : Unary
method Cos (line 179) | public Cos(Function f) : base(new UnaryFunction(Math.Cos), f)
method GetComplexPart (line 183) | protected override void GetComplexPart(Function reX, Function imX, out...
method Clone (line 189) | public override Function Clone()
method Differentiate (line 194) | protected override Function Differentiate()
method FunctionName (line 199) | protected override string FunctionName()
class Tan (line 208) | public class Tan : Unary
method Tan (line 210) | public Tan(Function f) : base(new UnaryFunction(Math.Tan), f)
method GetComplexPart (line 214) | protected override void GetComplexPart(Function reX, Function imX, out...
method Clone (line 225) | public override Function Clone()
method Differentiate (line 230) | protected override Function Differentiate()
method FunctionName (line 236) | protected override string FunctionName()
class Sinh (line 248) | public class Sinh : Unary
method Sinh (line 250) | public Sinh(Function f) : base(new UnaryFunction(Math.Sinh), f)
method GetComplexPart (line 254) | protected override void GetComplexPart(Function reX, Function imX, out...
method Clone (line 260) | public override Function Clone()
method Differentiate (line 265) | protected override Function Differentiate()
method FunctionName (line 270) | protected override string FunctionName()
class Cosh (line 279) | public class Cosh : Unary
method Cosh (line 281) | public Cosh(Function f) : base(new UnaryFunction(Math.Cosh), f)
method GetComplexPart (line 285) | protected override void GetComplexPart(Function reX, Function imX, out...
method Clone (line 291) | public override Function Clone()
method Differentiate (line 296) | protected override Function Differentiate()
method FunctionName (line 301) | protected override string FunctionName()
class Tanh (line 310) | public class Tanh : Unary
method Tanh (line 312) | public Tanh(Function f) : base(new UnaryFunction(Math.Tanh), f)
method GetComplexPart (line 316) | protected override void GetComplexPart(Function reX, Function imX, out...
method Clone (line 327) | public override Function Clone()
method Differentiate (line 332) | protected override Function Differentiate()
method FunctionName (line 338) | protected override string FunctionName()
class Sqrt (line 350) | public class Sqrt : Unary
method Sqrt (line 352) | public Sqrt(Function f) : base(new UnaryFunction(Math.Sqrt), f)
method Clone (line 356) | public override Function Clone()
method Differentiate (line 361) | protected override Function Differentiate()
method FunctionName (line 366) | protected override string FunctionName()
FILE: Chapters/Old/SoundLibrary/Mathematics/Function/Elementary/GeneralPolynomial.cs
class GeneralPolynomial (line 13) | public class GeneralPolynomial : Function
method GeneralPolynomial (line 23) | public GeneralPolynomial(Function f) : this(f, 0.0) {}
method GeneralPolynomial (line 25) | public GeneralPolynomial(Function f, int order) : this(f, new CoefType...
method GeneralPolynomial (line 27) | public GeneralPolynomial(Function f, params CoefType[] coef) : this(f,...
method GeneralPolynomial (line 29) | public GeneralPolynomial(Function f, Poly p)
method GetVariableList (line 38) | public override System.Collections.ArrayList GetVariableList()
method GetValue (line 50) | public override ValueType GetValue(params Parameter[] x)
method Bind (line 57) | public override Function Bind(params Parameter[] x)
method Negate (line 87) | public override Function Negate()
method Add (line 92) | public override Function Add(Function f)
method Subtract (line 107) | public override Function Subtract(Function f)
method Multiply (line 120) | public override Function Multiply(Function f)
method Differentiate (line 136) | public override Function Differentiate(Variable x)
method DifferentiateCoef (line 149) | Function DifferentiateCoef(Variable x)
method Differentiate (line 166) | Function Differentiate()
method Optimize (line 186) | public override Function Optimize()
method ToString (line 216) | public override string ToString()
method Equals (line 242) | public override bool Equals(object obj)
method GetHashCode (line 254) | public override int GetHashCode()
method Clone (line 262) | public override Function Clone()
class Polynomial (line 287) | public class Polynomial : ICloneable
method Polynomial (line 299) | public Polynomial() : this(0) {}
method Polynomial (line 305) | public Polynomial(int order) : this(new CoefType[order + 1]) {}
method Polynomial (line 311) | public Polynomial(params CoefType[] coef)
method Value (line 324) | public ValueType Value(DomainType x)
method X (line 467) | public static Polynomial X(int n)
method X (line 478) | public static Polynomial X(int n, CoefType a)
method Chebyshev (line 495) | public static Polynomial Chebyshev(int n)
method Lagrange (line 508) | public static Polynomial Lagrange(DomainType[] x, DomainType[] y)
method Select (line 543) | static void Select(CoefType[] x, CoefType[] y, out CoefType[] a, out C...
method Convolute (line 563) | static CoefType[] Convolute(CoefType[] x, CoefType[] y)
method Equals (line 589) | public override bool Equals(object obj)
method GetHashCode (line 610) | public override int GetHashCode()
method Clone (line 626) | public Polynomial Clone()
method Clone (line 631) | object ICloneable.Clone()
FILE: Chapters/Old/SoundLibrary/Mathematics/Function/Elementary/Polynomial.cs
class Polynomial (line 13) | public class Polynomial : Unary
method Polynomial (line 22) | public Polynomial(Function f) : this(f, 0.0) {}
method Polynomial (line 24) | public Polynomial(Function f, int order) : this(f, new CoefType[order ...
method Polynomial (line 26) | public Polynomial(Function f, params CoefType[] coef) : this(f, new Po...
method Polynomial (line 28) | public Polynomial(Function f, Poly p) : base(null, f)
method GetComplexPart (line 37) | protected override void GetComplexPart(Function reX, Function imX, out...
method Negate (line 80) | public override Function Negate()
method Add (line 85) | public override Function Add(Function f)
method Subtract (line 108) | public override Function Subtract(Function f)
method Multiply (line 121) | public override Function Multiply(Function f)
method Differentiate (line 148) | protected override Funct
Copy disabled (too large)
Download .json
Condensed preview — 3510 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (11,487K chars).
[
{
"path": ".editorconfig",
"chars": 953,
"preview": "root = true\n\n[*.{cs,vb}]\ncharset = utf-8\nend_of_line = lf\ncsharp_style_namespace_declarations=file_scoped:suggestion\n\ndo"
},
{
"path": ".gitattributes",
"chars": 2657,
"preview": "###############################################################################\n# Set default behavior to automatically "
},
{
"path": ".github/FUNDING.yml",
"chars": 648,
"preview": "# These are supported funding model platforms\n\ngithub: ufcpp\n#patreon: # Replace with a single Patreon username\n#open_co"
},
{
"path": ".gitignore",
"chars": 2693,
"preview": "## Ignore Visual Studio temporary files, build results, and\n## files generated by popular Visual Studio add-ons.\n\n# User"
},
{
"path": "BreakingChanges/.gitignore",
"chars": 6,
"preview": "*.dll\n"
},
{
"path": "BreakingChanges/BreakingChanges.sln",
"chars": 2407,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.22609.0\nMini"
},
{
"path": "BreakingChanges/VS2008_CS3/OverloadResolutionArraysOfPointer.cs",
"chars": 651,
"preview": "using System.Collections.Generic;\n\n/// <summary>\n/// Changed in VS 2008 SP1\n///\n/// #1 in https://msdn.microsoft.com/en"
},
{
"path": "BreakingChanges/VS2008_CS3/ParamsOverride.cs",
"chars": 1053,
"preview": "interface I\n{\n int this[int[] p] { set; }\n}\n\nclass Base : I\n{\n // Produces CS0466:\n int I.this[params int[] p]"
},
{
"path": "BreakingChanges/VS2008_CS3/VS2008_CS3.csproj",
"chars": 222,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFrameworks>netstandard2.0</TargetFrameworks>\n <LangV"
},
{
"path": "BreakingChanges/VS2010_CS4/ImplicitConversionCausedByVariance.cs",
"chars": 1578,
"preview": "using System;\nusing System.Collections;\nusing System.Collections.Generic;\n\n/// <summary>\n/// Changed in VS 2010\n///\n///"
},
{
"path": "BreakingChanges/VS2010_CS4/VS2010_CS4.csproj",
"chars": 222,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFrameworks>netstandard2.0</TargetFrameworks>\n <LangV"
},
{
"path": "BreakingChanges/VS2012_CS5/IterationVariableOfForeach.cs",
"chars": 722,
"preview": "using System;\nusing System.Collections.Generic;\n\n/// <summary>\n/// Changed in VS 2012\n///\n/// In https://msdn.microsoft"
},
{
"path": "BreakingChanges/VS2012_CS5/VS2012_CS5.csproj",
"chars": 222,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFrameworks>netstandard2.0</TargetFrameworks>\n <LangV"
},
{
"path": "BreakingChanges/VS2015_CS6/CyclicalConstructorChaining.cs",
"chars": 303,
"preview": "class C\n{\n public C(int x) : this() { }\n public C() : this(0) { }\n}\n\n// In C# it is a compile-time error to write"
},
{
"path": "BreakingChanges/VS2015_CS6/DefiniteAssignment.cs",
"chars": 376,
"preview": "/// <summary>\n/// Can be compiled in: C# 2, 6\n/// \n/// https://github.com/dotnet/roslyn/blob/master/docs/compilers/CSha"
},
{
"path": "BreakingChanges/VS2015_CS6/EnumBaseTypeSystemInt32.cs",
"chars": 379,
"preview": "enum X : System.Int32\n{\n A, B, C,\n}\n\n/// <summary>\n/// Can be compiled in: C# 6\n///\n/// Changed: enum base type can "
},
{
"path": "BreakingChanges/VS2015_CS6/FuncOfFuncTypeInference.cs",
"chars": 401,
"preview": "using System;\n\nclass FuncOfFuncTypeInference\n{\n static void Main()\n {\n X(() => () => 10);\n Y(() => "
},
{
"path": "BreakingChanges/VS2015_CS6/InvariantMeaningInBlock.cs",
"chars": 779,
"preview": "/// <summary>\n/// Can be compiled in: C# 6\n///\n/// https://github.com/dotnet/roslyn/issues/2110\n///\n/// The C# specific"
},
{
"path": "BreakingChanges/VS2015_CS6/KatakanaMiddleDot.cs",
"chars": 820,
"preview": "using System;\n\n/// <summary>\n/// Can be compiled in: C# 2, 3, 4, 5\n/// \n/// Breaking Change in C# 6.0, Roslyn new compi"
},
{
"path": "BreakingChanges/VS2015_CS6/VS2015_CS6.csproj",
"chars": 222,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFrameworks>netstandard2.0</TargetFrameworks>\n <LangV"
},
{
"path": "BreakingChanges/a.cs",
"chars": 116,
"preview": "using System;\n\ninterface X<in U, out T>\n{\n Func<U, T> X(Func<T, U> f);\n}\n\nclass P\n{\n static void Main() { }\n}"
},
{
"path": "BreakingChanges/csc-all.ps1",
"chars": 410,
"preview": "$sourceCodes = ls *.cs -Recurse | ?{ ($_ -notmatch '\\\\obj\\\\') -and ($_ -notmatch '\\\\Properties\\\\') }\n\nforeach ($src in $"
},
{
"path": "BreakingChanges/csc.ps1",
"chars": 1008,
"preview": "param([string] $src)\n\n$compilers = @(\n @{ 'compiler' = $env:windir + '\\Microsoft.NET\\Framework64\\v2.0.50727\\csc.exe'"
},
{
"path": "BreakingChanges/read-summary.ps1",
"chars": 356,
"preview": "param([string] $src)\n\n$state = 0\n\nGet-Content $src | % {\n if($state -eq 0)\n {\n if($_ -match '\\<summary\\>')\n"
},
{
"path": "Chapters/Algorithm/Algorithm.csproj",
"chars": 204,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3."
},
{
"path": "Chapters/Algorithm/Algorithm.sln",
"chars": 960,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.23103.0\nMini"
},
{
"path": "Chapters/Algorithm/App.config",
"chars": 180,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n <startup> \n <supportedRuntime version=\"v4.0\" sku=\".N"
},
{
"path": "Chapters/Algorithm/Collections/ArrayList.cs",
"chars": 2646,
"preview": "using System.Collections.Generic;\n\nnamespace Collections\n{\n /// <summary>\n /// 配列リスト。\n /// </summary>\n /// <typepar"
},
{
"path": "Chapters/Algorithm/Collections/BinaryTree.cs",
"chars": 6470,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Collections\n{\n /// <summary>\n /// 2分探索木"
},
{
"path": "Chapters/Algorithm/Collections/CircularBuffer.cs",
"chars": 4232,
"preview": "using System.Collections.Generic;\n\nnamespace Collections\n{\n /// <summary>\n /// 循環バッファ。\n /// </summary>\n /// <typepa"
},
{
"path": "Chapters/Algorithm/Collections/Dictionary.cs",
"chars": 8612,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Collections\n{\n /// <summary>\n /// 辞書。\n "
},
{
"path": "Chapters/Algorithm/Collections/ForwardLinkedList.cs",
"chars": 3283,
"preview": "using System.Collections.Generic;\n\nnamespace Collections\n{\n /// <summary>\n /// 片方向連結リスト。\n /// </summary>\n /// <type"
},
{
"path": "Chapters/Algorithm/Collections/HashTable.cs",
"chars": 2773,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Collections\n{\n /// <summary>\n /// ハッシュテ"
},
{
"path": "Chapters/Algorithm/Collections/LinkedList.cs",
"chars": 4185,
"preview": "using System.Collections.Generic;\n\nnamespace Collections\n{\n /// <summary>\n /// 双方向連結リスト。\n /// </summary>\n /// <type"
},
{
"path": "Chapters/Algorithm/Collections/PriorityQueue.cs",
"chars": 2168,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Collections\n{\n /// <summary>\n /// 優先度付き"
},
{
"path": "Chapters/Algorithm/Collections/Queue.cs",
"chars": 1225,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Collections\n{\n /// <summary>\n /// スタック("
},
{
"path": "Chapters/Algorithm/Collections/Set.cs",
"chars": 329,
"preview": "using System.Collections.Generic;\n\nnamespace Collections\n{\n /// <summary>\n /// セット。\n /// 数学で「集合」と呼ぶ奴。\n /// 要素の順序には意"
},
{
"path": "Chapters/Algorithm/Collections/SortedArray.cs",
"chars": 3028,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace Collections\n{\n /// <summary>\n /// ソート済み配列。\n /// </summary"
},
{
"path": "Chapters/Algorithm/Collections/Stack.cs",
"chars": 1119,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Collections\n{\n /// <summary>\n /// スタック("
},
{
"path": "Chapters/Algorithm/Program.cs",
"chars": 232,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/Algorithm/Sort/BubbleSort.cs",
"chars": 520,
"preview": "using System;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n /// <summary>\n /// バブルソート。\n "
},
{
"path": "Chapters/Algorithm/Sort/BucketSort.cs",
"chars": 1549,
"preview": "using System.Collections.Generic;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n /// <summary>\n "
},
{
"path": "Chapters/Algorithm/Sort/HeapSort.cs",
"chars": 1593,
"preview": "using System;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n /// <summary>\n /// ヒープソート。\n "
},
{
"path": "Chapters/Algorithm/Sort/InsertSort.cs",
"chars": 1120,
"preview": "using System;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n /// <summary>\n /// 挿入ソート。\n "
},
{
"path": "Chapters/Algorithm/Sort/MergeSort.cs",
"chars": 2346,
"preview": "using System;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n /// <summary>\n /// マージソート。\n "
},
{
"path": "Chapters/Algorithm/Sort/QuickSort.cs",
"chars": 2133,
"preview": "using System;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n /// <summary>\n /// クイックソート。\n "
},
{
"path": "Chapters/Algorithm/Sort/RadixSort.cs",
"chars": 2348,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/Algorithm/Sort/SelectSort.cs",
"chars": 593,
"preview": "using System;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n /// <summary>\n /// 選択ソート。\n "
},
{
"path": "Chapters/Algorithm/Sort/ShellSort.cs",
"chars": 606,
"preview": "using System;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n /// <summary>\n /// シェルソート。\n "
},
{
"path": "Chapters/Algorithm/Sort/Sort.cs",
"chars": 246,
"preview": "using System;\n\nnamespace Algorithm.Sort\n{\n partial class Sort\n {\n private static void Swap<T>(ref T t1, re"
},
{
"path": "Chapters/AllInOne.sln",
"chars": 65758,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 16\nVisualStudioVersion = 16.0.2840"
},
{
"path": "Chapters/Async/Async.sln",
"chars": 1427,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.25420.1\nMini"
},
{
"path": "Chapters/Async/Lock/Lock.csproj",
"chars": 219,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3."
},
{
"path": "Chapters/Async/Lock/Monitor.cs",
"chars": 1173,
"preview": "namespace Lock.Monitor\n{\n using System;\n using System.Collections.Generic;\n using System.Linq;\n using Syste"
},
{
"path": "Chapters/Async/Lock/Program.cs",
"chars": 227,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/Async/TaskLike/Program.cs",
"chars": 873,
"preview": "namespace TaskLike\n{\n using System;\n using System.Threading.Tasks;\n\n class Program\n {\n static async "
},
{
"path": "Chapters/Async/TaskLike/TaskLike.cs",
"chars": 1366,
"preview": "using System;\nusing System.Runtime.CompilerServices;\n\n[AsyncMethodBuilder(typeof(AsyncValueTaskMethodBuilder<>))]\nstruc"
},
{
"path": "Chapters/Async/TaskLike/TaskLike.csproj",
"chars": 138,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <TargetFramework>netcoreapp3.0</TargetFramework>\n </PropertyG"
},
{
"path": "Chapters/Blogs/UnityAsync/UnityAsync0Introduction.md",
"chars": 710,
"preview": "# Unity上でasync/await: はじめに (UnityAsync0Introduction)\n\nたまにはAdvent Calendar参加。\n\nこのブログは[Unity Advent Calendar 2015](http://"
},
{
"path": "Chapters/Blogs/UnityAsync/UnityAsync1Background.md",
"chars": 3325,
"preview": "# Unity上でasync/await: 背景 (UnityAsync1Background)\n\nまずasync/awaitについて、\n(Unityでない)通常のC#開発の場合がどうとか、\nUnityで何が問題で使えなかったかとか、\nRx"
},
{
"path": "Chapters/Blogs/UnityAsync/UnityAsync2CurrentStatus.md",
"chars": 5052,
"preview": "# Unity上でasync/await: 現状 (UnityAsync2CurrentStatus)\n\n[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncBrid"
},
{
"path": "Chapters/Blogs/UnityAsync/UnityAsync3Retrospective.md",
"chars": 2459,
"preview": "# Unity上でasync/await: 課題と感想 (UnityAsync3Retrospective)\n\n[MinimumAsyncBridge](https://github.com/OrangeCube/MinimumAsyncB"
},
{
"path": "Chapters/Data/DataTypes.sln",
"chars": 3474,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 16\nVisualStudioVersion = 16.0.2853"
},
{
"path": "Chapters/Data/Deconstruction/DeconstructMethod.cs",
"chars": 603,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace Deconstruction.DeconstructMethod\n{\n class Program\n {\n "
},
{
"path": "Chapters/Data/Deconstruction/Deconstruction.csproj",
"chars": 229,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3."
},
{
"path": "Chapters/Data/Deconstruction/Evaluation.cs",
"chars": 2034,
"preview": "#pragma warning disable CS0219\n\nusing System;\n\nnamespace Deconstruction.Evaluation\n{\n class Program\n {\n st"
},
{
"path": "Chapters/Data/Deconstruction/Extensions.cs",
"chars": 474,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace Deconstruction\n{\n static class Extensions\n {\n p"
},
{
"path": "Chapters/Data/Deconstruction/Program.cs",
"chars": 4097,
"preview": "using System;\nusing System.Collections.Generic;\n\nnamespace Deconstruction\n{\n class Program\n {\n static void"
},
{
"path": "Chapters/Data/Deconstruction/Summary.cs",
"chars": 1089,
"preview": "namespace Tuples.Deconstruction.Tuples\n{\n using System;\n using System.Collections.Generic;\n\n class Program\n "
},
{
"path": "Chapters/Data/Deconstruction/Vector2D.cs",
"chars": 1205,
"preview": "namespace Deconstruction._Vector2D\n{\n using static System.Math;\n\n struct Radian\n {\n public double Value"
},
{
"path": "Chapters/Data/Deconstruction/Vector3D.cs",
"chars": 729,
"preview": "using Deconstruction._Vector2D;\n\nnamespace Deconstruction._Vector3D\n{\n struct Vector3D\n {\n public double X"
},
{
"path": "Chapters/Data/Discards/Discards.csproj",
"chars": 171,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3."
},
{
"path": "Chapters/Data/Discards/Program.cs",
"chars": 2585,
"preview": "using System;\nusing System.ComponentModel;\n\nclass Program\n{\n static void Main()\n {\n var _ = 10;\n Co"
},
{
"path": "Chapters/Data/OutVar/OutVar.csproj",
"chars": 221,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3."
},
{
"path": "Chapters/Data/OutVar/Point.cs",
"chars": 696,
"preview": "namespace OutVar.Point\n{\n using System;\n\n struct Point\n {\n public int X { get; set; }\n public in"
},
{
"path": "Chapters/Data/OutVar/Program.cs",
"chars": 863,
"preview": "namespace OutVar\n{\n class Program\n {\n static void Main(string[] args)\n {\n }\n\n class c"
},
{
"path": "Chapters/Data/Patterns/CallOnce.cs",
"chars": 560,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Patterns.CallOnce\n{\n class X\n {\n "
},
{
"path": "Chapters/Data/Patterns/ConstantPattern.cs",
"chars": 750,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Patterns.ConstantPattern\n{\n class Prog"
},
{
"path": "Chapters/Data/Patterns/DeconstructRemoval.cs",
"chars": 1045,
"preview": "namespace Patterns.DeconstructRemoval\n{\n using System;\n\n class X\n {\n // Deconstruct に副作用を持たせる\n p"
},
{
"path": "Chapters/Data/Patterns/DiscardPattern.cs",
"chars": 745,
"preview": "namespace Patterns.DiscardPattern\n{\n class Program\n {\n static void Main()\n {\n\n }\n\n st"
},
{
"path": "Chapters/Data/Patterns/Expressions/Node.cs",
"chars": 1454,
"preview": "namespace Patterns.Expressions\n{\n public abstract class Node\n {\n public static readonly Node X = new Var()"
},
{
"path": "Chapters/Data/Patterns/Expressions/Program.cs",
"chars": 2581,
"preview": "namespace Patterns.Expressions\n{\n using System;\n\n public static class Program\n {\n public static int Cal"
},
{
"path": "Chapters/Data/Patterns/Line.cs",
"chars": 276,
"preview": "namespace Patterns\n{\n public class Line\n {\n public Point Start { get; }\n public Point End { get; }\n"
},
{
"path": "Chapters/Data/Patterns/NoOrderGarantee.cs",
"chars": 923,
"preview": "namespace Patterns.NoOrderGarantee\n{\n using System;\n\n enum Type { A, B }\n\n class X\n {\n public Type T"
},
{
"path": "Chapters/Data/Patterns/NonNull.cs",
"chars": 865,
"preview": "namespace Patterns.NonNull\n{\n class Program\n {\n struct LongLongNamedStruct { }\n\n void M1(LongLongNa"
},
{
"path": "Chapters/Data/Patterns/Patterns.csproj",
"chars": 239,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3."
},
{
"path": "Chapters/Data/Patterns/Point.cs",
"chars": 266,
"preview": "namespace Patterns\n{\n public class Point\n {\n public int X { get; set; }\n public int Y { get; set; }"
},
{
"path": "Chapters/Data/Patterns/PositionalPattern.cs",
"chars": 1640,
"preview": "namespace Patterns.PositionalPattern\n{\n class Program\n {\n static void Main()\n {\n // 位置指定"
},
{
"path": "Chapters/Data/Patterns/PropertyPattern.cs",
"chars": 1011,
"preview": "namespace Patterns.PropertyPattern\n{\n class Program\n {\n public static void Main()\n {\n //"
},
{
"path": "Chapters/Data/Patterns/PropertyPatternField.cs",
"chars": 725,
"preview": "namespace Patterns.PropertyPatternField\n{\n using System;\n\n class X\n {\n // (外から見て) get-only なプロパティ\n "
},
{
"path": "Chapters/Data/Patterns/RecursivePattern.cs",
"chars": 304,
"preview": "namespace Patterns.RecursivePattern\n{\n class Program\n {\n static int M(object obj)\n => obj switc"
},
{
"path": "Chapters/Data/Patterns/Tuple.cs",
"chars": 1156,
"preview": "namespace Patterns.Tuple\n{\n using System.Runtime.CompilerServices;\n\n class X : ITuple\n {\n public object"
},
{
"path": "Chapters/Data/Patterns/TupleSwitch.cs",
"chars": 442,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Text;\n\nnamespace Patterns\n{\n class TupleSwitch\n {\n "
},
{
"path": "Chapters/Data/Patterns/TypePattern.cs",
"chars": 776,
"preview": "namespace Patterns.TypePattern\n{\n using System;\n\n class Program\n {\n static void Main()\n {\n "
},
{
"path": "Chapters/Data/Patterns/TypePatternNull.cs",
"chars": 419,
"preview": "namespace Patterns.TypePatternNull\n{\n using System;\n\n class Program\n {\n static void Main()\n {\n "
},
{
"path": "Chapters/Data/Patterns/UserDefinedOperator.cs",
"chars": 567,
"preview": "namespace Patterns.UserDefinedOperator\n{\n using System;\n\n class X\n {\n // 全てのインスタンスが等しいという挙動。\n //"
},
{
"path": "Chapters/Data/Patterns/VarPattern.cs",
"chars": 931,
"preview": "namespace Patterns.VarPattern\n{\n using System;\n\n class Program\n {\n static void Main()\n {\n "
},
{
"path": "Chapters/Data/Patterns/ZeroOneTuple.cs",
"chars": 681,
"preview": "namespace Patterns.ZeroOneTuple\n{\n using System;\n\n class X\n {\n public void Deconstruct() { }\n pu"
},
{
"path": "Chapters/Data/Tuples/ErroneousSamples.cs",
"chars": 1373,
"preview": "namespace Tuples.ErroneousSamples\n{\n#if false\n using System;\n\n class Program\n {\n static void Main()\n "
},
{
"path": "Chapters/Data/Tuples/Implementation.cs",
"chars": 2825,
"preview": "#pragma warning disable 219\n#pragma warning disable 1998\n\nnamespace Tuples.Implementation\n{\n using System;\n using"
},
{
"path": "Chapters/Data/Tuples/OutParams.cs",
"chars": 3132,
"preview": "#pragma warning disable 1998\n#pragma warning disable 649\n\nnamespace Tuples.OutParams\n{\n using System;\n using Syst"
},
{
"path": "Chapters/Data/Tuples/Overload.cs",
"chars": 475,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/Data/Tuples/Program.cs",
"chars": 4553,
"preview": "#pragma warning disable 219\n#pragma warning disable 8123\n\nusing System;\nusing System.Collections.Generic;\n\nnamespace Tu"
},
{
"path": "Chapters/Data/Tuples/Summary.cs",
"chars": 615,
"preview": "namespace Tuples.Summary\n{\n using System;\n using System.Collections.Generic;\n\n class Program\n {\n // "
},
{
"path": "Chapters/Data/Tuples/Tuples.csproj",
"chars": 221,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3."
},
{
"path": "Chapters/Data/Tuples/ValueTuple.cs",
"chars": 524,
"preview": "using System;\nusing System.Collections;\nusing System.Runtime.InteropServices;\n\nnamespace Tuples.X\n{\n [StructLayout(L"
},
{
"path": "Chapters/Data/Tuples/ZipSample.cs",
"chars": 732,
"preview": "namespace Tuples.ZipSample\n{\n using System;\n using System.Collections.Generic;\n using System.Linq;\n\n class "
},
{
"path": "Chapters/Data/TypeSwitch/Expressions/Calculate.switcha.cs",
"chars": 538,
"preview": "using System;\n\nnamespace TypeSwitch.Expressions\n{\n public static partial class NodeExtensions\n {\n public s"
},
{
"path": "Chapters/Data/TypeSwitch/Expressions/Calculate.vritual.cs",
"chars": 552,
"preview": "namespace TypeSwitch.Expressions\n{\n abstract partial class Node\n {\n public abstract int Calculate(int x);\n"
},
{
"path": "Chapters/Data/TypeSwitch/Expressions/Node.cs",
"chars": 713,
"preview": "namespace TypeSwitch.Expressions\n{\n public partial class Node { }\n\n public partial class Var : Node { }\n\n publ"
},
{
"path": "Chapters/Data/TypeSwitch/Expressions/NodeBuilder.cs",
"chars": 452,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/Data/TypeSwitch/Expressions/Program.cs",
"chars": 1718,
"preview": "namespace TypeSwitch.Expressions\n{\n using System;\n using System.Collections.Generic;\n using System.Diagnostics"
},
{
"path": "Chapters/Data/TypeSwitch/Expressions/ToString.cs",
"chars": 570,
"preview": "using System;\n\nnamespace TypeSwitch.Expressions\n{\n public static partial class NodeExtensions\n {\n public s"
},
{
"path": "Chapters/Data/TypeSwitch/IsSample.cs",
"chars": 2726,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/Data/TypeSwitch/Program.cs",
"chars": 234,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/Data/TypeSwitch/Summary.cs",
"chars": 835,
"preview": "using System;\n\nnamespace TypeSwitch.Summary\n{\n class Program\n {\n static void F(object obj)\n {\n "
},
{
"path": "Chapters/Data/TypeSwitch/SwitchPerformance.cs",
"chars": 1609,
"preview": "namespace SwitchPerformance\n{\n using System;\n using System.Diagnostics;\n\n class Program\n {\n static v"
},
{
"path": "Chapters/Data/TypeSwitch/SwitchSample.cs",
"chars": 2445,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/Data/TypeSwitch/TypeSwitch.csproj",
"chars": 225,
"preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n\n <PropertyGroup>\n <OutputType>Exe</OutputType>\n <TargetFramework>netcoreapp3."
},
{
"path": "Chapters/Data/TypeSwitch/TypeSwitchPerformance.cs",
"chars": 1624,
"preview": "namespace TypeSwitch.TypeSwitchPerformance\n{\n using System;\n using System.Diagnostics;\n\n class Program\n {\n "
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/.gitignore",
"chars": 30,
"preview": "!FluentArithmetic.Nupkg\n!build"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/CodeAwareLibrarySample.sln",
"chars": 2656,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.25420.1\nMini"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmetic/FluentArithmetic.csproj",
"chars": 2482,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmetic/FluentExtensions.cs",
"chars": 321,
"preview": "namespace FluentArithmetic\n{\n public static class FluentExtensions\n {\n public static int Add(this int x, i"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmetic/Properties/AssemblyInfo.cs",
"chars": 875,
"preview": "using System.Resources;\nusing System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropSer"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmetic/project.json",
"chars": 186,
"preview": "{\n \"supports\": {},\n \"dependencies\": {\n \"Microsoft.NETCore.Portable.Compatibility\": \"1.0.1\",\n \"NETStandard.Libra"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Assembly.cs",
"chars": 97,
"preview": "[assembly: System.Runtime.CompilerServices.InternalsVisibleTo(\"FluentArithmeticAnalyzer.Test\")]\n"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/DivByZero/DivByZeroAnalyzer.cs",
"chars": 1907,
"preview": "using System.Collections.Immutable;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CShar"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.csproj",
"chars": 3100,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Literal/LiteralAnalyzer.cs",
"chars": 1991,
"preview": "using System.Collections.Immutable;\nusing System.Linq;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CShar"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Literal/LiteralFix.cs",
"chars": 2734,
"preview": "using System;\nusing System.Composition;\nusing System.Collections.Generic;\nusing System.Collections.Immutable;\nusing Sys"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Properties/AssemblyInfo.cs",
"chars": 1197,
"preview": "using System.Reflection;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled "
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Resources.Designer.cs",
"chars": 3829,
"preview": "//------------------------------------------------------------------------------\n// <auto-generated>\n// This code w"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/Resources.resx",
"chars": 6275,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<root>\n <!-- \n Microsoft ResX Schema \n \n Version 2.0\n \n The prim"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/SyntaxExtensions.cs",
"chars": 2063,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\nusi"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer/project.json",
"chars": 227,
"preview": "{\n \"supports\": {},\n \"dependencies\": {\n \"Microsoft.CodeAnalysis.Analyzers\": \"1.1.0\",\n \"Microsoft.CodeAnalysis.CS"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/DivByZeroUnitTest.cs",
"chars": 1593,
"preview": "using FluentArithmeticAnalyzer.DivByZero;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CodeFixes;\nusing M"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/FluentArithmeticAnalyzer.Test.csproj",
"chars": 7795,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"4.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.microso"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Helpers/CodeFixVerifier.Helper.cs",
"chars": 3957,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CodeActions;\nusing Microsoft.CodeAnalysis.Formatting;\nusing "
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Helpers/DiagnosticResult.cs",
"chars": 1886,
"preview": "using Microsoft.CodeAnalysis;\nusing System;\n\nnamespace TestHelper\n{\n /// <summary>\n /// Location where the diagno"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Helpers/DiagnosticVerifier.Helper.cs",
"chars": 8791,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CSharp;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing Micr"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/LiteralUnitTest.cs",
"chars": 1872,
"preview": "using FluentArithmeticAnalyzer.Literal;\nusing Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CodeFixes;\nusing Mic"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Properties/AssemblyInfo.cs",
"chars": 1248,
"preview": "using System.Reflection;\nusing System.Runtime.InteropServices;\n\n// General Information about an assembly is controlled "
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Verifiers/CodeFixVerifier.cs",
"chars": 7209,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CodeActions;\nusing Microsoft.CodeAnalysis.CodeFixes;\nusing M"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/Verifiers/DiagnosticVerifier.cs",
"chars": 13749,
"preview": "using Microsoft.CodeAnalysis;\nusing Microsoft.CodeAnalysis.CSharp;\nusing Microsoft.CodeAnalysis.Diagnostics;\nusing Micr"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/app.config",
"chars": 431,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n <runtime>\n <assemblyBinding xmlns=\"urn:schemas-microsoft-co"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Test/packages.config",
"chars": 1576,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Microsoft.CodeAnalysis.Analyzers\" version=\"1.1.0\" targ"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Vsix/FluentArithmeticAnalyzer.Vsix.csproj",
"chars": 3514,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/FluentArithmeticAnalyzer/FluentArithmeticAnalyzer.Vsix/source.extension.vsixmanifest",
"chars": 1441,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<PackageManifest Version=\"2.0.0\" xmlns=\"http://schemas.microsoft.com/developer/v"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/build/FluentArithmetic.nuspec",
"chars": 1275,
"preview": "<?xml version=\"1.0\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n <metadata>\n <id>"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/build/build.ps1",
"chars": 393,
"preview": "$msbuild = ls 'C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe'\n\n. $msbuild ..\\CodeAwareLibrarySample.sln /t:rebuild"
},
{
"path": "Chapters/DevEnv/CodeAwareLibrarySample/build/pack.bat",
"chars": 263,
"preview": "mkdir bin\nmsbuild\n.\\NuGet.exe pack .\\MinimumAsyncBridge.nuspec -NoPackageAnalysis -OutputDirectory .\n.\\NuGet.exe pack .\\"
},
{
"path": "Chapters/DevEnv/ConsoleApplication1/ConsoleApplication1/App.config",
"chars": 180,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n <startup> \n <supportedRuntime version=\"v4.0\" sku=\".N"
},
{
"path": "Chapters/DevEnv/ConsoleApplication1/ConsoleApplication1/ConsoleApplication1.csproj",
"chars": 2670,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "Chapters/DevEnv/ConsoleApplication1/ConsoleApplication1/Logic.cs",
"chars": 106,
"preview": "namespace ConsoleApplication1\n{\n class Logic\n {\n public int Filter(int x) => x * x;\n }\n}\n"
},
{
"path": "Chapters/DevEnv/ConsoleApplication1/ConsoleApplication1/Program.cs",
"chars": 218,
"preview": "using System;\n\nnamespace ConsoleApplication1\n{\n class Program\n {\n static void Main(string[] args)\n "
},
{
"path": "Chapters/DevEnv/ConsoleApplication1/ConsoleApplication1/Properties/AssemblyInfo.cs",
"chars": 1109,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// アセンブリに関する一般情報"
},
{
"path": "Chapters/DevEnv/ConsoleApplication1/ConsoleApplication1.sln",
"chars": 1000,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.22823.1\nMini"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/App.csproj",
"chars": 9889,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/App.xaml",
"chars": 237,
"preview": "<Application\n x:Class=\"App.App\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"h"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/App.xaml.cs",
"chars": 4421,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/ApplicationInsights.config",
"chars": 1690,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<ApplicationInsights xmlns=\"http://schemas.microsoft.com/ApplicationInsights/201"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/MainPage.xaml",
"chars": 451,
"preview": "<Page\n x:Class=\"App.MainPage\"\n xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\"\n xmlns:x=\"htt"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/MainPage.xaml.cs",
"chars": 812,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.IO;\nusing System.Linq;\nusing System.Runtime.InteropService"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/Package.appxmanifest",
"chars": 1448,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<Package\n xmlns=\"http://schemas.microsoft.com/appx/manifest/foundation/windows"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/Properties/AssemblyInfo.cs",
"chars": 1023,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// General Infor"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/Properties/Default.rd.xml",
"chars": 1241,
"preview": "<!--\n This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most\n develope"
},
{
"path": "Chapters/DevEnv/Dependency/Game/App/packages.config",
"chars": 698,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<packages>\n <package id=\"Microsoft.ApplicationInsights\" version=\"0.14.3-build00"
},
{
"path": "Chapters/DevEnv/Dependency/Game/ClassLibrary/ClassLibrary.csproj",
"chars": 2401,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "Chapters/DevEnv/Dependency/Game/ClassLibrary/Game.cs",
"chars": 179,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/DevEnv/Dependency/Game/ClassLibrary/Properties/AssemblyInfo.cs",
"chars": 1095,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// アセンブリに関する一般情報"
},
{
"path": "Chapters/DevEnv/Dependency/Game/ConsoleApplication/App.config",
"chars": 180,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<configuration>\n <startup> \n <supportedRuntime version=\"v4.0\" sku=\".N"
},
{
"path": "Chapters/DevEnv/Dependency/Game/ConsoleApplication/ConsoleApplication.csproj",
"chars": 2633,
"preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"14.0\" DefaultTargets=\"Build\" xmlns=\"http://schemas.micros"
},
{
"path": "Chapters/DevEnv/Dependency/Game/ConsoleApplication/Program.cs",
"chars": 241,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\nusing System.Threading.Tasks;\n\nna"
},
{
"path": "Chapters/DevEnv/Dependency/Game/ConsoleApplication/Properties/AssemblyInfo.cs",
"chars": 1107,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// アセンブリに関する一般情報"
},
{
"path": "Chapters/DevEnv/Dependency/Game/Game.sln",
"chars": 7980,
"preview": "\nMicrosoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio 14\nVisualStudioVersion = 14.0.22823.1\nMini"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/BundleConfig.cs",
"chars": 1140,
"preview": "using System.Web;\nusing System.Web.Optimization;\n\nnamespace WebApplication\n{\n public class BundleConfig\n {\n "
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/FilterConfig.cs",
"chars": 267,
"preview": "using System.Web;\nusing System.Web.Mvc;\n\nnamespace WebApplication\n{\n public class FilterConfig\n {\n public "
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/IdentityConfig.cs",
"chars": 4095,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Data.Entity;\nusing System.Linq;\nusing System.Security.Clai"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/RouteConfig.cs",
"chars": 582,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\nusing System"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/App_Start/Startup.Auth.cs",
"chars": 2939,
"preview": "using System;\nusing Microsoft.AspNet.Identity;\nusing Microsoft.AspNet.Identity.Owin;\nusing Microsoft.Owin;\nusing Micros"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Content/Site.css",
"chars": 511,
"preview": "body {\n padding-top: 50px;\n padding-bottom: 20px;\n}\n\n/* Set padding to keep content from hitting the edges */\n.bo"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Content/bootstrap.css",
"chars": 120502,
"preview": "/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of e"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Controllers/AccountController.cs",
"chars": 16698,
"preview": "using System;\nusing System.Globalization;\nusing System.Linq;\nusing System.Security.Claims;\nusing System.Threading.Tasks"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Controllers/HomeController.cs",
"chars": 581,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\n\nnamespace W"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Controllers/ManageController.cs",
"chars": 13793,
"preview": "using System;\nusing System.Linq;\nusing System.Threading.Tasks;\nusing System.Web;\nusing System.Web.Mvc;\nusing Microsoft."
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Global.asax",
"chars": 103,
"preview": "<%@ Application Codebehind=\"Global.asax.cs\" Inherits=\"WebApplication.MvcApplication\" Language=\"C#\" %>\n"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Global.asax.cs",
"chars": 573,
"preview": "using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Web;\nusing System.Web.Mvc;\nusing System"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Models/AccountViewModels.cs",
"chars": 2995,
"preview": "using System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\n\nnamespace WebApplication.Models\n{\n p"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Models/IdentityModels.cs",
"chars": 1147,
"preview": "using System.Data.Entity;\nusing System.Security.Claims;\nusing System.Threading.Tasks;\nusing Microsoft.AspNet.Identity;\n"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Models/ManageViewModels.cs",
"chars": 2515,
"preview": "using System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations;\nusing Microsoft.AspNet.Identity;\nusing M"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Project_Readme.html",
"chars": 4947,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>\n <meta "
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Properties/AssemblyInfo.cs",
"chars": 1043,
"preview": "using System.Reflection;\nusing System.Runtime.CompilerServices;\nusing System.Runtime.InteropServices;\n\n// アセンブリに関する一般的情"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/bootstrap.js",
"chars": 59250,
"preview": "/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of e"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery-1.10.2.intellisense.js",
"chars": 159731,
"preview": "/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of "
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery-1.10.2.js",
"chars": 273990,
"preview": "/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of e"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery.validate-vsdoc.js",
"chars": 43375,
"preview": "/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of "
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery.validate.js",
"chars": 39742,
"preview": "/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of "
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/jquery.validate.unobtrusive.js",
"chars": 19400,
"preview": "/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of e"
},
{
"path": "Chapters/DevEnv/Dependency/Game/WebApplication/Scripts/modernizr-2.6.2.js",
"chars": 51458,
"preview": "/* NUGET: BEGIN LICENSE TEXT\n *\n * Microsoft grants you the right to use these script files for the sole\n * purpose of e"
}
]
// ... and 3310 more files (download for full content)
About this extraction
This page contains the full source code of the ufcpp/UfcppSample GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3510 files (9.6 MB), approximately 2.7M tokens, and a symbol index with 12762 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.