From 382eda2192c7a9e78de48faba3b0be912dce2b6e Mon Sep 17 00:00:00 2001 From: Amal Dev Date: Mon, 17 Dec 2018 07:11:38 +0530 Subject: [PATCH 01/19] Modified files to include formatting in the See also section (#9622) --- .../runtime/appcontextswitchoverrides-element.md | 6 +++--- .../runtime/appdomainmanagerassembly-element.md | 12 ++++++------ .../runtime/appdomainmanagertype-element.md | 12 ++++++------ .../runtime/appdomainresourcemonitoring-element.md | 6 +++--- .../runtime/assemblybinding-element-for-runtime.md | 6 +++--- .../runtime/assemblyidentity-element-for-runtime.md | 6 +++--- .../file-schema/runtime/bindingredirect-element.md | 6 +++--- .../runtime/bypasstrustedappstrongnames-element.md | 6 +++--- .../runtime/clear-element-for-namedcaches.md | 2 +- .../file-schema/runtime/codebase-element.md | 8 ++++---- .../runtime/compatsortnlsversion-element.md | 4 ++-- .../file-schema/runtime/dependentassembly-element.md | 6 +++--- .../file-schema/runtime/developmentmode-element.md | 6 +++--- .../runtime/disablecachingbindingfailures-element.md | 6 +++--- .../runtime/disablecommitthreadstack-element.md | 4 ++-- .../disablefusionupdatesfromadmanager-element.md | 6 +++--- .../runtime/enableampmparseadjustment-element.md | 4 ++-- .../file-schema/runtime/enforcefipspolicy-element.md | 6 +++--- .../file-schema/runtime/etwenable-element.md | 6 +++--- ...formancecounteruniquesharedmemoryreads-element.md | 4 ++-- .../runtime/gcallowverylargeobjects-element.md | 4 ++-- .../file-schema/runtime/gcconcurrent-element.md | 6 +++--- .../file-schema/runtime/gccpugroup-element.md | 8 ++++---- .../file-schema/runtime/gcserver-element.md | 8 ++++---- .../runtime/generatepublisherevidence-element.md | 4 ++-- 25 files changed, 76 insertions(+), 76 deletions(-) diff --git a/docs/framework/configure-apps/file-schema/runtime/appcontextswitchoverrides-element.md b/docs/framework/configure-apps/file-schema/runtime/appcontextswitchoverrides-element.md index c2212c423630d..0b966416d93f6 100644 --- a/docs/framework/configure-apps/file-schema/runtime/appcontextswitchoverrides-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/appcontextswitchoverrides-element.md @@ -156,6 +156,6 @@ The following example uses the `` element to add two settings to the ` - [\ Element](runtime-element.md) - [\ Element](../configuration-element.md) +- +- [\ Element](runtime-element.md) +- [\ Element](../configuration-element.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/appdomainmanagerassembly-element.md b/docs/framework/configure-apps/file-schema/runtime/appdomainmanagerassembly-element.md index d9692b46b5b45..a972d7faf2e5a 100644 --- a/docs/framework/configure-apps/file-schema/runtime/appdomainmanagerassembly-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/appdomainmanagerassembly-element.md @@ -68,9 +68,9 @@ Specifies the assembly that provides the application domain manager for the defa ``` ## See Also - - - [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/appdomainmanagertype-element.md) - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [SetAppDomainManagerType Method](../../../../../docs/framework/unmanaged-api/hosting/iclrcontrol-setappdomainmanagertype-method.md) +- +- +- [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/appdomainmanagertype-element.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [SetAppDomainManagerType Method](../../../../../docs/framework/unmanaged-api/hosting/iclrcontrol-setappdomainmanagertype-method.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/appdomainmanagertype-element.md b/docs/framework/configure-apps/file-schema/runtime/appdomainmanagertype-element.md index 5a5f4ead6ef95..7b916f177bb08 100644 --- a/docs/framework/configure-apps/file-schema/runtime/appdomainmanagertype-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/appdomainmanagertype-element.md @@ -68,9 +68,9 @@ Specifies the type that serves as the application domain manager for the default ``` ## See Also - - - [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/appdomainmanagerassembly-element.md) - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [SetAppDomainManagerType Method](../../../../../docs/framework/unmanaged-api/hosting/iclrcontrol-setappdomainmanagertype-method.md) +- +- +- [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/appdomainmanagerassembly-element.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [SetAppDomainManagerType Method](../../../../../docs/framework/unmanaged-api/hosting/iclrcontrol-setappdomainmanagertype-method.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/appdomainresourcemonitoring-element.md b/docs/framework/configure-apps/file-schema/runtime/appdomainresourcemonitoring-element.md index fb92fb0fa6dc2..394ed9b2d0f9c 100644 --- a/docs/framework/configure-apps/file-schema/runtime/appdomainresourcemonitoring-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/appdomainresourcemonitoring-element.md @@ -67,6 +67,6 @@ Instructs the runtime to collect statistics on all application domains in the pr ``` ## See Also - - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/assemblybinding-element-for-runtime.md b/docs/framework/configure-apps/file-schema/runtime/assemblybinding-element-for-runtime.md index 841d2b4acad1f..e0d11fbf7a31e 100644 --- a/docs/framework/configure-apps/file-schema/runtime/assemblybinding-element-for-runtime.md +++ b/docs/framework/configure-apps/file-schema/runtime/assemblybinding-element-for-runtime.md @@ -87,6 +87,6 @@ Contains information about assembly version redirection and the locations of ass ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/assemblyidentity-element-for-runtime.md b/docs/framework/configure-apps/file-schema/runtime/assemblyidentity-element-for-runtime.md index 25ccce1f658bb..bd2a8e4d9d9e6 100644 --- a/docs/framework/configure-apps/file-schema/runtime/assemblyidentity-element-for-runtime.md +++ b/docs/framework/configure-apps/file-schema/runtime/assemblyidentity-element-for-runtime.md @@ -116,6 +116,6 @@ culture="assembly culture"/> ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/bindingredirect-element.md b/docs/framework/configure-apps/file-schema/runtime/bindingredirect-element.md index 32718b2dc29b9..d65a5bd1a532c 100644 --- a/docs/framework/configure-apps/file-schema/runtime/bindingredirect-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/bindingredirect-element.md @@ -81,6 +81,6 @@ newVersion="new assembly version"/> ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/bypasstrustedappstrongnames-element.md b/docs/framework/configure-apps/file-schema/runtime/bypasstrustedappstrongnames-element.md index 908dc5267d19b..c633eaec72959 100644 --- a/docs/framework/configure-apps/file-schema/runtime/bypasstrustedappstrongnames-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/bypasstrustedappstrongnames-element.md @@ -78,6 +78,6 @@ Specifies whether to bypass the validation of strong names on full-trust assembl ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [How to: Disable the Strong-Name Bypass Feature](../../../../../docs/framework/app-domains/how-to-disable-the-strong-name-bypass-feature.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [How to: Disable the Strong-Name Bypass Feature](../../../../../docs/framework/app-domains/how-to-disable-the-strong-name-bypass-feature.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/clear-element-for-namedcaches.md b/docs/framework/configure-apps/file-schema/runtime/clear-element-for-namedcaches.md index f2a76765b378a..a0e2fb0157153 100644 --- a/docs/framework/configure-apps/file-schema/runtime/clear-element-for-namedcaches.md +++ b/docs/framework/configure-apps/file-schema/runtime/clear-element-for-namedcaches.md @@ -47,4 +47,4 @@ Clears all `namedCache` entries in the `namedCaches` collection for a memory cac The `clear` element clears all `namedCache` entries in the named cache collection for a memory cache. You can use the `clear` element before you use the `add` element to add a new named cache entry in order to be certain there are no other named caches in the collection. ## See Also - [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md) +- [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/codebase-element.md b/docs/framework/configure-apps/file-schema/runtime/codebase-element.md index 929949d73709d..dffb3a706731d 100644 --- a/docs/framework/configure-apps/file-schema/runtime/codebase-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/codebase-element.md @@ -84,7 +84,7 @@ href="URL of assembly"/> ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Specifying an Assembly's Location](../../../../../docs/framework/configure-apps/specify-assembly-location.md) - [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Specifying an Assembly's Location](../../../../../docs/framework/configure-apps/specify-assembly-location.md) +- [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/compatsortnlsversion-element.md b/docs/framework/configure-apps/file-schema/runtime/compatsortnlsversion-element.md index 2b1703956f1f2..96902c1d3f045 100644 --- a/docs/framework/configure-apps/file-schema/runtime/compatsortnlsversion-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/compatsortnlsversion-element.md @@ -88,5 +88,5 @@ sta equals a in the sort order. ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/dependentassembly-element.md b/docs/framework/configure-apps/file-schema/runtime/dependentassembly-element.md index cc7451b9eb08d..ca208129a09f1 100644 --- a/docs/framework/configure-apps/file-schema/runtime/dependentassembly-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/dependentassembly-element.md @@ -75,6 +75,6 @@ Encapsulates binding policy and assembly location for each assembly. Use one `de ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/developmentmode-element.md b/docs/framework/configure-apps/file-schema/runtime/developmentmode-element.md index 4e7c715b6786a..6d05b3d8c0cb7 100644 --- a/docs/framework/configure-apps/file-schema/runtime/developmentmode-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/developmentmode-element.md @@ -66,6 +66,6 @@ Specifies whether the runtime searches for assemblies in directories specified b ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [How to: Locate Assemblies by Using DEVPATH](../../../../../docs/framework/configure-apps/how-to-locate-assemblies-by-using-devpath.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [How to: Locate Assemblies by Using DEVPATH](../../../../../docs/framework/configure-apps/how-to-locate-assemblies-by-using-devpath.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/disablecachingbindingfailures-element.md b/docs/framework/configure-apps/file-schema/runtime/disablecachingbindingfailures-element.md index 21f38f16254b1..9cd7a6c912ad2 100644 --- a/docs/framework/configure-apps/file-schema/runtime/disablecachingbindingfailures-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/disablecachingbindingfailures-element.md @@ -75,6 +75,6 @@ Specifies whether to disable the caching of binding failures that occur because ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/disablecommitthreadstack-element.md b/docs/framework/configure-apps/file-schema/runtime/disablecommitthreadstack-element.md index 1100abd5c5e42..f92bf92e6ff18 100644 --- a/docs/framework/configure-apps/file-schema/runtime/disablecommitthreadstack-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/disablecommitthreadstack-element.md @@ -68,5 +68,5 @@ Specifies whether the full thread stack is committed when a thread is started. ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/disablefusionupdatesfromadmanager-element.md b/docs/framework/configure-apps/file-schema/runtime/disablefusionupdatesfromadmanager-element.md index d333fafdb588f..02149f8de2e13 100644 --- a/docs/framework/configure-apps/file-schema/runtime/disablefusionupdatesfromadmanager-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/disablefusionupdatesfromadmanager-element.md @@ -70,6 +70,6 @@ Specifies whether the default behavior, which is to allow the runtime host to ov ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/enableampmparseadjustment-element.md b/docs/framework/configure-apps/file-schema/runtime/enableampmparseadjustment-element.md index b3c9579f84bca..19b70a6372086 100644 --- a/docs/framework/configure-apps/file-schema/runtime/enableampmparseadjustment-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/enableampmparseadjustment-element.md @@ -76,5 +76,5 @@ Determines whether date and time parsing methods use an adjusted set of rules to |en-GB|5/1/2017 6:00:00|10/4/2017 6:00:00| ## See Also - [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/runtime-element.md) - [\ Element](../../../../../docs/framework/configure-apps/file-schema/configuration-element.md) +- [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/runtime-element.md) +- [\ Element](../../../../../docs/framework/configure-apps/file-schema/configuration-element.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/enforcefipspolicy-element.md b/docs/framework/configure-apps/file-schema/runtime/enforcefipspolicy-element.md index 31c43c76c9343..b28f3ae6c74c5 100644 --- a/docs/framework/configure-apps/file-schema/runtime/enforcefipspolicy-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/enforcefipspolicy-element.md @@ -66,6 +66,6 @@ Specifies whether to enforce a computer configuration requirement that cryptogra ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Cryptography Model](../../../../../docs/standard/security/cryptography-model.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Cryptography Model](../../../../../docs/standard/security/cryptography-model.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/etwenable-element.md b/docs/framework/configure-apps/file-schema/runtime/etwenable-element.md index 325d14039af04..a28873c85aab4 100644 --- a/docs/framework/configure-apps/file-schema/runtime/etwenable-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/etwenable-element.md @@ -65,6 +65,6 @@ Specifies whether to enable event tracing for Windows (ETW) for common language ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Controlling .NET Framework Logging](../../../../../docs/framework/performance/controlling-logging.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Controlling .NET Framework Logging](../../../../../docs/framework/performance/controlling-logging.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/forceperformancecounteruniquesharedmemoryreads-element.md b/docs/framework/configure-apps/file-schema/runtime/forceperformancecounteruniquesharedmemoryreads-element.md index da26f78877d97..c7b34abd91ffb 100644 --- a/docs/framework/configure-apps/file-schema/runtime/forceperformancecounteruniquesharedmemoryreads-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/forceperformancecounteruniquesharedmemoryreads-element.md @@ -74,5 +74,5 @@ enabled="true|false"/> ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/gcallowverylargeobjects-element.md b/docs/framework/configure-apps/file-schema/runtime/gcallowverylargeobjects-element.md index a8de64f938d8e..d62b81f0be5a9 100644 --- a/docs/framework/configure-apps/file-schema/runtime/gcallowverylargeobjects-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/gcallowverylargeobjects-element.md @@ -72,5 +72,5 @@ On 64-bit platforms, enables arrays that are greater than 2 gigabytes (GB) in to ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/gcconcurrent-element.md b/docs/framework/configure-apps/file-schema/runtime/gcconcurrent-element.md index 2b8a12c5a1ebe..37d2465b9cde1 100644 --- a/docs/framework/configure-apps/file-schema/runtime/gcconcurrent-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/gcconcurrent-element.md @@ -84,6 +84,6 @@ Specifies whether the common language runtime runs garbage collection on a separ ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Fundamentals of Garbage Collection](../../../../../docs/standard/garbage-collection/fundamentals.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Fundamentals of Garbage Collection](../../../../../docs/standard/garbage-collection/fundamentals.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/gccpugroup-element.md b/docs/framework/configure-apps/file-schema/runtime/gccpugroup-element.md index 917a994f96eaa..11c786555ceb3 100644 --- a/docs/framework/configure-apps/file-schema/runtime/gccpugroup-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/gccpugroup-element.md @@ -67,7 +67,7 @@ Specifies whether garbage collection supports multiple CPU groups. ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [How to: Disable Concurrent Garbage Collection](https://msdn.microsoft.com/library/ba2c6c67-5778-497c-9fac-5f793b5500c7) - [Workstation and server garbage collection](../../../../../docs/standard/garbage-collection/fundamentals.md#workstation_and_server_garbage_collection) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [How to: Disable Concurrent Garbage Collection](https://msdn.microsoft.com/library/ba2c6c67-5778-497c-9fac-5f793b5500c7) +- [Workstation and server garbage collection](../../../../../docs/standard/garbage-collection/fundamentals.md#workstation_and_server_garbage_collection) diff --git a/docs/framework/configure-apps/file-schema/runtime/gcserver-element.md b/docs/framework/configure-apps/file-schema/runtime/gcserver-element.md index 551f6564a2b99..f8fa2fc20c05f 100644 --- a/docs/framework/configure-apps/file-schema/runtime/gcserver-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/gcserver-element.md @@ -73,7 +73,7 @@ Specifies whether the common language runtime runs server garbage collection. ``` ## See Also - - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [How to: Disable Concurrent Garbage Collection](https://msdn.microsoft.com/library/ba2c6c67-5778-497c-9fac-5f793b5500c7) +- +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [How to: Disable Concurrent Garbage Collection](https://msdn.microsoft.com/library/ba2c6c67-5778-497c-9fac-5f793b5500c7) diff --git a/docs/framework/configure-apps/file-schema/runtime/generatepublisherevidence-element.md b/docs/framework/configure-apps/file-schema/runtime/generatepublisherevidence-element.md index 6c97e1832cf85..0a7d4a7ad90e2 100644 --- a/docs/framework/configure-apps/file-schema/runtime/generatepublisherevidence-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/generatepublisherevidence-element.md @@ -73,5 +73,5 @@ Specifies whether the runtime creates ev ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) From c62be9f66566a6aa5c5bde1a89404094ba3e4fb1 Mon Sep 17 00:00:00 2001 From: Amal Dev Date: Mon, 17 Dec 2018 07:12:55 +0530 Subject: [PATCH 02/19] Modified files to include formatting in the See also section (#9623) --- .../configure-apps/file-schema/runtime/index.md | 6 +++--- .../legacycorruptedstateexceptionspolicy-element.md | 6 +++--- .../runtime/legacyimpersonationpolicy-element.md | 6 +++--- .../runtime/loadfromremotesources-element.md | 10 +++++----- .../runtime/memorycache-element-cache-settings.md | 6 +++--- .../runtime/namedcaches-element-cache-settings.md | 2 +- .../runtime/netfx40-legacysecuritypolicy-element.md | 4 ++-- .../runtime/netfx40-pinvokestackresilience-element.md | 6 +++--- ...tureawarecomparergethashcode-longstrings-element.md | 6 +++--- .../prefercominsteadofmanagedremoting-element.md | 4 ++-- .../file-schema/runtime/probing-element.md | 8 ++++---- .../file-schema/runtime/publisherpolicy-element.md | 8 ++++---- .../file-schema/runtime/qualifyassembly-element.md | 6 +++--- .../runtime/relativebindforresources-element.md | 6 +++--- .../runtime/remove-element-for-namedcaches.md | 2 +- .../file-schema/runtime/runtime-element.md | 4 ++-- .../runtime/shadowcopyverifybytimestamp-element.md | 6 +++--- .../file-schema/runtime/supportportability-element.md | 4 ++-- .../system-runtime-caching-element-cache-settings.md | 2 +- .../runtime/thread-useallcpugroups-element.md | 6 +++--- .../runtime/throwunobservedtaskexceptions-element.md | 4 ++-- .../runtime/timespan-legacyformatmode-element.md | 4 ++-- .../file-schema/runtime/uselegacyjit-element.md | 6 +++--- .../userandomizedstringhashalgorithm-element.md | 6 +++--- .../runtime/usesmallinternalthreadstacks-element.md | 4 ++-- 25 files changed, 66 insertions(+), 66 deletions(-) diff --git a/docs/framework/configure-apps/file-schema/runtime/index.md b/docs/framework/configure-apps/file-schema/runtime/index.md index ab3af917d7de1..32a8d529d8e35 100644 --- a/docs/framework/configure-apps/file-schema/runtime/index.md +++ b/docs/framework/configure-apps/file-schema/runtime/index.md @@ -126,6 +126,6 @@ Runtime settings are used by the common language runtime to configure applicatio |[\](../../../../../docs/framework/configure-apps/file-schema/runtime/usesmallinternalthreadstacks-element.md)|Requests that the runtime use explicit stack sizes when it creates certain threads that it uses internally, instead of the default stack size.| ## See Also - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [How to: Disable Concurrent Garbage Collection](https://msdn.microsoft.com/library/ba2c6c67-5778-497c-9fac-5f793b5500c7) - [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [How to: Disable Concurrent Garbage Collection](https://msdn.microsoft.com/library/ba2c6c67-5778-497c-9fac-5f793b5500c7) +- [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/legacycorruptedstateexceptionspolicy-element.md b/docs/framework/configure-apps/file-schema/runtime/legacycorruptedstateexceptionspolicy-element.md index 1ffbba2545329..ee683a058aaa9 100644 --- a/docs/framework/configure-apps/file-schema/runtime/legacycorruptedstateexceptionspolicy-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/legacycorruptedstateexceptionspolicy-element.md @@ -72,6 +72,6 @@ Specifies whether the common language runtime allows managed code to catch acces ``` ## See Also - - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/legacyimpersonationpolicy-element.md b/docs/framework/configure-apps/file-schema/runtime/legacyimpersonationpolicy-element.md index 791b0a7e259f3..5857175de0724 100644 --- a/docs/framework/configure-apps/file-schema/runtime/legacyimpersonationpolicy-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/legacyimpersonationpolicy-element.md @@ -110,6 +110,6 @@ Specifies that the Windows identity does not flow across asynchronous points, re ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/alwaysflowimpersonationpolicy-element.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/alwaysflowimpersonationpolicy-element.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/loadfromremotesources-element.md b/docs/framework/configure-apps/file-schema/runtime/loadfromremotesources-element.md index d6297c140bb06..c3e535f208639 100644 --- a/docs/framework/configure-apps/file-schema/runtime/loadfromremotesources-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/loadfromremotesources-element.md @@ -111,8 +111,8 @@ The following example shows how to grant full trust to assemblies loaded from re ## See also -[More Implicit Uses of CAS Policy: loadFromRemoteSources](https://go.microsoft.com/fwlink/p/?LinkId=266839) -[How to: Run Partially Trusted Code in a Sandbox](../../../../../docs/framework/misc/how-to-run-partially-trusted-code-in-a-sandbox.md) -[Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) -[Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - +- [More Implicit Uses of CAS Policy: loadFromRemoteSources](https://go.microsoft.com/fwlink/p/?LinkId=266839) +- [How to: Run Partially Trusted Code in a Sandbox](../../../../../docs/framework/misc/how-to-run-partially-trusted-code-in-a-sandbox.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- diff --git a/docs/framework/configure-apps/file-schema/runtime/memorycache-element-cache-settings.md b/docs/framework/configure-apps/file-schema/runtime/memorycache-element-cache-settings.md index 3e921108df0c8..63b242379fc3b 100644 --- a/docs/framework/configure-apps/file-schema/runtime/memorycache-element-cache-settings.md +++ b/docs/framework/configure-apps/file-schema/runtime/memorycache-element-cache-settings.md @@ -87,6 +87,6 @@ Defines an element that is used to configure a cache that is based on the - [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/system-runtime-caching-element-cache-settings.md) - [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md) +- +- [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/system-runtime-caching-element-cache-settings.md) +- [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md b/docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md index 6ecf13008cc17..3a26d4fadae76 100644 --- a/docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md +++ b/docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md @@ -84,4 +84,4 @@ Specifies a collection of configuration settings for the named Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/memorycache-element-cache-settings.md) +- [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/memorycache-element-cache-settings.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/netfx40-legacysecuritypolicy-element.md b/docs/framework/configure-apps/file-schema/runtime/netfx40-legacysecuritypolicy-element.md index ffa257f9bbcd4..618b9adcdc79a 100644 --- a/docs/framework/configure-apps/file-schema/runtime/netfx40-legacysecuritypolicy-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/netfx40-legacysecuritypolicy-element.md @@ -79,5 +79,5 @@ Specifies whether the runtime uses legacy code access security (CAS) policy. ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/netfx40-pinvokestackresilience-element.md b/docs/framework/configure-apps/file-schema/runtime/netfx40-pinvokestackresilience-element.md index 49c45e54fdcf9..9867a0e025076 100644 --- a/docs/framework/configure-apps/file-schema/runtime/netfx40-pinvokestackresilience-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/netfx40-pinvokestackresilience-element.md @@ -71,6 +71,6 @@ Specifies whether the runtime automatically fixes incorrect platform invoke decl ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [pInvokeStackImbalance](../../../../../docs/framework/debug-trace-profile/pinvokestackimbalance-mda.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [pInvokeStackImbalance](../../../../../docs/framework/debug-trace-profile/pinvokestackimbalance-mda.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/netfx45-cultureawarecomparergethashcode-longstrings-element.md b/docs/framework/configure-apps/file-schema/runtime/netfx45-cultureawarecomparergethashcode-longstrings-element.md index 868faf13ba64e..9b6927746f10e 100644 --- a/docs/framework/configure-apps/file-schema/runtime/netfx45-cultureawarecomparergethashcode-longstrings-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/netfx45-cultureawarecomparergethashcode-longstrings-element.md @@ -56,6 +56,6 @@ Specifies whether the runtime uses a fixed amount of memory to calculate hash co > The `` element is not used in [!INCLUDE[win8](../../../../../includes/win8-md.md)] and later versions. ## See Also - - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/prefercominsteadofmanagedremoting-element.md b/docs/framework/configure-apps/file-schema/runtime/prefercominsteadofmanagedremoting-element.md index 9ce0a439e9d11..94962bdde97ab 100644 --- a/docs/framework/configure-apps/file-schema/runtime/prefercominsteadofmanagedremoting-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/prefercominsteadofmanagedremoting-element.md @@ -68,5 +68,5 @@ Specifies whether the runtime will use COM interop instead of remoting for all c ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/probing-element.md b/docs/framework/configure-apps/file-schema/runtime/probing-element.md index a29651530f50f..dcfbcafa6d7b1 100644 --- a/docs/framework/configure-apps/file-schema/runtime/probing-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/probing-element.md @@ -60,7 +60,7 @@ Specifies application base subdirectories for the common language runtime to sea ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Specifying an Assembly's Location](../../../../../docs/framework/configure-apps/specify-assembly-location.md) - [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Specifying an Assembly's Location](../../../../../docs/framework/configure-apps/specify-assembly-location.md) +- [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/publisherpolicy-element.md b/docs/framework/configure-apps/file-schema/runtime/publisherpolicy-element.md index b6641eba8a187..4b6bc0f533fd8 100644 --- a/docs/framework/configure-apps/file-schema/runtime/publisherpolicy-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/publisherpolicy-element.md @@ -80,7 +80,7 @@ Specifies whether the runtime applies publisher policy. ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) - [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) +- [Redirecting Assembly Versions](../../../../../docs/framework/configure-apps/redirect-assembly-versions.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/qualifyassembly-element.md b/docs/framework/configure-apps/file-schema/runtime/qualifyassembly-element.md index f8cde56bb0d6b..d0bc141219f45 100644 --- a/docs/framework/configure-apps/file-schema/runtime/qualifyassembly-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/qualifyassembly-element.md @@ -70,6 +70,6 @@ Specifies the full name of the assembly that should be dynamically loaded when a ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) - [NIB: Partial Assembly References](https://msdn.microsoft.com/library/ec90f07a-398c-4306-9401-0fc5ff9cb59f) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [How the Runtime Locates Assemblies](../../../../../docs/framework/deployment/how-the-runtime-locates-assemblies.md) +- [NIB: Partial Assembly References](https://msdn.microsoft.com/library/ec90f07a-398c-4306-9401-0fc5ff9cb59f) diff --git a/docs/framework/configure-apps/file-schema/runtime/relativebindforresources-element.md b/docs/framework/configure-apps/file-schema/runtime/relativebindforresources-element.md index bde9cfa6704af..34dc1897f50f8 100644 --- a/docs/framework/configure-apps/file-schema/runtime/relativebindforresources-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/relativebindforresources-element.md @@ -66,6 +66,6 @@ Optimizes the probe for satellite assemblies. - It does not raise the event. ## See Also - [Packaging and Deploying Resources](../../../../../docs/framework/resources/packaging-and-deploying-resources-in-desktop-apps.md) - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Packaging and Deploying Resources](../../../../../docs/framework/resources/packaging-and-deploying-resources-in-desktop-apps.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/remove-element-for-namedcaches.md b/docs/framework/configure-apps/file-schema/runtime/remove-element-for-namedcaches.md index 23ce43424bb4b..a24a60e9865f9 100644 --- a/docs/framework/configure-apps/file-schema/runtime/remove-element-for-namedcaches.md +++ b/docs/framework/configure-apps/file-schema/runtime/remove-element-for-namedcaches.md @@ -47,4 +47,4 @@ Removes a named cache entry from the `namedCaches` collection for a memory cache The `remove` element removes a `namedCache` entry from the named cache collection for a memory cache. ## See Also - [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md) +- [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/namedcaches-element-cache-settings.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/runtime-element.md b/docs/framework/configure-apps/file-schema/runtime/runtime-element.md index 00efb8307ad07..7a9177e930f9e 100644 --- a/docs/framework/configure-apps/file-schema/runtime/runtime-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/runtime-element.md @@ -86,5 +86,5 @@ Provides information used by the common language runtime to configure applicatio The elements in the [\](../../../../../docs/framework/configure-apps/file-schema/runtime/runtime-element.md) section are read automatically by the common language runtime at application startup. You can also define the configuration file for a non-default application domain by supplying its name to the property; its settings are read automatically when the application domain is loaded. You should rarely, if ever, have a need to directly read the settings in the [\](../../../../../docs/framework/configure-apps/file-schema/runtime/runtime-element.md) section in your application's configuration file. ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/shadowcopyverifybytimestamp-element.md b/docs/framework/configure-apps/file-schema/runtime/shadowcopyverifybytimestamp-element.md index f668b6392e149..ab29e34cee3b1 100644 --- a/docs/framework/configure-apps/file-schema/runtime/shadowcopyverifybytimestamp-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/shadowcopyverifybytimestamp-element.md @@ -62,6 +62,6 @@ Specifies whether shadow copying uses the default startup behavior introduced in ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [Shadow Copying Assemblies](../../../../../docs/framework/app-domains/shadow-copy-assemblies.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Shadow Copying Assemblies](../../../../../docs/framework/app-domains/shadow-copy-assemblies.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/supportportability-element.md b/docs/framework/configure-apps/file-schema/runtime/supportportability-element.md index 76f45fa603189..9115865bdf413 100644 --- a/docs/framework/configure-apps/file-schema/runtime/supportportability-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/supportportability-element.md @@ -73,5 +73,5 @@ Specifies that an application can reference the same assembly in two different i ``` ## See Also - [/appconfig (C# Compiler Options)](../../../../../docs/csharp/language-reference/compiler-options/appconfig-compiler-option.md) - [.NET Framework Assembly Unification Overview](https://msdn.microsoft.com/library/8d8cc65e-031d-463b-bde3-2c6dc2e3bc48) +- [/appconfig (C# Compiler Options)](../../../../../docs/csharp/language-reference/compiler-options/appconfig-compiler-option.md) +- [.NET Framework Assembly Unification Overview](https://msdn.microsoft.com/library/8d8cc65e-031d-463b-bde3-2c6dc2e3bc48) diff --git a/docs/framework/configure-apps/file-schema/runtime/system-runtime-caching-element-cache-settings.md b/docs/framework/configure-apps/file-schema/runtime/system-runtime-caching-element-cache-settings.md index e2346d9f8ac11..3cd83a9bcba4f 100644 --- a/docs/framework/configure-apps/file-schema/runtime/system-runtime-caching-element-cache-settings.md +++ b/docs/framework/configure-apps/file-schema/runtime/system-runtime-caching-element-cache-settings.md @@ -68,4 +68,4 @@ Provides configuration for the default in-memory Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/memorycache-element-cache-settings.md) +- [\ Element (Cache Settings)](../../../../../docs/framework/configure-apps/file-schema/runtime/memorycache-element-cache-settings.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/thread-useallcpugroups-element.md b/docs/framework/configure-apps/file-schema/runtime/thread-useallcpugroups-element.md index c1f2570171664..55f9cf5f642fa 100644 --- a/docs/framework/configure-apps/file-schema/runtime/thread-useallcpugroups-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/thread-useallcpugroups-element.md @@ -62,6 +62,6 @@ Specifies whether the runtime distributes managed threads across all CPU groups. ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) - [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/gccpugroup-element.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/gccpugroup-element.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/throwunobservedtaskexceptions-element.md b/docs/framework/configure-apps/file-schema/runtime/throwunobservedtaskexceptions-element.md index a165b2d0ec063..298eb938ea2d5 100644 --- a/docs/framework/configure-apps/file-schema/runtime/throwunobservedtaskexceptions-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/throwunobservedtaskexceptions-element.md @@ -85,5 +85,5 @@ Specifies whether unhandled task exceptions should terminate a running process. [!code-vb[ThrowUnobservedTaskExceptions#1](../../../../../samples/snippets/visualbasic/VS_Snippets_CLR/throwunobservedtaskexceptions/vb/program.vb#1)] ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/timespan-legacyformatmode-element.md b/docs/framework/configure-apps/file-schema/runtime/timespan-legacyformatmode-element.md index 9664fcaac8f58..21e6d0d3b1498 100644 --- a/docs/framework/configure-apps/file-schema/runtime/timespan-legacyformatmode-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/timespan-legacyformatmode-element.md @@ -88,5 +88,5 @@ Invalid Format ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/uselegacyjit-element.md b/docs/framework/configure-apps/file-schema/runtime/uselegacyjit-element.md index f2b39a0542680..14c2ecbc6a136 100644 --- a/docs/framework/configure-apps/file-schema/runtime/uselegacyjit-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/uselegacyjit-element.md @@ -90,6 +90,6 @@ The following configuration file disables compilation with the new 64-bit JIT co ## See also -[\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/runtime-element.md) -[\ Element](../../../../../docs/framework/configure-apps/file-schema/configuration-element.md) -[Mitigation: New 64-bit JIT Compiler](../../../../../docs/framework/migration-guide/mitigation-new-64-bit-jit-compiler.md) +- [\ Element](../../../../../docs/framework/configure-apps/file-schema/runtime/runtime-element.md) +- [\ Element](../../../../../docs/framework/configure-apps/file-schema/configuration-element.md) +- [Mitigation: New 64-bit JIT Compiler](../../../../../docs/framework/migration-guide/mitigation-new-64-bit-jit-compiler.md) diff --git a/docs/framework/configure-apps/file-schema/runtime/userandomizedstringhashalgorithm-element.md b/docs/framework/configure-apps/file-schema/runtime/userandomizedstringhashalgorithm-element.md index 2a7315cf306db..f94f9263cfc22 100644 --- a/docs/framework/configure-apps/file-schema/runtime/userandomizedstringhashalgorithm-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/userandomizedstringhashalgorithm-element.md @@ -90,6 +90,6 @@ String 'This is a string.' in domain 'NewDomain': 75CC8236 ``` ## See Also - - - +- +- +- diff --git a/docs/framework/configure-apps/file-schema/runtime/usesmallinternalthreadstacks-element.md b/docs/framework/configure-apps/file-schema/runtime/usesmallinternalthreadstacks-element.md index fb59f9573e370..49b505e62710c 100644 --- a/docs/framework/configure-apps/file-schema/runtime/usesmallinternalthreadstacks-element.md +++ b/docs/framework/configure-apps/file-schema/runtime/usesmallinternalthreadstacks-element.md @@ -67,5 +67,5 @@ Requests that the common language runtime (CLR) reduce memory use by specifying ``` ## See Also - [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) - [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) +- [Runtime Settings Schema](../../../../../docs/framework/configure-apps/file-schema/runtime/index.md) +- [Configuration File Schema](../../../../../docs/framework/configure-apps/file-schema/index.md) From 6edffa5c48e8b518c5447322acc8241c1020ec64 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Sun, 16 Dec 2018 19:11:28 -0800 Subject: [PATCH 03/19] remove inner snippets + formatting 2/2 (#9283) * remove inner snippets + formatting * use sentence case for headings * small changes * sentence case for heading --- .../codesnippet/CSharp/using-directive_1.cs | 20 -- .../codesnippet/CSharp/using-directive_2.cs | 54 ------ .../codesnippet/CSharp/using-statement_1.cs | 4 - .../codesnippet/CSharp/using-statement_2.cs | 12 -- .../codesnippet/CSharp/using-statement_3.cs | 5 - .../codesnippet/CSharp/using-statement_4.cs | 9 - .../language-reference/keywords/ushort.md | 179 +++++++++--------- .../keywords/using-directive.md | 173 +++++++++-------- .../keywords/using-statement.md | 87 +++++---- .../keywords/using-static.md | 37 ++-- .../language-reference/keywords/using.md | 30 +-- 11 files changed, 257 insertions(+), 353 deletions(-) delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/using-directive_1.cs delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/using-directive_2.cs delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_1.cs delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_2.cs delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_3.cs delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_4.cs diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-directive_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-directive_1.cs deleted file mode 100644 index 0dfbcdb403272..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-directive_1.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace PC -{ - // Define an alias for the nested namespace. - using Project = PC.MyCompany.Project; - class A - { - void M() - { - // Use the alias - Project.MyClass mc = new Project.MyClass(); - } - } - namespace MyCompany - { - namespace Project - { - public class MyClass { } - } - } -} \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-directive_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-directive_2.cs deleted file mode 100644 index ef965181ab0ad..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-directive_2.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; - -// Using alias directive for a class. -using AliasToMyClass = NameSpace1.MyClass; - -// Using alias directive for a generic class. -using UsingAlias = NameSpace2.MyClass; - -namespace NameSpace1 -{ - public class MyClass - { - public override string ToString() - { - return "You are in NameSpace1.MyClass."; - } - } - -} - -namespace NameSpace2 -{ - class MyClass - { - public override string ToString() - { - return "You are in NameSpace2.MyClass."; - } - } -} - -namespace NameSpace3 -{ - // Using directive: - using NameSpace1; - // Using directive: - using NameSpace2; - - class MainClass - { - static void Main() - { - AliasToMyClass instance1 = new AliasToMyClass(); - Console.WriteLine(instance1); - - UsingAlias instance2 = new UsingAlias(); - Console.WriteLine(instance2); - - } - } -} -// Output: -// You are in NameSpace1.MyClass. -// You are in NameSpace2.MyClass. \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_1.cs deleted file mode 100644 index d6ec72b214f2c..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_1.cs +++ /dev/null @@ -1,4 +0,0 @@ - using (Font font1 = new Font("Arial", 10.0f)) - { - byte charset = font1.GdiCharSet; - } \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_2.cs deleted file mode 100644 index 22f517dbef334..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_2.cs +++ /dev/null @@ -1,12 +0,0 @@ - { - Font font1 = new Font("Arial", 10.0f); - try - { - byte charset = font1.GdiCharSet; - } - finally - { - if (font1 != null) - ((IDisposable)font1).Dispose(); - } - } \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_3.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_3.cs deleted file mode 100644 index a45ecee5519b1..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_3.cs +++ /dev/null @@ -1,5 +0,0 @@ - using (Font font3 = new Font("Arial", 10.0f), - font4 = new Font("Arial", 10.0f)) - { - // Use font3 and font4. - } \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_4.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_4.cs deleted file mode 100644 index ee4f1a21c80e8..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/using-statement_4.cs +++ /dev/null @@ -1,9 +0,0 @@ - Font font2 = new Font("Arial", 10.0f); - using (font2) // not recommended - { - // use font2 - } - // font2 is still in scope - // but the method call throws an exception - float f = font2.GetHeight(); - diff --git a/docs/csharp/language-reference/keywords/ushort.md b/docs/csharp/language-reference/keywords/ushort.md index 8cbbe975c5dc4..b98ea34b68935 100644 --- a/docs/csharp/language-reference/keywords/ushort.md +++ b/docs/csharp/language-reference/keywords/ushort.md @@ -1,112 +1,113 @@ --- -title: "ushort - C# Reference" +title: "ushort keyword - C# Reference" ms.custom: seodec18 - ms.date: 03/14/2017 -f1_keywords: +f1_keywords: - "ushort" - "ushort_CSharpKeyword" -helpviewer_keywords: +helpviewer_keywords: - "ushort keyword [C#]" ms.assetid: 1a7dbaae-b7a0-4111-872a-c88a6d3981ac --- # ushort (C# Reference) -The `ushort` keyword indicates an integral data type that stores values according to the size and range shown in the following table. - -|Type|Range|Size|.NET type| -|----------|-----------|----------|-------------------------| -|`ushort`|0 to 65,535|Unsigned 16-bit integer|| - -## Literals +The `ushort` keyword indicates an integral data type that stores values according to the size and range shown in the following table. + +|Type|Range|Size|.NET type| +|----------|-----------|----------|-------------------------| +|`ushort`|0 to 65,535|Unsigned 16-bit integer|| + +## Literals You can declare and initialize a `ushort` variable by assigning a decimal literal, a hexadecimal literal, or (starting with C# 7.0) a binary literal to it. If the integer literal is outside the range of `ushort` (that is, if it is less than or greater than ), a compilation error occurs. -In the following example, integers equal to 65,034 that are represented as decimal, hexadecimal, and binary literals are implicitly converted from [int](../../../csharp/language-reference/keywords/int.md) to `ushort` values. - -[!code-csharp[UShort](../../../../samples/snippets/csharp/language-reference/keywords/numeric-literals.cs#UShort)] +In the following example, integers equal to 65,034 that are represented as decimal, hexadecimal, and binary literals are implicitly converted from [int](int.md) to `ushort` values. -> [!NOTE] +[!code-csharp[UShort](~/samples/snippets/csharp/language-reference/keywords/numeric-literals.cs#UShort)] + +> [!NOTE] > You use the prefix `0x` or `0X` to denote a hexadecimal literal and the prefix `0b` or `0B` to denote a binary literal. Decimal literals have no prefix. -Starting with C# 7.0, a couple of features have been added to enhance readability. - - C# 7.0 allows the usage of the underscore character, `_`, as a digit separator. - - C# 7.2 allows `_` to be used as a digit separator for a binary or hexadecimal literal, after the prefix. A decimal literal isn't permitted to have a leading underscore. +Starting with C# 7.0, a couple of features have been added to enhance readability: + +- C# 7.0 allows the usage of the underscore character, `_`, as a digit separator. +- C# 7.2 allows `_` to be used as a digit separator for a binary or hexadecimal literal, after the prefix. A decimal literal isn't permitted to have a leading underscore. Some examples are shown below. -[!code-csharp[UShort](../../../../samples/snippets/csharp/language-reference/keywords/numeric-literals.cs#UShortS)] - +[!code-csharp[UShort](~/samples/snippets/csharp/language-reference/keywords/numeric-literals.cs#UShortS)] + ## Compiler overload resolution - - A cast must be used when you call overloaded methods. Consider, for example, the following overloaded methods that use `ushort` and [int](../../../csharp/language-reference/keywords/int.md) parameters: - -```csharp -public static void SampleMethod(int i) {} -public static void SampleMethod(ushort s) {} -``` - - Using the `ushort` cast guarantees that the correct type is called, for example: - -```csharp -// Calls the method with the int parameter: -SampleMethod(5); -// Calls the method with the ushort parameter: -SampleMethod((ushort)5); -``` - -## Conversions - There is a predefined implicit conversion from `ushort` to [int](../../../csharp/language-reference/keywords/int.md), [uint](../../../csharp/language-reference/keywords/uint.md), [long](../../../csharp/language-reference/keywords/long.md), [ulong](../../../csharp/language-reference/keywords/ulong.md), [float](../../../csharp/language-reference/keywords/float.md), [double](../../../csharp/language-reference/keywords/double.md), or [decimal](../../../csharp/language-reference/keywords/decimal.md). - - There is a predefined implicit conversion from [byte](../../../csharp/language-reference/keywords/byte.md) or [char](../../../csharp/language-reference/keywords/char.md) to `ushort`. Otherwise a cast must be used to perform an explicit conversion. Consider, for example, the following two `ushort` variables `x` and `y`: - -```csharp -ushort x = 5, y = 12; -``` - - The following assignment statement will produce a compilation error, because the arithmetic expression on the right side of the assignment operator evaluates to `int` by default. - -```csharp -ushort z = x + y; // Error: conversion from int to ushort -``` - - To fix this problem, use a cast: - -```csharp -ushort z = (ushort)(x + y); // OK: explicit conversion -``` - - It is possible though to use the following statements, where the destination variable has the same storage size or a larger storage size: - + +A cast must be used when you call overloaded methods. Consider, for example, the following overloaded methods that use `ushort` and [int](int.md) parameters: + ```csharp -int m = x + y; -long n = x + y; -``` - - Notice also that there is no implicit conversion from floating-point types to `ushort`. For example, the following statement generates a compiler error unless an explicit cast is used: - -```csharp -// Error -- no implicit conversion from double: -ushort x = 3.0; -// OK -- explicit conversion: -ushort y = (ushort)3.0; -``` - - For information about arithmetic expressions with mixed floating-point types and integral types, see [float](../../../csharp/language-reference/keywords/float.md) and [double](../../../csharp/language-reference/keywords/double.md). - - For more information about implicit numeric conversion rules, see the [Implicit Numeric Conversions Table](../../../csharp/language-reference/keywords/implicit-numeric-conversions-table.md). - -## C# Language Specification +public static void SampleMethod(int i) {} +public static void SampleMethod(ushort s) {} +``` + +Using the `ushort` cast guarantees that the correct type is called, for example: + +```csharp +// Calls the method with the int parameter: +SampleMethod(5); +// Calls the method with the ushort parameter: +SampleMethod((ushort)5); +``` + +## Conversions + +There is a predefined implicit conversion from `ushort` to [int](int.md), [uint](uint.md), [long](long.md), [ulong](ulong.md), [float](float.md), [double](double.md), or [decimal](decimal.md). + +There is a predefined implicit conversion from [byte](byte.md) or [char](char.md) to `ushort`. Otherwise a cast must be used to perform an explicit conversion. Consider, for example, the following two `ushort` variables `x` and `y`: + +```csharp +ushort x = 5, y = 12; +``` + +The following assignment statement will produce a compilation error, because the arithmetic expression on the right side of the assignment operator evaluates to `int` by default. + +```csharp +ushort z = x + y; // Error: conversion from int to ushort +``` + +To fix this problem, use a cast: + +```csharp +ushort z = (ushort)(x + y); // OK: explicit conversion +``` + +It is possible though to use the following statements, where the destination variable has the same storage size or a larger storage size: + +```csharp +int m = x + y; +long n = x + y; +``` + +Notice also that there is no implicit conversion from floating-point types to `ushort`. For example, the following statement generates a compiler error unless an explicit cast is used: + +```csharp +// Error -- no implicit conversion from double: +ushort x = 3.0; +// OK -- explicit conversion: +ushort y = (ushort)3.0; +``` + +For information about arithmetic expressions with mixed floating-point types and integral types, see [float](float.md) and [double](double.md). + +For more information about implicit numeric conversion rules, see the [Implicit Numeric Conversions Table](implicit-numeric-conversions-table.md). + +## C# language specification For more information, see [Integral types](~/_csharplang/spec/types.md#integral-types) in the [C# Language Specification](../language-specification/index.md). The language specification is the definitive source for C# syntax and usage. - -## See Also - -- -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Integral Types Table](../../../csharp/language-reference/keywords/integral-types-table.md) -- [Built-In Types Table](../../../csharp/language-reference/keywords/built-in-types-table.md) -- [Implicit Numeric Conversions Table](../../../csharp/language-reference/keywords/implicit-numeric-conversions-table.md) -- [Explicit Numeric Conversions Table](../../../csharp/language-reference/keywords/explicit-numeric-conversions-table.md) + +## See also + +- +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [C# Keywords](index.md) +- [Integral Types Table](integral-types-table.md) +- [Built-In Types Table](built-in-types-table.md) +- [Implicit Numeric Conversions Table](implicit-numeric-conversions-table.md) +- [Explicit Numeric Conversions Table](explicit-numeric-conversions-table.md) diff --git a/docs/csharp/language-reference/keywords/using-directive.md b/docs/csharp/language-reference/keywords/using-directive.md index d18b24ed00691..2f5cd8438050a 100644 --- a/docs/csharp/language-reference/keywords/using-directive.md +++ b/docs/csharp/language-reference/keywords/using-directive.md @@ -1,96 +1,101 @@ --- -title: "using Directive - C# Reference" +title: "using directive - C# Reference" ms.custom: seodec18 - ms.date: 07/20/2015 -helpviewer_keywords: +helpviewer_keywords: - "using directive [C#]" ms.assetid: b42b8e61-5e7e-439c-bb71-370094b44ae8 --- -# using Directive (C# Reference) -The `using` directive has three uses: - -- To allow the use of types in a namespace so that you do not have to qualify the use of a type in that namespace: - - ```csharp - using System.Text; - ``` - -- To allow you to access static members and nested types of a type without having to qualify the access with the type name. - - ```csharp - using static System.Math; - ``` - +# using directive (C# Reference) + +The `using` directive has three uses: + +- To allow the use of types in a namespace so that you do not have to qualify the use of a type in that namespace: + + ```csharp + using System.Text; + ``` + +- To allow you to access static members and nested types of a type without having to qualify the access with the type name. + + ```csharp + using static System.Math; + ``` + For more information, see the [using static directive](using-static.md). -- To create an alias for a namespace or a type. This is called a *using alias directive*. - - ```csharp - using Project = PC.MyCompany.Project; - ``` - - The `using` keyword is also used to create *using statements*, which help ensure that objects such as files and fonts are handled correctly. See [using Statement](../../../csharp/language-reference/keywords/using-statement.md) for more information. - -## Using Static Type - You can access static members of a type without having to qualify the access with the type name: - -```csharp -using static System.Console; -using static System.Math; -class Program -{ - static void Main() - { - WriteLine(Sqrt(3*3 + 4*4)); - } -} -``` - -## Remarks - The scope of a `using` directive is limited to the file in which it appears. - - The `using` directive can appear: +- To create an alias for a namespace or a type. This is called a *using alias directive*. + + ```csharp + using Project = PC.MyCompany.Project; + ``` + +The `using` keyword is also used to create *using statements*, which help ensure that objects such as files and fonts are handled correctly. See [using Statement](using-statement.md) for more information. + +## Using static type + +You can access static members of a type without having to qualify the access with the type name: + +```csharp +using static System.Console; +using static System.Math; +class Program +{ + static void Main() + { + WriteLine(Sqrt(3*3 + 4*4)); + } +} +``` + +## Remarks + +The scope of a `using` directive is limited to the file in which it appears. + +The `using` directive can appear: + - At the beginning of a source code file, before any namespace or type definitions. - In any namespace, but before any namespace or types declared in this namespace. Otherwise, compiler error [CS1529](../../misc/cs1529.md) is generated. - - Create a `using` alias directive to make it easier to qualify an identifier to a namespace or type. In any `using` directive, the fully-qualified namespace or type must be used regardless of the `using` directives that come before it. No `using` alias can be used in the declaration of a `using` directive. For example, the following generates a compiler error: - ```csharp - using s = System.Text; - using s.RegularExpressions; - ``` - - Create a `using` directive to use the types in a namespace without having to specify the namespace. A `using` directive does not give you access to any namespaces that are nested in the namespace you specify. - - Namespaces come in two categories: user-defined and system-defined. User-defined namespaces are namespaces defined in your code. For a list of the system-defined namespaces, see [.NET API Browser](https://docs.microsoft.com/dotnet/api/). - - For examples on referencing methods in other assemblies, see [Create and Use Assemblies Using the Command Line](../../programming-guide/concepts/assemblies-gac/how-to-create-and-use-assemblies-using-the-command-line.md). - -## Example 1 - - The following example shows how to define and use a `using` alias for a namespace: - - [!code-csharp[csrefKeywordsNamespace#8](../../../csharp/language-reference/keywords/codesnippet/CSharp/using-directive_1.cs)] - - A using alias directive cannot have an open generic type on the right hand side. For example, you cannot create a using alias for a List\, but you can create one for a List\. - -## Example 2 - - The following example shows how to define a `using` directive and a `using` alias for a class: - - [!code-csharp[csrefKeywordsNamespace#9](../../../csharp/language-reference/keywords/codesnippet/CSharp/using-directive_2.cs)] - -## C# Language Specification - [!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] - -## See Also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [Using Namespaces](../../../csharp/programming-guide/namespaces/using-namespaces.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Namespace Keywords](../../../csharp/language-reference/keywords/namespace-keywords.md) -- [Namespaces](../../../csharp/programming-guide/namespaces/index.md) -- [using Statement](../../../csharp/language-reference/keywords/using-statement.md) + +Create a `using` alias directive to make it easier to qualify an identifier to a namespace or type. In any `using` directive, the fully-qualified namespace or type must be used regardless of the `using` directives that come before it. No `using` alias can be used in the declaration of a `using` directive. For example, the following generates a compiler error: + +```csharp +using s = System.Text; +using s.RegularExpressions; +``` + +Create a `using` directive to use the types in a namespace without having to specify the namespace. A `using` directive does not give you access to any namespaces that are nested in the namespace you specify. + +Namespaces come in two categories: user-defined and system-defined. User-defined namespaces are namespaces defined in your code. For a list of the system-defined namespaces, see [.NET API Browser](https://docs.microsoft.com/dotnet/api/). + +For examples on referencing methods in other assemblies, see [Create and Use Assemblies Using the Command Line](../../programming-guide/concepts/assemblies-gac/how-to-create-and-use-assemblies-using-the-command-line.md). + +## Example 1 + +The following example shows how to define and use a `using` alias for a namespace: + +[!code-csharp[csrefKeywordsNamespace#8](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsNamespace/CS/csrefKeywordsNamespace2.cs#8)] + +A using alias directive cannot have an open generic type on the right hand side. For example, you cannot create a using alias for a `List`, but you can create one for a `List`. + +## Example 2 + +The following example shows how to define a `using` directive and a `using` alias for a class: + +[!code-csharp[csrefKeywordsNamespace#9](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsNamespace/CS/csrefKeywordsNamespace2.cs#9)] + +## C# language specification + +For more information, see [Using directives](~/_csharplang/spec/namespaces.md#using-directives) in the [C# Language Specification](../language-specification/index.md). The language specification is the definitive source for C# syntax and usage. + +## See also + +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [Using Namespaces](../../programming-guide/namespaces/using-namespaces.md) +- [C# Keywords](index.md) +- [Namespace Keywords](namespace-keywords.md) +- [Namespaces](../../programming-guide/namespaces/index.md) +- [using Statement](using-statement.md) diff --git a/docs/csharp/language-reference/keywords/using-statement.md b/docs/csharp/language-reference/keywords/using-statement.md index 651b64ba5db15..674d00a3b8e7e 100644 --- a/docs/csharp/language-reference/keywords/using-statement.md +++ b/docs/csharp/language-reference/keywords/using-statement.md @@ -1,50 +1,53 @@ --- -title: "using Statement - C# Reference" +title: "using statement - C# Reference" ms.custom: seodec18 - ms.date: 07/20/2015 -helpviewer_keywords: +helpviewer_keywords: - "using statement [C#]" ms.assetid: afc355e6-f0b9-4240-94dd-0d93f17d9fc3 --- -# using Statement (C# Reference) -Provides a convenient syntax that ensures the correct use of objects. - -## Example - The following example shows how to use the `using` statement. - - [!code-csharp[csrefKeywordsNamespace#4](../../../csharp/language-reference/keywords/codesnippet/CSharp/using-statement_1.cs)] - -## Remarks - and are examples of managed types that access unmanaged resources (in this case file handles and device contexts). There are many other kinds of unmanaged resources and class library types that encapsulate them. All such types must implement the interface. - -When the lifetime of an `IDisposable` object is limited to a single method, you should declare and instantiate it in the `using` statement. The `using` statement calls the method on the object in the correct way, and (when you use it as shown earlier) it also causes the object itself to go out of scope as soon as is called. Within the `using` block, the object is read-only and cannot be modified or reassigned. - - The `using` statement ensures that is called even if an exception occurs within the `using` block. You can achieve the same result by putting the object inside a `try` block and then calling in a `finally` block; in fact, this is how the `using` statement is translated by the compiler. The code example earlier expands to the following code at compile time (note the extra curly braces to create the limited scope for the object): - - [!code-csharp[csrefKeywordsNamespace#5](../../../csharp/language-reference/keywords/codesnippet/CSharp/using-statement_2.cs)] - - For more information about the `try`-`finally` statement, see the [try-finally](try-finally.md) topic. - - Multiple instances of a type can be declared in the `using` statement, as shown in the following example: - - [!code-csharp[csrefKeywordsNamespace#6](../../../csharp/language-reference/keywords/codesnippet/CSharp/using-statement_3.cs)] - - You can instantiate the resource object and then pass the variable to the `using` statement, but this is not a best practice. In this case, after control leaves the `using` block, the object remains in scope but probably has no access to its unmanaged resources. In other words, it's not fully initialized anymore. If you try to use the object outside the `using` block, you risk causing an exception to be thrown. For this reason, it's generally better to instantiate the object in the `using` statement and limit its scope to the `using` block. - - [!code-csharp[csrefKeywordsNamespace#7](../../../csharp/language-reference/keywords/codesnippet/CSharp/using-statement_4.cs)] - +# using statement (C# Reference) + +Provides a convenient syntax that ensures the correct use of objects. + +## Example + +The following example shows how to use the `using` statement. + +[!code-csharp[csrefKeywordsNamespace#4](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsNamespace/CS/csrefKeywordsNamespace.cs#4)] + +## Remarks + + and are examples of managed types that access unmanaged resources (in this case file handles and device contexts). There are many other kinds of unmanaged resources and class library types that encapsulate them. All such types must implement the interface. + +When the lifetime of an `IDisposable` object is limited to a single method, you should declare and instantiate it in the `using` statement. The `using` statement calls the method on the object in the correct way, and (when you use it as shown earlier) it also causes the object itself to go out of scope as soon as is called. Within the `using` block, the object is read-only and cannot be modified or reassigned. + +The `using` statement ensures that is called even if an exception occurs within the `using` block. You can achieve the same result by putting the object inside a `try` block and then calling in a `finally` block; in fact, this is how the `using` statement is translated by the compiler. The code example earlier expands to the following code at compile time (note the extra curly braces to create the limited scope for the object): + +[!code-csharp[csrefKeywordsNamespace#5](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsNamespace/CS/csrefKeywordsNamespace.cs#5)] + +For more information about the `try`-`finally` statement, see the [try-finally](try-finally.md) topic. + +Multiple instances of a type can be declared in the `using` statement, as shown in the following example: + +[!code-csharp[csrefKeywordsNamespace#6](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsNamespace/CS/csrefKeywordsNamespace.cs#6)] + +You can instantiate the resource object and then pass the variable to the `using` statement, but this is not a best practice. In this case, after control leaves the `using` block, the object remains in scope but probably has no access to its unmanaged resources. In other words, it's not fully initialized anymore. If you try to use the object outside the `using` block, you risk causing an exception to be thrown. For this reason, it's generally better to instantiate the object in the `using` statement and limit its scope to the `using` block. + +[!code-csharp[csrefKeywordsNamespace#7](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsNamespace/CS/csrefKeywordsNamespace.cs#7)] + For more information about disposing of `IDisposable` objects, see [Using objects that implement IDisposable](../../../standard/garbage-collection/using-objects.md). -## C# Language Specification - [!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] - -## See Also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [using Directive](../../../csharp/language-reference/keywords/using-directive.md) -- [Garbage Collection](../../../standard/garbage-collection/index.md) -- [Using objects that implement IDisposable](../../../standard/garbage-collection/using-objects.md) -- [IDisposable interface](xref:System.IDisposable) +## C# language specification + +For more information, see [The using statement](~/_csharplang/spec/statements.md#the-using-statement) in the [C# Language Specification](../language-specification/index.md). The language specification is the definitive source for C# syntax and usage. + +## See also + +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [C# Keywords](index.md) +- [using Directive](using-directive.md) +- [Garbage Collection](../../../standard/garbage-collection/index.md) +- [Using objects that implement IDisposable](../../../standard/garbage-collection/using-objects.md) +- [IDisposable interface](xref:System.IDisposable) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/using-static.md b/docs/csharp/language-reference/keywords/using-static.md index a08aa7536d6a6..2cc6dec351a7f 100644 --- a/docs/csharp/language-reference/keywords/using-static.md +++ b/docs/csharp/language-reference/keywords/using-static.md @@ -1,7 +1,6 @@ --- -title: "using static Directive - C# Reference" +title: "using static directive - C# Reference" ms.custom: seodec18 - ms.date: 03/10/2017 helpviewer_keywords: - "using static directive [C#]" @@ -9,7 +8,7 @@ ms.assetid: 8b8f9e34-c75e-469b-ba85-6f2eb4090314 author: "rpetrusha" ms.author: "ronpet" --- -# using static Directive (C# Reference) +# using static directive (C# Reference) The `using static` directive designates a type whose static members and nested types you can access without specifying a type name. Its syntax is: @@ -24,34 +23,34 @@ The `using static` directive applies to any type that has static members (or nes The `using static` directive was introduced in C# 6. ## Remarks - + Ordinarily, when you call a static member, you provide the type name along with the member name. Repeatedly entering the same type name to invoke members of the type can result in verbose, obscure code. For example, the following definition of a `Circle` class references a number of members of the class. - -[!code-csharp[using-static#1](../../../../samples/snippets/csharp/language-reference/keywords/using/using-static1.cs#1)] + +[!code-csharp[using-static#1](~/samples/snippets/csharp/language-reference/keywords/using/using-static1.cs#1)] By eliminating the need to explicitly reference the class each time a member is referenced, the `using static` directive produces much cleaner code: -[!code-csharp[using-static#2](../../../../samples/snippets/csharp/language-reference/keywords/using/using-static2.cs#1)] +[!code-csharp[using-static#2](~/samples/snippets/csharp/language-reference/keywords/using/using-static2.cs#1)] + +`using static` imports only accessible static members and nested types declared in the specified type. Inherited members are not imported. You can import from any named type with a using static directive, including Visual Basic modules. If F# top-level functions appear in metadata as static members of a named type whose name is a valid C# identifier, then the F# functions can be imported. + + `using static` makes extension methods declared in the specified type available for extension method lookup. However, the names of the extension methods are not imported into scope for unqualified reference in code. + + Methods with the same name imported from different types by different `using static` directives in the same compilation unit or namespace form a method group. Overload resolution within these method groups follows normal C# rules. -`using static` imports only accessible static members and nested types declared in the specified type. Inherited members are not imported. You can import from any named type with a using static directive, including Visual Basic modules. If F# top-level functions appear in metadata as static members of a named type whose name is a valid C# identifier, then the F# functions can be imported. - - `using static` makes extension methods declared in the specified type available for extension method lookup. However, the names of the extension methods are not imported into scope for unqualified reference in code. - - Methods with the same name imported from different types by different `using static` directives in the same compilation unit or namespace form a method group. Overload resolution within these method groups follows normal C# rules. - ## Example The following example uses the `using static` directive to make the static members of the , , and classes available without having to specify their type name. -[!code-csharp[using-static#3](../../../../samples/snippets/csharp/language-reference/keywords/using/using-static3.cs)] +[!code-csharp[using-static#3](~/samples/snippets/csharp/language-reference/keywords/using/using-static3.cs)] In the example, the `using static` directive could also have been applied to the type. This would have made it possible to call the method without specifying a type name. However, this creates less readable code, since it becomes necessary to check the `using static` statements to determine which numeric type's `TryParse` method is called. ## See also - [using directive](using-directive.md) -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Using Namespaces](../../../csharp/programming-guide/namespaces/using-namespaces.md) -- [Namespace Keywords](../../../csharp/language-reference/keywords/namespace-keywords.md) -- [Namespaces](../../../csharp/programming-guide/namespaces/index.md) +- [C# Reference](../index.md) +- [C# Keywords](index.md) +- [Using Namespaces](../../programming-guide/namespaces/using-namespaces.md) +- [Namespace Keywords](namespace-keywords.md) +- [Namespaces](../../programming-guide/namespaces/index.md) diff --git a/docs/csharp/language-reference/keywords/using.md b/docs/csharp/language-reference/keywords/using.md index 024b132165305..bdc13878914d9 100644 --- a/docs/csharp/language-reference/keywords/using.md +++ b/docs/csharp/language-reference/keywords/using.md @@ -1,7 +1,6 @@ --- -title: "using - C# Reference" +title: "using keyword - C# Reference" ms.custom: seodec18 - ms.date: 07/20/2015 f1_keywords: - "using_CSharpKeyword" @@ -11,19 +10,20 @@ helpviewer_keywords: ms.assetid: 124e1a63-2a4b-4132-b269-3b6d8d3ef72d --- # using (C# Reference) -The `using` keyword has two major uses: - -- As a directive, when it is used to create an alias for a namespace or to import types defined in other namespaces. See [using Directive](../../../csharp/language-reference/keywords/using-directive.md). - -- As a statement, when it defines a scope at the end of which an object will be disposed. See [using Statement](../../../csharp/language-reference/keywords/using-statement.md). - + +The `using` keyword has two major uses: + +- As a directive, when it is used to create an alias for a namespace or to import types defined in other namespaces. See [using directive](using-directive.md). + +- As a statement, when it defines a scope at the end of which an object will be disposed. See [using statement](using-statement.md). + In addition, the [using static](using-static.md) directive lets you define a type whose static members you can access without specifying a type name. -## See Also +## See also -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Namespace Keywords](../../../csharp/language-reference/keywords/namespace-keywords.md) -- [Namespaces](../../../csharp/programming-guide/namespaces/index.md) -- [extern](../../../csharp/language-reference/keywords/extern.md) +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [C# Keywords](index.md) +- [Namespace Keywords](namespace-keywords.md) +- [Namespaces](../../programming-guide/namespaces/index.md) +- [extern](extern.md) \ No newline at end of file From d0b1db755e98a7203d52618f23c745e18398a8f0 Mon Sep 17 00:00:00 2001 From: Petr Kulikov Date: Mon, 17 Dec 2018 16:56:16 +0100 Subject: [PATCH 04/19] Fix typo (#9632) --- docs/csharp/language-reference/operators/not-equal-operator.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/operators/not-equal-operator.md b/docs/csharp/language-reference/operators/not-equal-operator.md index 390c3939eae79..6db371b8105e2 100644 --- a/docs/csharp/language-reference/operators/not-equal-operator.md +++ b/docs/csharp/language-reference/operators/not-equal-operator.md @@ -12,7 +12,7 @@ ms.assetid: eeff7a4e-ad6f-462d-9f8d-49e9b91c6c97 --- # != Operator (C# Reference) -The inequality operator `!=` returns `true` if its operands are not equal, `true` otherwise. For the operands of the [built-in types](../keywords/built-in-types-table.md), the expression `x != y` produces the same result as the expression `!(x == y)`. For more information, see the [== Operator](equality-comparison-operator.md) article. +The inequality operator `!=` returns `true` if its operands are not equal, `false` otherwise. For the operands of the [built-in types](../keywords/built-in-types-table.md), the expression `x != y` produces the same result as the expression `!(x == y)`. For more information, see the [== Operator](equality-comparison-operator.md) article. The following example demonstrates the usage of the `!=` operator: From d4bf030706d2577eabfd8ff700e02f8f94b45dde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E4=B9=9D=E9=BC=8E?= <109224573@qq.com> Date: Tue, 18 Dec 2018 00:04:51 +0800 Subject: [PATCH 05/19] Remove Parentheses && Add coding language (#9618) --- ...run-partially-trusted-code-in-a-sandbox.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/docs/framework/misc/how-to-run-partially-trusted-code-in-a-sandbox.md b/docs/framework/misc/how-to-run-partially-trusted-code-in-a-sandbox.md index 3b141d735d125..f506fd3e841c7 100644 --- a/docs/framework/misc/how-to-run-partially-trusted-code-in-a-sandbox.md +++ b/docs/framework/misc/how-to-run-partially-trusted-code-in-a-sandbox.md @@ -24,7 +24,7 @@ ms.author: "mairaw" The overload has the following signature: -``` +```csharp AppDomain.CreateDomain( string friendlyName, Evidence securityInfo, AppDomainSetup info, @@ -44,7 +44,7 @@ AppDomain.CreateDomain( string friendlyName, 1. Create the permission set to be granted to the untrusted application. The minimum permission you can grant is permission. You can also grant additional permissions you think might be safe for untrusted code; for example, . The following code creates a new permission set with only permission. - ``` + ```csharp PermissionSet permSet = new PermissionSet(PermissionState.None); permSet.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution)); ``` @@ -61,7 +61,7 @@ AppDomain.CreateDomain( string friendlyName, 2. Sign the assembly that contains the hosting class (named `Sandboxer` in this example) that calls the untrusted code. Add the used to sign the assembly to the array of the `fullTrustAssemblies` parameter of the call. The hosting class must run as fully trusted to enable the execution of the partial-trust code or to offer services to the partial-trust application. This is how you read the of an assembly: - ``` + ```csharp StrongName fullTrustAssembly = typeof(Sandboxer).Assembly.Evidence.GetHostEvidence(); ``` @@ -69,7 +69,7 @@ AppDomain.CreateDomain( string friendlyName, 3. Initialize the parameter of the method. With this parameter, you can control many of the settings of the new . The property is an important setting, and should be different from the property for the of the hosting application. If the settings are the same, the partial-trust application can get the hosting application to load (as fully trusted) an exception it defines, thus exploiting it. This is another reason why a catch (exception) is not recommended. Setting the application base of the host differently from the application base of the sandboxed application mitigates the risk of exploits. - ``` + ```csharp AppDomainSetup adSetup = new AppDomainSetup(); adSetup.ApplicationBase = Path.GetFullPath(pathToUntrusted); ``` @@ -78,7 +78,7 @@ AppDomain.CreateDomain( string friendlyName, The signature for this method is: - ``` + ```csharp public static AppDomain CreateDomain(string friendlyName, Evidence securityInfo, AppDomainSetup info, PermissionSet grantSet, params StrongName[] fullTrustAssemblies) @@ -96,7 +96,7 @@ AppDomain.CreateDomain( string friendlyName, - The code to create the application domain is: - ``` + ```csharp AppDomain newDomain = AppDomain.CreateDomain("Sandbox", null, adSetup, permSet, fullTrustAssembly); ``` @@ -112,7 +112,7 @@ AppDomain.CreateDomain( string friendlyName, - You can do the creation under an for full-trust (), which enables you to create an instance of a critical class. (This happens whenever your assembly has no transparency markings and is loaded as fully trusted.) Therefore, you have to be careful to create only code that you trust with this function, and we recommend that you create only instances of fully trusted classes in the new application domain. - ``` + ```csharp ObjectHandle handle = Activator.CreateInstanceFrom( newDomain, typeof(Sandboxer).Assembly.ManifestModule.FullyQualifiedName, typeof(Sandboxer).FullName ); @@ -120,53 +120,53 @@ AppDomain.CreateDomain( string friendlyName, Note that in order to create an instance of a class in a new domain, the class has to extend the class - ``` + ```csharp class Sandboxer:MarshalByRefObject ``` 6. Unwrap the new domain instance into a reference in this domain. This reference is used to execute the untrusted code. - ``` + ```csharp Sandboxer newDomainInstance = (Sandboxer) handle.Unwrap(); ``` 7. Call the `ExecuteUntrustedCode` method in the instance of the `Sandboxer` class you just created. - ``` + ```csharp newDomainInstance.ExecuteUntrustedCode(untrustedAssembly, untrustedClass, entryPoint, parameters); ``` This call is executed in the sandboxed application domain, which has restricted permissions. - ``` + ```csharp public void ExecuteUntrustedCode(string assemblyName, string typeName, string entryPoint, Object[] parameters) + { + //Load the MethodInfo for a method in the new assembly. This might be a method you know, or + //you can use Assembly.EntryPoint to get to the entry point in an executable. + MethodInfo target = Assembly.Load(assemblyName).GetType(typeName).GetMethod(entryPoint); + try + { + // Invoke the method. + target.Invoke(null, parameters); + } + catch (Exception ex) { - //Load the MethodInfo for a method in the new assembly. This might be a method you know, or - //you can use Assembly.EntryPoint to get to the entry point in an executable. - MethodInfo target = Assembly.Load(assemblyName).GetType(typeName).GetMethod(entryPoint); - try - { - // Invoke the method. - target.Invoke(null, parameters); - } - catch (Exception ex) - { - //When information is obtained from a SecurityException extra information is provided if it is - //accessed in full-trust. - (new PermissionSet(PermissionState.Unrestricted)).Assert(); - Console.WriteLine("SecurityException caught:\n{0}", ex.ToString()); - CodeAccessPermission.RevertAssert(); - Console.ReadLine(); - } + //When information is obtained from a SecurityException extra information is provided if it is + //accessed in full-trust. + new PermissionSet(PermissionState.Unrestricted).Assert(); + Console.WriteLine("SecurityException caught:\n{0}", ex.ToString()); + CodeAccessPermission.RevertAssert(); + Console.ReadLine(); } + } ``` is used to get a handle of a method in the partially trusted assembly. The handle can be used to execute code in a safe way with minimum permissions. In the previous code, note the for the full-trust permission before printing the . - ``` - new PermissionSet(PermissionState.Unrestricted)).Assert() + ```csharp + new PermissionSet(PermissionState.Unrestricted).Assert() ``` The full-trust assert is used to obtain extended information from the . Without the , the method of will discover that there is partially trusted code on the stack and will restrict the information returned. This could cause security issues if the partial-trust code could read that information, but the risk is mitigated by not granting . The full-trust assert should be used sparingly and only when you are sure that you are not allowing partial-trust code to elevate to full trust. As a rule, do not call code you do not trust in the same function and after you called an assert for full trust. It is good practice to always revert the assert when you have finished using it. @@ -174,7 +174,7 @@ AppDomain.CreateDomain( string friendlyName, ## Example The following example implements the procedure in the previous section. In the example, a project named `Sandboxer` in a Visual Studio solution also contains a project named `UntrustedCode`, which implements the class `UntrustedClass`. This scenario assumes that you have downloaded a library assembly containing a method that is expected to return `true` or `false` to indicate whether the number you provided is a Fibonacci number. Instead, the method attempts to read a file from your computer. The following example shows the untrusted code. -``` +```csharp using System; using System.IO; namespace UntrustedCode @@ -194,7 +194,7 @@ namespace UntrustedCode The following example shows the `Sandboxer` application code that executes the untrusted code. -``` +```csharp using System; using System.Collections.Generic; using System.Linq; @@ -258,7 +258,7 @@ class Sandboxer : MarshalByRefObject { // When we print informations from a SecurityException extra information can be printed if we are //calling it with a full-trust stack. - (new PermissionSet(PermissionState.Unrestricted)).Assert(); + new PermissionSet(PermissionState.Unrestricted).Assert(); Console.WriteLine("SecurityException caught:\n{0}", ex.ToString()); CodeAccessPermission.RevertAssert(); Console.ReadLine(); From 495f3cc11d1d12cc1a34d1f3ef12a3c0da4d5f75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E4=B9=9D=E9=BC=8E?= <109224573@qq.com> Date: Tue, 18 Dec 2018 00:05:52 +0800 Subject: [PATCH 06/19] Fix sample link (#9624) --- .../controls/how-to-create-a-custom-view-mode-for-a-listview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/framework/wpf/controls/how-to-create-a-custom-view-mode-for-a-listview.md b/docs/framework/wpf/controls/how-to-create-a-custom-view-mode-for-a-listview.md index 181247174f6cf..e03c47849f6c6 100644 --- a/docs/framework/wpf/controls/how-to-create-a-custom-view-mode-for-a-listview.md +++ b/docs/framework/wpf/controls/how-to-create-a-custom-view-mode-for-a-listview.md @@ -34,7 +34,7 @@ This example shows how to create a custom From 24c05b74699ef725802d878005cbaa3e54bc4b6a Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 17 Dec 2018 10:45:36 -0800 Subject: [PATCH 07/19] remove inner snippets + formatting (#9629) --- .../keywords/codesnippet/CSharp/value_1.cs | 42 ------- .../keywords/codesnippet/CSharp/var_1.cs | 26 ---- .../keywords/codesnippet/CSharp/virtual_1.cs | 42 ------- .../keywords/codesnippet/CSharp/virtual_2.cs | 75 ----------- .../keywords/value-types-table.md | 40 +++--- .../keywords/value-types.md | 118 +++++++++--------- .../language-reference/keywords/value.md | 31 ++--- .../csharp/language-reference/keywords/var.md | 40 +++--- .../language-reference/keywords/virtual.md | 109 ++++++++-------- .../language-reference/keywords/void.md | 22 ++-- .../language-reference/keywords/volatile.md | 34 ++--- 11 files changed, 201 insertions(+), 378 deletions(-) delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/value_1.cs delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/var_1.cs delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/virtual_1.cs delete mode 100644 docs/csharp/language-reference/keywords/codesnippet/CSharp/virtual_2.cs diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/value_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/value_1.cs deleted file mode 100644 index ffcb680b43ccf..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/value_1.cs +++ /dev/null @@ -1,42 +0,0 @@ - class MyBaseClass - { - // virtual auto-implemented property. Overrides can only - // provide specialized behavior if they implement get and set accessors. - public virtual string Name { get; set; } - - // ordinary virtual property with backing field - private int num; - public virtual int Number - { - get { return num; } - set { num = value; } - } - } - - - class MyDerivedClass : MyBaseClass - { - private string name; - - // Override auto-implemented property with ordinary property - // to provide specialized accessor behavior. - public override string Name - { - get - { - return name; - } - set - { - if (value != String.Empty) - { - name = value; - } - else - { - name = "Unknown"; - } - } - } - - } \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/var_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/var_1.cs deleted file mode 100644 index 3b055be00d900..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/var_1.cs +++ /dev/null @@ -1,26 +0,0 @@ - // Example #1: var is optional because - // the select clause specifies a string - string[] words = { "apple", "strawberry", "grape", "peach", "banana" }; - var wordQuery = from word in words - where word[0] == 'g' - select word; - - // Because each element in the sequence is a string, - // not an anonymous type, var is optional here also. - foreach (string s in wordQuery) - { - Console.WriteLine(s); - } - - // Example #2: var is required when - // the select clause specifies an anonymous type - var custQuery = from cust in customers - where cust.City == "Phoenix" - select new { cust.Name, cust.Phone }; - - // var must be used because each item - // in the sequence is an anonymous type - foreach (var item in custQuery) - { - Console.WriteLine("Name={0}, Phone={1}", item.Name, item.Phone); - } diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/virtual_1.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/virtual_1.cs deleted file mode 100644 index ffcb680b43ccf..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/virtual_1.cs +++ /dev/null @@ -1,42 +0,0 @@ - class MyBaseClass - { - // virtual auto-implemented property. Overrides can only - // provide specialized behavior if they implement get and set accessors. - public virtual string Name { get; set; } - - // ordinary virtual property with backing field - private int num; - public virtual int Number - { - get { return num; } - set { num = value; } - } - } - - - class MyDerivedClass : MyBaseClass - { - private string name; - - // Override auto-implemented property with ordinary property - // to provide specialized accessor behavior. - public override string Name - { - get - { - return name; - } - set - { - if (value != String.Empty) - { - name = value; - } - else - { - name = "Unknown"; - } - } - } - - } \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/codesnippet/CSharp/virtual_2.cs b/docs/csharp/language-reference/keywords/codesnippet/CSharp/virtual_2.cs deleted file mode 100644 index 2d50e54f02078..0000000000000 --- a/docs/csharp/language-reference/keywords/codesnippet/CSharp/virtual_2.cs +++ /dev/null @@ -1,75 +0,0 @@ - class TestClass - { - public class Shape - { - public const double PI = Math.PI; - protected double x, y; - public Shape() - { - } - public Shape(double x, double y) - { - this.x = x; - this.y = y; - } - - public virtual double Area() - { - return x * y; - } - } - - public class Circle : Shape - { - public Circle(double r) : base(r, 0) - { - } - - public override double Area() - { - return PI * x * x; - } - } - - class Sphere : Shape - { - public Sphere(double r) : base(r, 0) - { - } - - public override double Area() - { - return 4 * PI * x * x; - } - } - - class Cylinder : Shape - { - public Cylinder(double r, double h) : base(r, h) - { - } - - public override double Area() - { - return 2 * PI * x * x + 2 * PI * x * y; - } - } - - static void Main() - { - double r = 3.0, h = 5.0; - Shape c = new Circle(r); - Shape s = new Sphere(r); - Shape l = new Cylinder(r, h); - // Display results: - Console.WriteLine("Area of Circle = {0:F2}", c.Area()); - Console.WriteLine("Area of Sphere = {0:F2}", s.Area()); - Console.WriteLine("Area of Cylinder = {0:F2}", l.Area()); - } - } - /* - Output: - Area of Circle = 28.27 - Area of Sphere = 113.10 - Area of Cylinder = 150.80 - */ \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/value-types-table.md b/docs/csharp/language-reference/keywords/value-types-table.md index 8d295b05f42f6..73e79c12b2df3 100644 --- a/docs/csharp/language-reference/keywords/value-types-table.md +++ b/docs/csharp/language-reference/keywords/value-types-table.md @@ -11,25 +11,25 @@ ms.assetid: 67d8f631-b6e3-4d83-9910-5ec497f8c5f3 --- # Value types table (C# Reference) -The following table shows the C# value types. - -|Value type|Category|Type suffix| -|----------------|--------------|-----------------| -|[bool](bool.md)|Boolean|| -|[byte](byte.md)|Unsigned, numeric, [integral](integral-types-table.md)|| -|[char](char.md)|Unsigned, numeric, [integral](integral-types-table.md)|| -|[decimal](decimal.md)|Numeric, [floating-point](floating-point-types-table.md)|M or m| -|[double](double.md)|Numeric, [floating-point](floating-point-types-table.md)|D or d| -|[enum](enum.md)|Enumeration|| -|[float](float.md)|Numeric, [floating-point](floating-point-types-table.md)|F or f| -|[int](int.md)|Signed, numeric, [integral](integral-types-table.md)|| -|[long](long.md)|Signed, numeric, [integral](integral-types-table.md)|L or l| -|[sbyte](sbyte.md)|Signed, numeric, [integral](integral-types-table.md)|| -|[short](short.md)|Signed, numeric, [integral](integral-types-table.md)|| -|[struct](struct.md)|User-defined structure|| -|[uint](uint.md)|Unsigned, numeric, [integral](integral-types-table.md)|U or u| -|[ulong](ulong.md)|Unsigned, numeric, [integral](integral-types-table.md)|UL, Ul, uL, ul, LU, Lu, lU, or lu| -|[ushort](ushort.md)|Unsigned, numeric, [integral](integral-types-table.md)|| +The following table shows the C# value types: + +|Value type|Category|Type suffix| +|----------------|--------------|-----------------| +|[bool](bool.md)|Boolean|| +|[byte](byte.md)|Unsigned, numeric, [integral](integral-types-table.md)|| +|[char](char.md)|Unsigned, numeric, [integral](integral-types-table.md)|| +|[decimal](decimal.md)|Numeric, [floating-point](floating-point-types-table.md)|M or m| +|[double](double.md)|Numeric, [floating-point](floating-point-types-table.md)|D or d| +|[enum](enum.md)|Enumeration|| +|[float](float.md)|Numeric, [floating-point](floating-point-types-table.md)|F or f| +|[int](int.md)|Signed, numeric, [integral](integral-types-table.md)|| +|[long](long.md)|Signed, numeric, [integral](integral-types-table.md)|L or l| +|[sbyte](sbyte.md)|Signed, numeric, [integral](integral-types-table.md)|| +|[short](short.md)|Signed, numeric, [integral](integral-types-table.md)|| +|[struct](struct.md)|User-defined structure|| +|[uint](uint.md)|Unsigned, numeric, [integral](integral-types-table.md)|U or u| +|[ulong](ulong.md)|Unsigned, numeric, [integral](integral-types-table.md)|UL, Ul, uL, ul, LU, Lu, lU, or lu| +|[ushort](ushort.md)|Unsigned, numeric, [integral](integral-types-table.md)|| ## Remarks @@ -50,4 +50,4 @@ If a [real numerical literal](~/_csharplang/spec/lexical-structure.md#real-liter - [Reference tables for types](reference-tables-for-types.md) - [Default values table](default-values-table.md) - [Value types](value-types.md) -- [Formatting numeric results table](formatting-numeric-results-table.md) +- [Formatting numeric results table](formatting-numeric-results-table.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/value-types.md b/docs/csharp/language-reference/keywords/value-types.md index 80f6fe2957021..6ce62ac048bae 100644 --- a/docs/csharp/language-reference/keywords/value-types.md +++ b/docs/csharp/language-reference/keywords/value-types.md @@ -23,14 +23,14 @@ There are two kinds of value types: A variable of a value type contains a value of the type. For example, a variable of the `int` type might contain the value `42`. This differs from a variable of a reference type, which contains a reference to an instance of the type, also known as an object. When you assign a new value to a variable of a value type, that value is copied. When you assign a new value to a variable of a reference type, the reference is copied, not the object itself. -All value types are derived implicitly from the . - -Unlike with reference types, you cannot derive a new type from a value type. However, like reference types, structs can implement interfaces. - +All value types are derived implicitly from the . + +Unlike with reference types, you cannot derive a new type from a value type. However, like reference types, structs can implement interfaces. + Value type variables cannot be `null` by default. However, variables of the corresponding [nullable types](../../../csharp/programming-guide/nullable-types/index.md) can be `null`. - -Each value type has an implicit default constructor that initializes the default value of that type. For information about default values of value types, see [Default values table](default-values-table.md). - + +Each value type has an implicit default constructor that initializes the default value of that type. For information about default values of value types, see [Default values table](default-values-table.md). + ## Simple types The *simple types* are a set of predefined struct types provided by C# and comprise the following types: @@ -50,59 +50,59 @@ The simple types differ from other struct types in that they permit certain addi - Constant expressions, whose operands are all simple type constants, are evaluated at compile time. For more information, see the [Simple types](~/_csharplang/spec/types.md#simple-types) section of the [C# language specification](../language-specification/index.md). - + ## Initializing value types - Local variables in C# must be initialized before they are used. For example, you might declare a local variable without initialization as in the following example: - -```csharp -int myInt; -``` - - You cannot use it before you initialize it. You can initialize it using the following statement: - -```csharp -myInt = new int(); // Invoke default constructor for int type. -``` - - This statement is equivalent to the following statement: - -```csharp -myInt = 0; // Assign an initial value, 0 in this example. -``` - - You can, of course, have the declaration and the initialization in the same statement as in the following examples: - -```csharp -int myInt = new int(); -``` - - –or– - -```csharp -int myInt = 0; -``` - - Using the [new](new.md) operator calls the default constructor of the specific type and assigns the default value to the variable. In the preceding example, the default constructor assigned the value `0` to `myInt`. For more information about values assigned by calling default constructors, see [Default values table](default-values-table.md). - - With user-defined types, use [new](new.md) to invoke the default constructor. For example, the following statement invokes the default constructor of the `Point` struct: - -```csharp -Point p = new Point(); // Invoke default constructor for the struct. -``` - - After this call, the struct is considered to be definitely assigned; that is, all its members are initialized to their default values. - - For more information about the `new` operator, see [new](new.md). - - For information about formatting the output of numeric types, see [Formatting numeric results table](formatting-numeric-results-table.md). - +Local variables in C# must be initialized before they are used. For example, you might declare a local variable without initialization as in the following example: + +```csharp +int myInt; +``` + +You cannot use it before you initialize it. You can initialize it using the following statement: + +```csharp +myInt = new int(); // Invoke default constructor for int type. +``` + +This statement is equivalent to the following statement: + +```csharp +myInt = 0; // Assign an initial value, 0 in this example. +``` + +You can, of course, have the declaration and the initialization in the same statement as in the following examples: + +```csharp +int myInt = new int(); +``` + +–or– + +```csharp +int myInt = 0; +``` + +Using the [new](new.md) operator calls the default constructor of the specific type and assigns the default value to the variable. In the preceding example, the default constructor assigned the value `0` to `myInt`. For more information about values assigned by calling default constructors, see [Default values table](default-values-table.md). + +With user-defined types, use [new](new.md) to invoke the default constructor. For example, the following statement invokes the default constructor of the `Point` struct: + +```csharp +Point p = new Point(); // Invoke default constructor for the struct. +``` + +After this call, the struct is considered to be definitely assigned; that is, all its members are initialized to their default values. + +For more information about the `new` operator, see [new](new.md). + +For information about formatting the output of numeric types, see [Formatting numeric results table](formatting-numeric-results-table.md). + ## See also -- [C# Reference](../index.md) -- [C# Programming Guide](../../programming-guide/index.md) -- [C# Keywords](index.md) -- [Types](types.md) -- [Reference tables for types](reference-tables-for-types.md) -- [Reference Types](reference-types.md) -- [Nullable types](../../programming-guide/nullable-types/index.md) +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [C# Keywords](index.md) +- [Types](types.md) +- [Reference tables for types](reference-tables-for-types.md) +- [Reference Types](reference-types.md) +- [Nullable types](../../programming-guide/nullable-types/index.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/value.md b/docs/csharp/language-reference/keywords/value.md index 2308290c4a802..5290518769073 100644 --- a/docs/csharp/language-reference/keywords/value.md +++ b/docs/csharp/language-reference/keywords/value.md @@ -1,7 +1,6 @@ --- -title: "value - C# Reference" +title: "value contextual keyword - C# Reference" ms.custom: seodec18 - ms.date: 07/20/2015 f1_keywords: - "value_CSharpKeyword" @@ -10,17 +9,19 @@ helpviewer_keywords: ms.assetid: c99d6468-687f-4a46-89b4-a95e1b00bf6d --- # value (C# Reference) -The contextual keyword `value` is used in the set accessor in ordinary property declarations. It is similar to an input parameter on a method. The word `value` references the value that client code is attempting to assign to the property. In the following example, `MyDerivedClass` has a property called `Name` that uses the `value` parameter to assign a new string to the backing field `name`. From the point of view of client code, the operation is written as a simple assignment. - - [!code-csharp[csrefKeywordsModifiers#26](../../../csharp/language-reference/keywords/codesnippet/CSharp/value_1.cs)] - - For more information about the use of `value`, see [Properties](../../../csharp/programming-guide/classes-and-structs/properties.md). - -## C# Language Specification - [!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] - -## See Also -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) +The contextual keyword `value` is used in the set accessor in ordinary property declarations. It is similar to an input parameter on a method. The word `value` references the value that client code is attempting to assign to the property. In the following example, `MyDerivedClass` has a property called `Name` that uses the `value` parameter to assign a new string to the backing field `name`. From the point of view of client code, the operation is written as a simple assignment. + +[!code-csharp[csrefKeywordsModifiers#26](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsModifiers/CS/csrefKeywordsModifiers.cs#26)] + +For more information about the use of `value`, see [Properties](../../programming-guide/classes-and-structs/properties.md). + +## C# language specification + +[!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] + +## See also + +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [C# Keywords](index.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/var.md b/docs/csharp/language-reference/keywords/var.md index 831ed5f249d1e..3f76bc27ad0aa 100644 --- a/docs/csharp/language-reference/keywords/var.md +++ b/docs/csharp/language-reference/keywords/var.md @@ -11,22 +11,24 @@ helpviewer_keywords: ms.assetid: 0777850a-2691-4e3e-927f-0c850f5efe15 --- # var (C# Reference) -Beginning in Visual C# 3.0, variables that are declared at method scope can have an implicit "type" `var`. An implicitly typed local variable is strongly typed just as if you had declared the type yourself, but the compiler determines the type. The following two declarations of `i` are functionally equivalent: - -```csharp -var i = 10; // Implicitly typed. -int i = 10; // Explicitly typed. -``` - - For more information, see [Implicitly Typed Local Variables](../../../csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables.md) and [Type Relationships in LINQ Query Operations](../../../csharp/programming-guide/concepts/linq/type-relationships-in-linq-query-operations.md). - -## Example - The following example shows two query expressions. In the first expression, the use of `var` is permitted but is not required, because the type of the query result can be stated explicitly as an `IEnumerable`. However, in the second expression, `var` allows the result to be a collection of anonymous types, and the name of that type is not accessible except to the compiler itself. Use of `var` eliminates the requirement to create a new class for the result. Note that in Example #2, the `foreach` iteration variable `item` must also be implicitly typed. - - [!code-csharp[csrefKeywordsTypes#18](../../../csharp/language-reference/keywords/codesnippet/CSharp/var_1.cs)] - -## See Also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [Implicitly Typed Local Variables](../../../csharp/programming-guide/classes-and-structs/implicitly-typed-local-variables.md) + +Beginning in Visual C# 3.0, variables that are declared at method scope can have an implicit "type" `var`. An implicitly typed local variable is strongly typed just as if you had declared the type yourself, but the compiler determines the type. The following two declarations of `i` are functionally equivalent: + +```csharp +var i = 10; // Implicitly typed. +int i = 10; // Explicitly typed. +``` + +For more information, see [Implicitly Typed Local Variables](../../programming-guide/classes-and-structs/implicitly-typed-local-variables.md) and [Type Relationships in LINQ Query Operations](../../programming-guide/concepts/linq/type-relationships-in-linq-query-operations.md). + +## Example + +The following example shows two query expressions. In the first expression, the use of `var` is permitted but is not required, because the type of the query result can be stated explicitly as an `IEnumerable`. However, in the second expression, `var` allows the result to be a collection of anonymous types, and the name of that type is not accessible except to the compiler itself. Use of `var` eliminates the requirement to create a new class for the result. Note that in Example #2, the `foreach` iteration variable `item` must also be implicitly typed. + +[!code-csharp[csrefKeywordsTypes#18](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsTypes/CS/keywordsTypes.cs#18)] + +## See also + +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [Implicitly Typed Local Variables](../../programming-guide/classes-and-structs/implicitly-typed-local-variables.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/virtual.md b/docs/csharp/language-reference/keywords/virtual.md index 609dccd16f4f8..c9bb73d6d0b22 100644 --- a/docs/csharp/language-reference/keywords/virtual.md +++ b/docs/csharp/language-reference/keywords/virtual.md @@ -1,7 +1,6 @@ --- title: "virtual - C# Reference" ms.custom: seodec18 - ms.date: 07/20/2015 f1_keywords: - "virtual_CSharpKeyword" @@ -11,55 +10,59 @@ helpviewer_keywords: ms.assetid: 5da9abae-bc1e-434f-8bea-3601b8dcb3b2 --- # virtual (C# Reference) -The `virtual` keyword is used to modify a method, property, indexer, or event declaration and allow for it to be overridden in a derived class. For example, this method can be overridden by any class that inherits it: - -```csharp -public virtual double Area() -{ - return x * y; -} -``` - - The implementation of a virtual member can be changed by an [overriding member](../../../csharp/language-reference/keywords/override.md) in a derived class. For more information about how to use the `virtual` keyword, see [Versioning with the Override and New Keywords](../../../csharp/programming-guide/classes-and-structs/versioning-with-the-override-and-new-keywords.md) and [Knowing When to Use Override and New Keywords](../../../csharp/programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md). - -## Remarks - When a virtual method is invoked, the run-time type of the object is checked for an overriding member. The overriding member in the most derived class is called, which might be the original member, if no derived class has overridden the member. - - By default, methods are non-virtual. You cannot override a non-virtual method. - - You cannot use the `virtual` modifier with the `static`, `abstract`, `private`, or `override` modifiers. The following example shows a virtual property: - - [!code-csharp[csrefKeywordsModifiers#26](../../../csharp/language-reference/keywords/codesnippet/CSharp/virtual_1.cs)] - - Virtual properties behave like abstract methods, except for the differences in declaration and invocation syntax. - -- It is an error to use the `virtual` modifier on a static property. - -- A virtual inherited property can be overridden in a derived class by including a property declaration that uses the `override` modifier. - -## Example - In this example, the `Shape` class contains the two coordinates `x`, `y`, and the `Area()` virtual method. Different shape classes such as `Circle`, `Cylinder`, and `Sphere` inherit the `Shape` class, and the surface area is calculated for each figure. Each derived class has its own override implementation of `Area()`. - - Notice that the inherited classes `Circle`, `Sphere`, and `Cylinder` all use constructors that initialize the base class, as shown in the following declaration. - -```csharp -public Cylinder(double r, double h): base(r, h) {} -``` - - The following program calculates and displays the appropriate area for each figure by invoking the appropriate implementation of the `Area()` method, according to the object that is associated with the method. - - [!code-csharp[csrefKeywordsModifiers#23](../../../csharp/language-reference/keywords/codesnippet/CSharp/virtual_2.cs)] - -## C# Language Specification - [!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] - -## See Also - -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [Modifiers](../../../csharp/language-reference/keywords/modifiers.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Polymorphism](../../../csharp/programming-guide/classes-and-structs/polymorphism.md) -- [abstract](../../../csharp/language-reference/keywords/abstract.md) -- [override](../../../csharp/language-reference/keywords/override.md) -- [new](../../../csharp/language-reference/keywords/new.md) + +The `virtual` keyword is used to modify a method, property, indexer, or event declaration and allow for it to be overridden in a derived class. For example, this method can be overridden by any class that inherits it: + +```csharp +public virtual double Area() +{ + return x * y; +} +``` + +The implementation of a virtual member can be changed by an [overriding member](override.md) in a derived class. For more information about how to use the `virtual` keyword, see [Versioning with the Override and New Keywords](../../programming-guide/classes-and-structs/versioning-with-the-override-and-new-keywords.md) and [Knowing When to Use Override and New Keywords](../../programming-guide/classes-and-structs/knowing-when-to-use-override-and-new-keywords.md). + +## Remarks + +When a virtual method is invoked, the run-time type of the object is checked for an overriding member. The overriding member in the most derived class is called, which might be the original member, if no derived class has overridden the member. + +By default, methods are non-virtual. You cannot override a non-virtual method. + +You cannot use the `virtual` modifier with the `static`, `abstract`, `private`, or `override` modifiers. The following example shows a virtual property: + +[!code-csharp[csrefKeywordsModifiers#26](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsModifiers/CS/csrefKeywordsModifiers.cs#26)] + +Virtual properties behave like abstract methods, except for the differences in declaration and invocation syntax. + +- It is an error to use the `virtual` modifier on a static property. + +- A virtual inherited property can be overridden in a derived class by including a property declaration that uses the `override` modifier. + +## Example + +In this example, the `Shape` class contains the two coordinates `x`, `y`, and the `Area()` virtual method. Different shape classes such as `Circle`, `Cylinder`, and `Sphere` inherit the `Shape` class, and the surface area is calculated for each figure. Each derived class has its own override implementation of `Area()`. + +Notice that the inherited classes `Circle`, `Sphere`, and `Cylinder` all use constructors that initialize the base class, as shown in the following declaration. + +```csharp +public Cylinder(double r, double h): base(r, h) {} +``` + +The following program calculates and displays the appropriate area for each figure by invoking the appropriate implementation of the `Area()` method, according to the object that is associated with the method. + +[!code-csharp[csrefKeywordsModifiers#23](~/samples/snippets/csharp/VS_Snippets_VBCSharp/csrefKeywordsModifiers/CS/csrefKeywordsModifiers.cs#23)] + +## C# language specification + +[!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] + +## See also + +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [Modifiers](modifiers.md) +- [C# Keywords](index.md) +- [Polymorphism](../../programming-guide/classes-and-structs/polymorphism.md) +- [abstract](abstract.md) +- [override](override.md) +- [new](new.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/void.md b/docs/csharp/language-reference/keywords/void.md index c8c6c386f1acd..8ccf9c7a7e9dc 100644 --- a/docs/csharp/language-reference/keywords/void.md +++ b/docs/csharp/language-reference/keywords/void.md @@ -11,6 +11,7 @@ helpviewer_keywords: ms.assetid: 0d2d8a95-fe20-4fbd-bf5d-c1e54bce71d4 --- # void (C# Reference) + When used as the return type for a method, `void` specifies that the method doesn't return a value. `void` isn't allowed in the parameter list of a method. A method that takes no parameters and returns no value is declared as follows: @@ -22,19 +23,20 @@ public void SampleMethod() } ``` -`void` is also used in an unsafe context to declare a pointer to an unknown type. For more information, see [Pointer types](../../../csharp/programming-guide/unsafe-code-pointers/pointer-types.md). +`void` is also used in an unsafe context to declare a pointer to an unknown type. For more information, see [Pointer types](../../programming-guide/unsafe-code-pointers/pointer-types.md). `void` is an alias for the .NET Framework type. -## C# Language Specification - [!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] +## C# language specification + +[!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] ## See also -- [C# Reference](../../../csharp/language-reference/index.md) -- [C# Programming Guide](../../../csharp/programming-guide/index.md) -- [C# Keywords](../../../csharp/language-reference/keywords/index.md) -- [Reference Types](../../../csharp/language-reference/keywords/reference-types.md) -- [Value Types](../../../csharp/language-reference/keywords/value-types.md) -- [Methods](../../../csharp/programming-guide/classes-and-structs/methods.md) -- [Unsafe Code and Pointers](../../../csharp/programming-guide/unsafe-code-pointers/index.md) +- [C# Reference](../index.md) +- [C# Programming Guide](../../programming-guide/index.md) +- [C# Keywords](index.md) +- [Reference Types](reference-types.md) +- [Value Types](value-types.md) +- [Methods](../../programming-guide/classes-and-structs/methods.md) +- [Unsafe Code and Pointers](../../programming-guide/unsafe-code-pointers/index.md) \ No newline at end of file diff --git a/docs/csharp/language-reference/keywords/volatile.md b/docs/csharp/language-reference/keywords/volatile.md index 8e46b314211e0..dac48fbf35971 100644 --- a/docs/csharp/language-reference/keywords/volatile.md +++ b/docs/csharp/language-reference/keywords/volatile.md @@ -13,37 +13,37 @@ ms.assetid: 78089bc7-7b38-4cfd-9e49-87ac036af009 # volatile (C# Reference) The `volatile` keyword indicates that a field might be modified by multiple threads that are executing at the same time. The compiler, the runtime system, and even hardware may rearrange reads and writes to memory locations for performance reasons. Fields that are declared `volatile` are not subject to these optimizations. Adding the `volatile` modifier ensures that all threads will observe volatile writes performed by any other thread in the order in which they were performed. There is no guarantee of a single total ordering of volatile writes as seen from all threads of execution. - -The `volatile` keyword can be applied to fields of these types: - -- Reference types. -- Pointer types (in an unsafe context). Note that although the pointer itself can be volatile, the object that it points to cannot. In other words, you cannot declare a "pointer to volatile." -- Simple types such as `sbyte`, `byte`, `short`, `ushort`, `int`, `uint`, `char`, `float`, and `bool`. -- An `enum` type with one of the following base types: `byte`, `sbyte`, `short`, `ushort`, `int`, or `uint`. + +The `volatile` keyword can be applied to fields of these types: + +- Reference types. +- Pointer types (in an unsafe context). Note that although the pointer itself can be volatile, the object that it points to cannot. In other words, you cannot declare a "pointer to volatile." +- Simple types such as `sbyte`, `byte`, `short`, `ushort`, `int`, `uint`, `char`, `float`, and `bool`. +- An `enum` type with one of the following base types: `byte`, `sbyte`, `short`, `ushort`, `int`, or `uint`. - Generic type parameters known to be reference types. -- and . +- and . Other types, including `double` and `long`, cannot be marked `volatile` because reads and writes to fields of those types cannot be guaranteed to be atomic. To protect multi-threaded access to those types of fields, use the class members or protect access using the [`lock`](lock-statement.md) statement. The `volatile` keyword can only be applied to fields of a `class` or `struct`. Local variables cannot be declared `volatile`. - + ## Example -The following example shows how to declare a public field variable as `volatile`. - +The following example shows how to declare a public field variable as `volatile`. + [!code-csharp[declareVolatile](~/samples/snippets/csharp/language-reference/keywords/volatile/Program.cs#Declaration)] The following example demonstrates how an auxiliary or worker thread can be created and used to perform processing in parallel with that of the primary thread. For more information about multithreading, see [Managed Threading](../../../standard/threading/index.md). - + [!code-csharp[declareVolatile](~/samples/snippets/csharp/language-reference/keywords/volatile/Program.cs#Volatile)] With the `volatile` modifier added to the declaration of `_shouldStop` in place, you'll always get the same results (similar to the excerpt shown in the preceding code). However, without that modifier on the `_shouldStop` member, the behavior is unpredictable. The `DoWork` method may optimize the member access, resulting in reading stale data. Because of the nature of multi-threaded programming, the number of stale reads is unpredictable. Different runs of the program will produce somewhat different results. -## C# Language Specification +## C# language specification + +[!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] -[!INCLUDE[CSharplangspec](~/includes/csharplangspec-md.md)] - -## See Also +## See also - [C# language specification: volatile keyword](../../../../_csharplang/spec/classes.md#volatile-fields) - [C# Reference](../index.md) @@ -51,4 +51,4 @@ With the `volatile` modifier added to the declaration of `_shouldStop` in place, - [C# Keywords](index.md) - [Modifiers](modifiers.md) - [lock statement](lock-statement.md) -- class +- class \ No newline at end of file From a31ec277812c69f6e4e8092ff651e117af29238c Mon Sep 17 00:00:00 2001 From: Isaac Abraham Date: Mon, 17 Dec 2018 20:43:48 +0100 Subject: [PATCH 08/19] Improved async.md Cancellation Token example. (#8523) * Update async.md Improve Cancellation Token sample * Update async.md Slight simplification. --- .../async.md | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md b/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md index 306e3d3fa3dc1..ee54cd46ce336 100644 --- a/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md +++ b/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md @@ -185,24 +185,23 @@ In contrast, F# async workflows are more naturally cancellable. Cancellation is Example: ```fsharp -open System -open System.Net open System.Threading -let uploadDataAsync url data = +// Create a workflow which will loop forever. +let workflow = async { - let uri = Uri(url) - use webClient = new WebClient() - webClient.UploadStringAsync(uri, data) + while true do + printfn "Working..." + do! Async.Sleep 1000 } + +let tokenSource = new CancellationTokenSource() -let workflow = uploadDataAsync "https://url-to-upload-to.com" "hello, world!" - -let token = new CancellationTokenSource() -Async.Start (workflow, token.Token) +// Start the workflow in the background +Async.Start (workflow, tokenSource.Token) -// Immediately cancel uploadDataAsync after it's been started. -token.Cancel() +// Executing the next line will stop the workflow +tokenSource.Cancel() ``` And that’s it! From 1328d3493fd75f3b16420cb0a9fa093636c4043c Mon Sep 17 00:00:00 2001 From: Soundarya G Date: Tue, 18 Dec 2018 02:31:41 +0530 Subject: [PATCH 09/19] Update net-standard.md (#8752) * Update net-standard.md * Update net-standard.md --- docs/standard/net-standard.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/standard/net-standard.md b/docs/standard/net-standard.md index 12ffa49d94ddd..50e84f89ff58c 100644 --- a/docs/standard/net-standard.md +++ b/docs/standard/net-standard.md @@ -29,7 +29,7 @@ To find the highest version of .NET Standard that you can target, do the followi 1. Find the row that indicates the .NET implementation you want to run on. 2. Find the column in that row that indicates your version starting from right to left. -3. The column header indicates the .NET Standard version that your target supports (and any lower .NET Standard versions will also support it). +3. The column header indicates the .NET Standard version that your target supports. You may also target any lower .NET Standard version. Higher .NET Standard versions will also support your implementation. 4. Repeat this process for each platform you want to target. If you have more than one target platform, you should pick the smaller version among them. For example, if you want to run on .NET Framework 4.5 and .NET Core 1.0, the highest .NET Standard version you can use is .NET Standard 1.1. ### Which .NET Standard version to target From 058459687c4e95e150d124f7aa31376d59d7731c Mon Sep 17 00:00:00 2001 From: Sabah Shariq Date: Tue, 18 Dec 2018 03:54:42 +0600 Subject: [PATCH 10/19] Spelling fix (#9626) * added missing words in sentence * Fixed spelling significant * removed double full stop * Update docs/framework/data/adonet/sql/authentication-in-sql-server.md changes updated on feedback Co-Authored-By: ThePiranha --- docs/framework/data/adonet/dataview-performance.md | 2 +- docs/framework/data/adonet/sql/authentication-in-sql-server.md | 2 +- docs/framework/data/adonet/sqlclient-streaming-support.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/framework/data/adonet/dataview-performance.md b/docs/framework/data/adonet/dataview-performance.md index 2ab147dabb243..4892125d26039 100644 --- a/docs/framework/data/adonet/dataview-performance.md +++ b/docs/framework/data/adonet/dataview-performance.md @@ -10,7 +10,7 @@ ms.assetid: 90820e49-9d46-41f6-9a3d-6c0741bbd8eb This topic discusses the performance benefits of using the and methods of the class, and of caching a in a Web application. ## Find and FindRows - constructs an index. An index contains keys built from one or more columns in the table or view. These keys are stored in a structure that enables the to find the row or rows associated with the key values quickly and efficiently. Operations that use the index, such as filtering and sorting, see signifcant performance increases. The index for a is built both when the is created and when any of the sorting or filtering information is modified. Creating a and then setting the sorting or filtering information later causes the index to be built at least twice: once when the is created, and again when any of the sort or filter properties are modified. For more information about filtering and sorting with , see [Filtering with DataView](../../../../docs/framework/data/adonet/filtering-with-dataview-linq-to-dataset.md) and [Sorting with DataView](../../../../docs/framework/data/adonet/sorting-with-dataview-linq-to-dataset.md). + constructs an index. An index contains keys built from one or more columns in the table or view. These keys are stored in a structure that enables the to find the row or rows associated with the key values quickly and efficiently. Operations that use the index, such as filtering and sorting, see significant performance increases. The index for a is built both when the is created and when any of the sorting or filtering information is modified. Creating a and then setting the sorting or filtering information later causes the index to be built at least twice: once when the is created, and again when any of the sort or filter properties are modified. For more information about filtering and sorting with , see [Filtering with DataView](../../../../docs/framework/data/adonet/filtering-with-dataview-linq-to-dataset.md) and [Sorting with DataView](../../../../docs/framework/data/adonet/sorting-with-dataview-linq-to-dataset.md). If you want to return the results of a particular query on the data, as opposed to providing a dynamic view of a subset of the data, you can use the or methods of the , rather than setting the property. The property is best used in a data-bound application where a bound control displays filtered results. Setting the property rebuilds the index for the data, adding overhead to your application and decreasing performance. The and methods use the current index without requiring the index to be rebuilt. If you are going to call or only once, then you should use the existing . If you are going to call or multiple times, you should create a new to rebuild the index on the column you want to search on, and then call the or methods. For more information about the and methods, see [Finding Rows](../../../../docs/framework/data/adonet/dataset-datatable-dataview/finding-rows.md). diff --git a/docs/framework/data/adonet/sql/authentication-in-sql-server.md b/docs/framework/data/adonet/sql/authentication-in-sql-server.md index 25310bf84ddef..1a06606b54e89 100644 --- a/docs/framework/data/adonet/sql/authentication-in-sql-server.md +++ b/docs/framework/data/adonet/sql/authentication-in-sql-server.md @@ -13,7 +13,7 @@ SQL Server supports two authentication modes, Windows authentication mode and mi > [!IMPORTANT] > We recommend using Windows authentication wherever possible. Windows authentication uses a series of encrypted messages to authenticate users in SQL Server. When SQL Server logins are used, SQL Server login names and encrypted passwords are passed across the network, which makes them less secure. - With Windows authentication, users are already logged onto Windows and do not have to log on separately to SQL Server. The following `SqlConnection.ConnectionString` specifies Windows authentication without requiring the a user name or password. + With Windows authentication, users are already logged onto Windows and do not have to log on separately to SQL Server. The following `SqlConnection.ConnectionString` specifies Windows authentication without requiring users to provide a user name or password. ``` "Server=MSSQL1;Database=AdventureWorks;Integrated Security=true; diff --git a/docs/framework/data/adonet/sqlclient-streaming-support.md b/docs/framework/data/adonet/sqlclient-streaming-support.md index 7d07af8059bff..227fdb9b62c42 100644 --- a/docs/framework/data/adonet/sqlclient-streaming-support.md +++ b/docs/framework/data/adonet/sqlclient-streaming-support.md @@ -320,7 +320,7 @@ GO - Using the new asynchronous feature and the await keyword to transfer a large BLOB. -- Cancelling the transfer of a large BLOB.. +- Cancelling the transfer of a large BLOB. - Streaming from one SQL Server to another using the new asynchronous feature. From b174f53b099e7706057ef3ef1932f0a7df542224 Mon Sep 17 00:00:00 2001 From: Nick Schonning Date: Mon, 17 Dec 2018 17:05:23 -0500 Subject: [PATCH 11/19] chore: Remove unused .travis.yml (#8351) * chore: Remove unused .travis.yml * docs: Remove link to example .travis.yml * small fix --- .travis.yml | 29 ---------------------------- docs/core/tools/using-ci-with-cli.md | 4 ++-- 2 files changed, 2 insertions(+), 31 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 3cddb3c95e941..0000000000000 --- a/.travis.yml +++ /dev/null @@ -1,29 +0,0 @@ -language: csharp - -matrix: - include: - - os: linux # Ubuntu 14.04 - dist: trusty - sudo: required - dotnet: 1.0.0-preview2-003121 - - os: osx # OSX 10.11 - osx_image: xcode7.2 - dotnet: 1.0.0-preview2-003121 - - os: osx # OSX 10.12 - osx_image: xcode7.3 - dotnet: 1.0.0-rc4-0044771 - -## If `dotnet` configuration doesnt work, use install script instead -# install: -# - export DOTNET_INSTALL_DIR="$PWD/.dotnetsdk" -# - curl -sSL https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0/scripts/obtain/dotnet-install.sh | bash /dev/stdin --version "$CLI_VERSION" --install-dir "$DOTNET_INSTALL_DIR" -# - export PATH="$DOTNET_INSTALL_DIR:$PATH" - -script: - - dotnet --info - # Run a new console app - - mkdir -p "test/test-dotnet-new" && pushd "test/test-dotnet-new" - - dotnet new - - dotnet restore - - dotnet run a b - - popd diff --git a/docs/core/tools/using-ci-with-cli.md b/docs/core/tools/using-ci-with-cli.md index 47966f03d448f..24c81f03a92ff 100644 --- a/docs/core/tools/using-ci-with-cli.md +++ b/docs/core/tools/using-ci-with-cli.md @@ -118,7 +118,7 @@ LOCALDOTNET="$INSTALLDIR/dotnet" You can configure [Travis CI](https://travis-ci.org/) to install the .NET Core SDK using the `csharp` language and the `dotnet` key. For more information, see the official Travis CI docs on [Building a C#, F#, or Visual Basic Project](https://docs.travis-ci.com/user/languages/csharp/). Note as you access the Travis CI information that the community-maintained `language: csharp` language identifier works for all .NET languages, including F#, and Mono. -Travis CI runs both macOS and Linux jobs in a *build matrix*, where you specify a combination of runtime, environment, and exclusions/inclusions to cover your build combinations for your app. For more information, see the [.travis.yml example](https://github.com/dotnet/docs/blob/master/.travis.yml) file and [Customizing the Build](https://docs.travis-ci.com/user/customizing-the-build) in the Travis CI documentation. The MSBuild-based tools include the LTS (1.0.x) and Current (1.1.x) runtimes in the package; so by installing the SDK, you receive everything you need to build. +Travis CI runs both macOS and Linux jobs in a *build matrix*, where you specify a combination of runtime, environment, and exclusions/inclusions to cover your build combinations for your app. For more information, see the [Customizing the Build](https://docs.travis-ci.com/user/customizing-the-build) article in the Travis CI documentation. The MSBuild-based tools include the LTS (1.0.x) and Current (1.1.x) runtimes in the package; so by installing the SDK, you receive everything you need to build. ### AppVeyor @@ -171,4 +171,4 @@ Two general approaches that you take in structuring the build process for .NET C ## See also -* [.NET downloads - Linux](https://dotnet.microsoft.com/download?initial-os=linux) \ No newline at end of file +* [.NET downloads - Linux](https://dotnet.microsoft.com/download?initial-os=linux) From 5fb897682de22214350f038974fe819206e70cbd Mon Sep 17 00:00:00 2001 From: James Newton-King Date: Tue, 18 Dec 2018 11:07:59 +1300 Subject: [PATCH 12/19] Replace licenseUrl with license in recommended NuGet metadata (#9109) --- docs/standard/library-guidance/nuget.md | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/docs/standard/library-guidance/nuget.md b/docs/standard/library-guidance/nuget.md index c17685b44628e..d896a2dab37bb 100644 --- a/docs/standard/library-guidance/nuget.md +++ b/docs/standard/library-guidance/nuget.md @@ -38,7 +38,7 @@ NuGet package dependencies are covered in detail in the [Dependencies](./depende ## Important NuGet package metadata -A NuGet package supports many [metadata properties](/nuget/reference/nuspec). The following table contains the core metadata that every open-source project should provide: +A NuGet package supports many [metadata properties](/nuget/reference/nuspec). The following table contains the core metadata that every package on NuGet.org should provide: | MSBuild Property name | Nuspec name | Description | | ---------------------------------- | ------------------------ | ------------ | @@ -50,14 +50,12 @@ A NuGet package supports many [metadata properties](/nuget/reference/nuspec). Th | `PackageTags` | `tags` | A space-delimited list of tags and keywords that describe the package. Tags are used when searching for packages. | | `PackageIconUrl` | `iconUrl` | A URL for an image to use as the icon for the package. URL should be HTTPS and the image should be 64x64 and have a transparent background. | | `PackageProjectUrl` | `projectUrl` | A URL for the project homepage or source repository. | -| `PackageLicenseUrl` | `licenseUrl` | A URL to the project license. Can be the URL to the `LICENSE` file in source control. | - -**✔️ CONSIDER** choosing a NuGet package name with a prefix that meets NuGet's prefix reservation [criteria](/nuget/reference/id-prefix-reservation). - -**✔️ CONSIDER** using the `LICENSE` file in source control as the `LicenseUrl`. For example, [LICENSE.md](https://github.com/JamesNK/Newtonsoft.Json/blob/c4af75c8e91ca0d75aa6c335e8c106780c4f7712/LICENSE.md). +| `PackageLicenseExpression` | `license` | The project license's [SPDX identifier](https://spdx.org/licenses/). Only OSI and FSF approved licenses can use an identifier. Other licenses should use `PackageLicenseFile`. Read more about [`license` metadata](/nuget/reference/nuspec#license). | > [!IMPORTANT] -> A project without a license defaults to [exclusive copyright](https://choosealicense.com/no-permission/), making it impossible for other people to use. +> A project without a license defaults to [exclusive copyright](https://choosealicense.com/no-permission/), making it legally impossible for other people to use. + +**✔️ CONSIDER** choosing a NuGet package name with a prefix that meets NuGet's prefix reservation [criteria](/nuget/reference/id-prefix-reservation). **✔️ DO** use an HTTPS href to your package icon. @@ -67,9 +65,7 @@ A NuGet package supports many [metadata properties](/nuget/reference/nuspec). Th **✔️ CONSIDER** setting up [SourceLink](./sourcelink.md) to add source control metadata to your assemblies and NuGet package. -> SourceLink automatically adds `RepositoryUrl` and `RepositoryType` metadata to the NuGet package. -> SourceLink also adds information about the exact source code the package was built from. -> For example, a package created from a Git repository will have the commit hash added as metadata. +> SourceLink automatically adds `RepositoryUrl` and `RepositoryType` metadata to the NuGet package. SourceLink also adds information about the exact source code the package was built from. For example, a package created from a Git repository will have the commit hash added as metadata. ## Pre-release packages From db32af7cdc99c44fca84fa94c1fd1fcad2d962f3 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 17 Dec 2018 18:26:50 -0800 Subject: [PATCH 13/19] replace msdn link with docs (#9646) --- docs/csharp/async.md | 8 ++++---- .../performance/writing-large-responsive-apps.md | 3 ++- docs/standard/io/asynchronous-file-i-o.md | 7 ++++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/csharp/async.md b/docs/csharp/async.md index 869bc4d76d568..70a9140ac79b1 100644 --- a/docs/csharp/async.md +++ b/docs/csharp/async.md @@ -1,11 +1,11 @@ --- -title: Asynchronous programming +title: Asynchronous programming - C# description: Learn about the C# language-level asynchronous programming model provided by .NET Core. author: cartermp ms.date: 06/20/2016 ms.assetid: b878c34c-a78f-419e-a594-a2b44fa521a4 +ms.custom: seodec18 --- - # Asynchronous programming If you have any I/O-bound needs (such as requesting data from a network or accessing a database), you'll want to utilize asynchronous programming. You could also have CPU-bound code, such as performing an expensive calculation, which is also a good scenario for writing async code. @@ -259,5 +259,5 @@ A recommended goal is to achieve complete or near-complete [Referential Transpar ## Other Resources * [Async in-depth](../standard/async-in-depth.md) provides more information about how Tasks work. -* [Asynchronous programming with async and await (C#)](../csharp/programming-guide/concepts/async/index.md) -* Lucian Wischik's [Six Essential Tips for Async](https://channel9.msdn.com/Series/Three-Essential-Tips-for-Async) are a wonderful resource for async programming +* [Asynchronous programming with async and await (C#)](./programming-guide/concepts/async/index.md) +* Lucian Wischik's [Six Essential Tips for Async](https://channel9.msdn.com/Series/Three-Essential-Tips-for-Async) are a wonderful resource for async programming \ No newline at end of file diff --git a/docs/framework/performance/writing-large-responsive-apps.md b/docs/framework/performance/writing-large-responsive-apps.md index 84b90df6b5fba..09c497c7f70dc 100644 --- a/docs/framework/performance/writing-large-responsive-apps.md +++ b/docs/framework/performance/writing-large-responsive-apps.md @@ -355,7 +355,8 @@ public Symbol FindMatchingSymbol(string name) This code doesn’t use LINQ extension methods, lambdas, or enumerators, and it incurs no allocations. There are no allocations because the compiler can see that the `symbols` collection is a and can bind the resulting enumerator (a structure) to a local variable with the right type to avoid boxing. The original version of this function was a great example of the expressive power of C# and the productivity of the .NET Framework. This new and more efficient version preserves those qualities without adding any complex code to maintain. ### Async method caching - The next example shows a common problem when you try to use cached results in an [async](https://msdn.microsoft.com/library/db854f91-ccef-4035-ae4d-0911fde808c7) method. + +The next example shows a common problem when you try to use cached results in an [async](../../csharp/programming-guide/concepts/async/index.md) method. **Example 6: caching in async methods** diff --git a/docs/standard/io/asynchronous-file-i-o.md b/docs/standard/io/asynchronous-file-i-o.md index 15d613c88249a..7564eae9396e9 100644 --- a/docs/standard/io/asynchronous-file-i-o.md +++ b/docs/standard/io/asynchronous-file-i-o.md @@ -34,7 +34,7 @@ C# and Visual Basic each have two keywords for asynchronous programming: - `Await` (Visual Basic) or `await` (C#) operator, which is applied to the result of an async method. -To implement asynchronous I/O operations, use these keywords in conjunction with the async methods, as shown in the following examples. For more information, see [Asynchronous Programming with Async and Await](https://msdn.microsoft.com/library/db854f91-ccef-4035-ae4d-0911fde808c7). +To implement asynchronous I/O operations, use these keywords in conjunction with the async methods, as shown in the following examples. For more information, see [Asynchronous programming with async and await (C#)](../../csharp/programming-guide/concepts/async/index.md) or [Asynchronous Programming with Async and Await (Visual Basic)](../../visual-basic/programming-guide/concepts/async/index.md). The following example demonstrates how to use two objects to copy files asynchronously from one directory to another. Notice that the event handler for the control is marked with the `async` modifier because it calls an asynchronous method. @@ -56,5 +56,6 @@ The next example shows the code-behind file and the XAML file that are used to o ## See also - -- [File and Stream I/O](../../../docs/standard/io/index.md) -- [Asynchronous Programming with Async and Await](https://msdn.microsoft.com/library/db854f91-ccef-4035-ae4d-0911fde808c7) +- [File and Stream I/O](index.md) +- [Asynchronous programming with async and await (C#)](../../csharp/programming-guide/concepts/async/index.md) +- [Asynchronous Programming with Async and Await (Visual Basic)](../../visual-basic/programming-guide/concepts/async/index.md) \ No newline at end of file From 34018001c680548b5cb9c0dc42f117e446a4a180 Mon Sep 17 00:00:00 2001 From: Maira Wenzel Date: Mon, 17 Dec 2018 18:28:38 -0800 Subject: [PATCH 14/19] Add brand suffix - F# content (tutorials and language reference) (#9530) * topic changes * add title suffix to docfx.json * feedback * move ms.custom to docfx.json --- docfx.json | 6 ++++++ docs/fsharp/language-reference/abstract-classes.md | 4 ++-- docs/fsharp/language-reference/access-control.md | 4 ++-- docs/fsharp/language-reference/active-patterns.md | 4 ++-- docs/fsharp/language-reference/arrays.md | 4 ++-- docs/fsharp/language-reference/assertions.md | 4 ++-- docs/fsharp/language-reference/asynchronous-workflows.md | 4 ++-- docs/fsharp/language-reference/attributes.md | 5 +++-- docs/fsharp/language-reference/basic-types.md | 4 ++-- docs/fsharp/language-reference/byrefs.md | 5 ++--- docs/fsharp/language-reference/caller-information.md | 8 ++++---- docs/fsharp/language-reference/casting-and-conversions.md | 4 ++-- docs/fsharp/language-reference/classes.md | 4 ++-- docs/fsharp/language-reference/code-quotations.md | 4 ++-- docs/fsharp/language-reference/compiler-directives.md | 4 ++-- docs/fsharp/language-reference/compiler-options.md | 5 ++--- docs/fsharp/language-reference/computation-expressions.md | 4 ++-- .../conditional-expressions-if-then-else.md | 4 ++-- .../copy-and-update-record-expressions.md | 4 ++-- docs/fsharp/language-reference/delegates.md | 4 ++-- docs/fsharp/language-reference/discriminated-unions.md | 4 ++-- docs/fsharp/language-reference/enumerations.md | 4 ++-- .../exception-handling/exception-types.md | 4 ++-- .../fsharp/language-reference/exception-handling/index.md | 6 ++---- .../exception-handling/the-failwith-function.md | 4 ++-- .../exception-handling/the-invalidArg-function.md | 4 ++-- .../exception-handling/the-raise-function.md | 4 ++-- .../exception-handling/the-try-finally-expression.md | 4 ++-- .../exception-handling/the-try-with-expression.md | 4 ++-- docs/fsharp/language-reference/fixed.md | 4 ++-- docs/fsharp/language-reference/flexible-types.md | 4 ++-- docs/fsharp/language-reference/functions/do-bindings.md | 4 ++-- docs/fsharp/language-reference/functions/entry-point.md | 4 ++-- .../language-reference/functions/external-functions.md | 4 ++-- docs/fsharp/language-reference/functions/index.md | 4 ++-- .../language-reference/functions/inline-functions.md | 4 ++-- .../functions/lambda-expressions-the-fun-keyword.md | 4 ++-- docs/fsharp/language-reference/functions/let-bindings.md | 4 ++-- .../functions/recursive-functions-the-rec-keyword.md | 4 ++-- .../generics/automatic-generalization.md | 4 ++-- docs/fsharp/language-reference/generics/constraints.md | 4 ++-- docs/fsharp/language-reference/generics/index.md | 4 ++-- .../generics/statically-resolved-type-parameters.md | 4 ++-- .../import-declarations-the-open-keyword.md | 4 ++-- docs/fsharp/language-reference/inheritance.md | 4 ++-- docs/fsharp/language-reference/interfaces.md | 4 ++-- docs/fsharp/language-reference/keyword-reference.md | 4 ++-- docs/fsharp/language-reference/lazy-computations.md | 4 ++-- docs/fsharp/language-reference/lists.md | 4 ++-- docs/fsharp/language-reference/literals.md | 4 ++-- docs/fsharp/language-reference/loops-for-in-expression.md | 4 ++-- docs/fsharp/language-reference/loops-for-to-expression.md | 4 ++-- .../language-reference/loops-while-do-expression.md | 4 ++-- docs/fsharp/language-reference/match-expressions.md | 8 ++++---- docs/fsharp/language-reference/members/constructors.md | 4 ++-- .../language-reference/members/do-bindings-in-classes.md | 4 ++-- docs/fsharp/language-reference/members/events.md | 4 ++-- .../members/explicit-fields-the-val-keyword.md | 4 ++-- docs/fsharp/language-reference/members/index.md | 8 +++----- .../language-reference/members/indexed-properties.md | 4 ++-- .../language-reference/members/let-bindings-in-classes.md | 4 ++-- docs/fsharp/language-reference/members/methods.md | 4 ++-- docs/fsharp/language-reference/members/properties.md | 4 ++-- docs/fsharp/language-reference/modules.md | 8 ++++---- docs/fsharp/language-reference/namespaces.md | 4 ++-- docs/fsharp/language-reference/object-expressions.md | 4 ++-- docs/fsharp/language-reference/operator-overloading.md | 4 ++-- docs/fsharp/language-reference/options.md | 4 ++-- .../fsharp/language-reference/parameters-and-arguments.md | 4 ++-- docs/fsharp/language-reference/pattern-matching.md | 4 ++-- docs/fsharp/language-reference/query-expressions.md | 4 ++-- docs/fsharp/language-reference/records.md | 4 ++-- docs/fsharp/language-reference/reference-cells.md | 4 ++-- .../resource-management-the-use-keyword.md | 4 ++-- docs/fsharp/language-reference/results.md | 4 ++-- docs/fsharp/language-reference/sequences.md | 4 ++-- docs/fsharp/language-reference/signature-files.md | 4 ++-- .../source-line-file-path-identifiers.md | 4 ++-- docs/fsharp/language-reference/strings.md | 4 ++-- docs/fsharp/language-reference/structures.md | 4 ++-- .../symbol-and-operator-reference/arithmetic-operators.md | 4 ++-- .../symbol-and-operator-reference/bitwise-operators.md | 4 ++-- .../symbol-and-operator-reference/boolean-operators.md | 4 ++-- .../symbol-and-operator-reference/index.md | 4 ++-- .../symbol-and-operator-reference/nullable-operators.md | 4 ++-- docs/fsharp/language-reference/tuples.md | 4 ++-- docs/fsharp/language-reference/type-abbreviations.md | 4 ++-- docs/fsharp/language-reference/type-extensions.md | 4 ++-- docs/fsharp/language-reference/type-inference.md | 4 ++-- docs/fsharp/language-reference/unit-type.md | 4 ++-- docs/fsharp/language-reference/units-of-measure.md | 4 ++-- docs/fsharp/language-reference/value-options.md | 4 ++-- docs/fsharp/language-reference/values/index.md | 4 ++-- docs/fsharp/language-reference/values/null-values.md | 4 ++-- docs/fsharp/language-reference/verbose-syntax.md | 4 ++-- .../asynchronous-and-concurrent-programming/async.md | 4 ++-- docs/fsharp/tutorials/fsharp-interactive/index.md | 2 +- .../tutorials/type-providers/creating-a-type-provider.md | 4 ++-- docs/fsharp/tutorials/type-providers/index.md | 2 +- .../type-providers/troubleshooting-type-providers.md | 2 +- .../tutorials/type-providers/type-provider-security.md | 2 +- 101 files changed, 210 insertions(+), 209 deletions(-) diff --git a/docfx.json b/docfx.json index 1023f6453b50f..bfce39b76d833 100644 --- a/docfx.json +++ b/docfx.json @@ -203,6 +203,8 @@ "docs/visual-basic/language-reference/error-messages/**/**.md": "vb-diagnostics" }, "titleSuffix": { + "docs/fsharp/tutorials/**/**.md": "F#", + "docs/fsharp/language-reference/**/**.md": "F#", "docs/core/additional-tools/**.md": ".NET Core", "docs/core/build/**.md": ".NET Core", "docs/core/deploying/**.md": ".NET Core", @@ -213,6 +215,10 @@ "docs/core/tools/**.md": ".NET Core CLI", "docs/core/tutorials/**.md": ".NET Core", "docs/core/versions/**.md": ".NET Core" + }, + "ms.custom": { + "docs/fsharp/tutorials/**/**.md": "seodec18", + "docs/fsharp/language-reference/**/**.md": "seodec18" } }, "dest": "_site", diff --git a/docs/fsharp/language-reference/abstract-classes.md b/docs/fsharp/language-reference/abstract-classes.md index 6fad2282c234c..5b48e11043f06 100644 --- a/docs/fsharp/language-reference/abstract-classes.md +++ b/docs/fsharp/language-reference/abstract-classes.md @@ -1,5 +1,5 @@ --- -title: Abstract Classes (F#) +title: Abstract Classes description: Learn about F# abstract classes, which leave some or all members unimplemented and represent common functionality of a diverse set of object types. ms.date: 05/16/2016 --- @@ -54,4 +54,4 @@ Area of Circle: 78.539816 - [Classes](classes.md) - [Members](members/index.md) - [Methods](members/methods.md) -- [Properties](members/Properties.md) +- [Properties](members/Properties.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/access-control.md b/docs/fsharp/language-reference/access-control.md index 9f2238b1d1dc6..8b43fa77b22a8 100644 --- a/docs/fsharp/language-reference/access-control.md +++ b/docs/fsharp/language-reference/access-control.md @@ -1,5 +1,5 @@ --- -title: Access Control (F#) +title: Access Control description: Learn how to control access to programming elements, such as types, methods, and functions, in the F# programming language. ms.date: 05/16/2016 --- @@ -49,4 +49,4 @@ The following code tests the accessibility of the types created in `Module1.fs`. ## See also - [F# Language Reference](index.md) -- [Signatures](signatures.md) +- [Signatures](signatures.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/active-patterns.md b/docs/fsharp/language-reference/active-patterns.md index 1a9d99bfc0bae..a4d4d41b8e541 100644 --- a/docs/fsharp/language-reference/active-patterns.md +++ b/docs/fsharp/language-reference/active-patterns.md @@ -1,5 +1,5 @@ --- -title: Active Patterns (F#) +title: Active Patterns description: Learn how to use active patterns to define named partitions that subdivide input data in the F# programming language. ms.date: 05/16/2016 --- @@ -125,4 +125,4 @@ Hello, George! ## See also - [F# Language Reference](index.md) -- [Match Expressions](match-expressions.md) +- [Match Expressions](match-expressions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/arrays.md b/docs/fsharp/language-reference/arrays.md index 836c0f5b31189..d51d716f145c0 100644 --- a/docs/fsharp/language-reference/arrays.md +++ b/docs/fsharp/language-reference/arrays.md @@ -1,5 +1,5 @@ --- -title: Arrays (F#) +title: Arrays description: Learn how to create and use arrays in the F# programming language. ms.date: 05/16/2016 --- @@ -412,4 +412,4 @@ The module [`Array.Parallel`](https://msdn.microsoft.com/library/60f30b77-5af4-4 ## See also - [F# Language Reference](index.md) -- [F#; Types](fsharp-types.md) +- [F# Types](fsharp-types.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/assertions.md b/docs/fsharp/language-reference/assertions.md index 72e9bebd9557f..8cf91f169fab4 100644 --- a/docs/fsharp/language-reference/assertions.md +++ b/docs/fsharp/language-reference/assertions.md @@ -1,5 +1,5 @@ --- -title: Assertions (F#) +title: Assertions description: Learn how to use the 'assert' expression as a debugging feature for testing expressions in the F# programming language. ms.date: 05/16/2016 --- @@ -34,4 +34,4 @@ The following code example illustrates the use of the `assert` expression. ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/asynchronous-workflows.md b/docs/fsharp/language-reference/asynchronous-workflows.md index 4f092e330c684..36562dbb51068 100644 --- a/docs/fsharp/language-reference/asynchronous-workflows.md +++ b/docs/fsharp/language-reference/asynchronous-workflows.md @@ -1,5 +1,5 @@ --- -title: Asynchronous Workflows (F#) +title: Asynchronous Workflows description: Learn about support in the F# programming language for performing computations asynchronously, which execute without blocking execution of other work. ms.date: 05/16/2016 --- @@ -63,4 +63,4 @@ The `runAll` function launches three asynchronous workflows in parallel and wait - [F# Language Reference](index.md) - [Computation Expressions](computation-expressions.md) -- [Control.Async Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.async-class-%5bfsharp%5d) +- [Control.Async Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.async-class-%5bfsharp%5d) \ No newline at end of file diff --git a/docs/fsharp/language-reference/attributes.md b/docs/fsharp/language-reference/attributes.md index 29053876bf8eb..c3256ab400e47 100644 --- a/docs/fsharp/language-reference/attributes.md +++ b/docs/fsharp/language-reference/attributes.md @@ -1,5 +1,5 @@ --- -title: Attributes (F#) +title: Attributes description: Learn how F# Attributes enable metadata to be applied to a programming construct. ms.date: 05/16/2016 --- @@ -85,6 +85,7 @@ Although you do not usually need to specify the attribute target explicitly, val type + ``` [] type MyStruct = @@ -99,4 +100,4 @@ Although you do not usually need to specify the attribute target explicitly, val ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/basic-types.md b/docs/fsharp/language-reference/basic-types.md index 51b35d0f96610..ef9eff8cd1e6a 100644 --- a/docs/fsharp/language-reference/basic-types.md +++ b/docs/fsharp/language-reference/basic-types.md @@ -1,5 +1,5 @@ --- -title: Basic Types (F#) +title: Basic Types description: Discover the fundamental basic types that are used in the F# language. ms.date: 07/09/2018 --- @@ -33,4 +33,4 @@ This topic lists the basic types that are defined in the F# language. These type ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/byrefs.md b/docs/fsharp/language-reference/byrefs.md index fc5b939cc5b3d..a56bafca204a1 100644 --- a/docs/fsharp/language-reference/byrefs.md +++ b/docs/fsharp/language-reference/byrefs.md @@ -1,9 +1,8 @@ --- -title: Byrefs (F#) +title: Byrefs description: Learn about byref and byref-like types in F#, which are used for low-level programming. ms.date: 09/02/2018 --- - # Byrefs F# has two major feature areas that deal in the space of low-level programming: @@ -240,4 +239,4 @@ let test () = () ``` -This prevents you from getting different results depending on if you compile with optimizations on or off. +This prevents you from getting different results depending on if you compile with optimizations on or off. \ No newline at end of file diff --git a/docs/fsharp/language-reference/caller-information.md b/docs/fsharp/language-reference/caller-information.md index 836488255fb8b..998d6b318d734 100644 --- a/docs/fsharp/language-reference/caller-information.md +++ b/docs/fsharp/language-reference/caller-information.md @@ -1,5 +1,5 @@ --- -title: Caller information (F#) +title: Caller information description: Describes how to use Caller Info Argument Attributes to obtain caller information from a method. ms.date: 04/25/2017 --- @@ -66,6 +66,6 @@ The following chart shows the member names that are returned when you use the Ca ## See also -- [Attributes](attributes.md) -- [Named arguments](parameters-and-arguments.md#named-arguments) -- [Optional parameters](parameters-and-arguments.md#optional-parameters) +- [Attributes](attributes.md) +- [Named arguments](parameters-and-arguments.md#named-arguments) +- [Optional parameters](parameters-and-arguments.md#optional-parameters) \ No newline at end of file diff --git a/docs/fsharp/language-reference/casting-and-conversions.md b/docs/fsharp/language-reference/casting-and-conversions.md index b6a98bfea2e8b..57e934b2a27e7 100644 --- a/docs/fsharp/language-reference/casting-and-conversions.md +++ b/docs/fsharp/language-reference/casting-and-conversions.md @@ -1,5 +1,5 @@ --- -title: Casting and Conversions (F#) +title: Casting and Conversions description: Learn how the F# programming language provides conversion operators for arithmetic conversions between various primitive types. ms.date: 05/16/2016 --- @@ -111,4 +111,4 @@ For more information about type tests, see [Match Expressions](match-Expressions ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/classes.md b/docs/fsharp/language-reference/classes.md index bbf8cae95e7ee..35963d528d453 100644 --- a/docs/fsharp/language-reference/classes.md +++ b/docs/fsharp/language-reference/classes.md @@ -1,5 +1,5 @@ --- -title: Classes (F#) +title: Classes description: Learn how F# Classes are types that represent objects that can have properties, methods, and events. ms.date: 05/16/2016 --- @@ -131,4 +131,4 @@ Structures are also useful for small aggregates of data, but they differ from cl - [F# Language Reference](index.md) - [Members](members/index.md) - [Inheritance](inheritance.md) -- [Interfaces](interfaces.md) +- [Interfaces](interfaces.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/code-quotations.md b/docs/fsharp/language-reference/code-quotations.md index db835848d28c0..30e23a51761be 100644 --- a/docs/fsharp/language-reference/code-quotations.md +++ b/docs/fsharp/language-reference/code-quotations.md @@ -1,5 +1,5 @@ --- -title: Code Quotations (F#) +title: Code Quotations description: Learn about F# code quotations, a language feature that enables you to generate and work with F# code expressions programmatically. ms.date: 05/16/2016 --- @@ -96,4 +96,4 @@ The code in the other active pattern branches just regenerates the same expressi ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/compiler-directives.md b/docs/fsharp/language-reference/compiler-directives.md index d954c9ec01167..b5d7f5633dcd9 100644 --- a/docs/fsharp/language-reference/compiler-directives.md +++ b/docs/fsharp/language-reference/compiler-directives.md @@ -1,5 +1,5 @@ --- -title: Compiler Directives (F#) +title: Compiler Directives description: Learn about F# language preprocessor directives, conditional compilation directives, line directives, and compiler directives. ms.date: 12/10/2018 --- @@ -75,4 +75,4 @@ For interpreter (fsi.exe) directives, see [Interactive Programming with F#](../t ## See also - [F# Language Reference](index.md) -- [Compiler Options](compiler-options.md) +- [Compiler Options](compiler-options.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/compiler-options.md b/docs/fsharp/language-reference/compiler-options.md index ba9da19e4494c..3bd839b3fcf93 100644 --- a/docs/fsharp/language-reference/compiler-options.md +++ b/docs/fsharp/language-reference/compiler-options.md @@ -1,5 +1,5 @@ --- -title: Compiler Options (F#) +title: Compiler Options description: Use F# compiler command-line options to control the compilation of your F# apps and libraries. ms.date: 12/10/2018 --- @@ -65,8 +65,7 @@ The following table shows compiler options listed alphabetically. Some of the F# ## Related articles - |Title|Description| |-----|-----------| |[F# Interactive Options](fsharp-interactive-options.md)|Describes command-line options supported by the F# interpreter, fsi.exe.| -|[Project Properties Reference](/visualstudio/ide/reference/project-properties-reference)|Describes the UI for projects, including project property pages that provide build options.| +|[Project Properties Reference](/visualstudio/ide/reference/project-properties-reference)|Describes the UI for projects, including project property pages that provide build options.| \ No newline at end of file diff --git a/docs/fsharp/language-reference/computation-expressions.md b/docs/fsharp/language-reference/computation-expressions.md index 2612040f22f3b..33b529a1648c4 100644 --- a/docs/fsharp/language-reference/computation-expressions.md +++ b/docs/fsharp/language-reference/computation-expressions.md @@ -1,5 +1,5 @@ --- -title: Computation Expressions (F#) +title: Computation Expressions description: Learn how to create convenient syntax for writing computations in F# that can be sequenced and combined using control flow constructs and bindings. ms.date: 07/27/2018 --- @@ -396,4 +396,4 @@ type Microsoft.FSharp.Linq.QueryBuilder with - [F# Language Reference](index.md) - [Asynchronous Workflows](asynchronous-workflows.md) - [Sequences](https://msdn.microsoft.com/library/6b773b6b-9c9a-4af8-bd9e-d96585c166db) -- [Query Expressions](query-expressions.md) +- [Query Expressions](query-expressions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/conditional-expressions-if-then-else.md b/docs/fsharp/language-reference/conditional-expressions-if-then-else.md index b5f277b1f13ec..fe757c645b618 100644 --- a/docs/fsharp/language-reference/conditional-expressions-if-then-else.md +++ b/docs/fsharp/language-reference/conditional-expressions-if-then-else.md @@ -1,5 +1,5 @@ --- -title: "Conditional Expressions: if... then...else (F#)" +title: "Conditional Expressions: if... then...else" description: Learn how to write conditional expressions in F# to execute different branches of code. ms.date: 05/16/2016 --- @@ -34,4 +34,4 @@ You are only 9 years old and already learning F#? Wow! ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/copy-and-update-record-expressions.md b/docs/fsharp/language-reference/copy-and-update-record-expressions.md index 18fb081b27bcb..dbbccba4a2f8e 100644 --- a/docs/fsharp/language-reference/copy-and-update-record-expressions.md +++ b/docs/fsharp/language-reference/copy-and-update-record-expressions.md @@ -1,5 +1,5 @@ --- -title: Copy and Update Record Expressions (F#) +title: Copy and Update Record Expressions description: Learn how to write a 'copy and update record expression' that copies an existing record, updates specified fields, and returns the updated record. author: ChrSteinert ms.date: 06/04/2016 @@ -31,4 +31,4 @@ If you were to update only on field of that record you could use the *copy and u ## See also - [Records](records.md) -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/delegates.md b/docs/fsharp/language-reference/delegates.md index 62eec90263613..932a738cba7ea 100644 --- a/docs/fsharp/language-reference/delegates.md +++ b/docs/fsharp/language-reference/delegates.md @@ -1,5 +1,5 @@ --- -title: Delegates (F#) +title: Delegates description: Learn how to work with delegates in F#. ms.date: 05/16/2016 --- @@ -42,4 +42,4 @@ ccccc - [F# Language Reference](index.md) - [Parameters and Arguments](parameters-and-arguments.md) -- [Events](members/events.md) +- [Events](members/events.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/discriminated-unions.md b/docs/fsharp/language-reference/discriminated-unions.md index 3049868adf7b5..33efbafe9c0c6 100644 --- a/docs/fsharp/language-reference/discriminated-unions.md +++ b/docs/fsharp/language-reference/discriminated-unions.md @@ -1,5 +1,5 @@ --- -title: Discriminated Unions (F#) +title: Discriminated Unions description: Learn how to use F# discriminated unions. ms.date: 05/16/2016 --- @@ -169,4 +169,4 @@ The following attributes are commonly seen in discriminated unions: ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/enumerations.md b/docs/fsharp/language-reference/enumerations.md index a972e9b672c66..986b0fdaaae2d 100644 --- a/docs/fsharp/language-reference/enumerations.md +++ b/docs/fsharp/language-reference/enumerations.md @@ -1,5 +1,5 @@ --- -title: Enumerations (F#) +title: Enumerations description: Learn how to use F# enumerations in place of literals to make your code more readable and maintainable. ms.date: 05/16/2016 --- @@ -47,4 +47,4 @@ Additionally, cases for enums are always emitted as `public`. This is so that th ## See also - [F# Language Reference](index.md) -- [Casting and Conversions](casting-and-conversions.md) +- [Casting and Conversions](casting-and-conversions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/exception-types.md b/docs/fsharp/language-reference/exception-handling/exception-types.md index 10b6231718e5a..8d77761367490 100644 --- a/docs/fsharp/language-reference/exception-handling/exception-types.md +++ b/docs/fsharp/language-reference/exception-handling/exception-types.md @@ -1,5 +1,5 @@ --- -title: Exception Types (F#) +title: Exception Types description: Learn how to define and use F# exception types. ms.date: 05/16/2016 --- @@ -35,4 +35,4 @@ The exception type that you define with the `exception` keyword in F# is a new t - [Exception Handling](index.md) - [Exceptions: the `raise` Function](the-raise-function.md) -- [Exception Hierarchy](https://msdn.microsoft.com/library/z4c5tckx.aspx) +- [Exception Hierarchy](https://msdn.microsoft.com/library/z4c5tckx.aspx) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/index.md b/docs/fsharp/language-reference/exception-handling/index.md index 53411791a3b80..3269551e74865 100644 --- a/docs/fsharp/language-reference/exception-handling/index.md +++ b/docs/fsharp/language-reference/exception-handling/index.md @@ -1,5 +1,5 @@ --- -title: Exception Handling (F#) +title: Exception Handling description: Learn the basics of exception handling in F# and find links to exception handling expressions and functions. ms.date: 05/16/2016 --- @@ -7,13 +7,11 @@ ms.date: 05/16/2016 This section contains information about exception handling support in the F# language. - ## Exception Handling Basics Exception handling is the standard way of handling error conditions in the .NET Framework. Thus, any .NET language must support this mechanism, including F#. An *exception* is an object that encapsulates information about an error. When errors occur, exceptions are raised and regular execution stops. Instead, the runtime searches for an appropriate handler for the exception. The search starts in the current function, and proceeds up the stack through the layers of callers until a matching handler is found. Then the handler is executed. In addition, as the stack is unwound, the runtime executes any code in `finally` blocks, to guarantee that objects are cleaned up correctly during the unwinding process. - ## Related Topics |Title|Description| @@ -23,4 +21,4 @@ In addition, as the stack is unwound, the runtime executes any code in `finally` |[Exceptions: The `try...finally` Expression](the-try-finally-expression.md)|Describes the language construct that enables you to execute clean-up code as the stack unwinds when an exception is thrown.| |[Exceptions: the `raise` Function](the-raise-Function.md)|Describes how to throw an exception object.| |[Exceptions: The `failwith` Function](the-failwith-function.md)|Describes how to generate a general F# exception.| -|[Exceptions: The `invalidArg` Function](the-invalidArg-function.md)|Describes how to generate an invalid argument exception.| +|[Exceptions: The `invalidArg` Function](the-invalidArg-function.md)|Describes how to generate an invalid argument exception.| \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-failwith-function.md b/docs/fsharp/language-reference/exception-handling/the-failwith-function.md index d1f42b87e9b74..0c6f7e2e73c2d 100644 --- a/docs/fsharp/language-reference/exception-handling/the-failwith-function.md +++ b/docs/fsharp/language-reference/exception-handling/the-failwith-function.md @@ -1,5 +1,5 @@ --- -title: "Exceptions: The failwith Function (F#)" +title: "Exceptions: The failwith Function" description: Learn how the 'failwith' function generates an F# exception. ms.date: 05/16/2016 --- @@ -27,4 +27,4 @@ The exception that is generated by `failwith` is a `System.Exception` exception, - [Exception Types](exception-types.md) - [Exceptions: The `try...with` Expression](the-try-with-expression.md) - [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) -- [Exceptions: the `raise` Function](the-raise-function.md) +- [Exceptions: the `raise` Function](the-raise-function.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md b/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md index 7ad491afb0b3d..b4cd602d2c078 100644 --- a/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md +++ b/docs/fsharp/language-reference/exception-handling/the-invalidArg-function.md @@ -1,5 +1,5 @@ --- -title: "Exceptions: The invalidArg Function (F#)" +title: "Exceptions: The invalidArg Function" description: Learn how the F# 'invalidArg' function generates an argument exception. ms.date: 05/16/2016 --- @@ -36,4 +36,4 @@ System.ArgumentException: Month parameter out of range. - [Exceptions: The `try...with` Expression](the-try-with-expression.md) - [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) - [Exceptions: the `raise` Function](the-raise-function.md) -- [Exceptions: The `failwith` Function](the-failwith-function.md) +- [Exceptions: The `failwith` Function](the-failwith-function.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-raise-function.md b/docs/fsharp/language-reference/exception-handling/the-raise-function.md index a42016ca873ca..a32930f033d8e 100644 --- a/docs/fsharp/language-reference/exception-handling/the-raise-function.md +++ b/docs/fsharp/language-reference/exception-handling/the-raise-function.md @@ -1,5 +1,5 @@ --- -title: "Exceptions: the raise Function (F#)" +title: "Exceptions: the raise Function" description: Learn how the F# 'raise' function is used to indicate that an error or exceptional condition has occurred. ms.date: 05/16/2016 --- @@ -34,4 +34,4 @@ The `raise` function can also be used to raise .NET exceptions, as shown in the - [Exceptions: The `try...with` Expression](the-try-with-expression.md) - [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) - [Exceptions: The `failwith` Function](the-failwith-function.md) -- [Exceptions: The `invalidArg` Function](the-invalidArg-function.md) +- [Exceptions: The `invalidArg` Function](the-invalidArg-function.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md b/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md index 6e0eb8e085728..1a3b776ef0de3 100644 --- a/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md +++ b/docs/fsharp/language-reference/exception-handling/the-try-finally-expression.md @@ -1,5 +1,5 @@ --- -title: "Exceptions: The try...finally Expression (F#)" +title: "Exceptions: The try...finally Expression" description: Learn how the F# 'try...finally' expression enables you to execute clean-up code even if a block of code throws an exception. ms.date: 05/16/2016 --- @@ -44,4 +44,4 @@ In the context of computation expressions, including sequence expressions and as ## See also - [Exception Handling](index.md) -- [Exceptions: The `try...with` Expression](the-try-with-expression.md) +- [Exceptions: The `try...with` Expression](the-try-with-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md b/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md index 2e1e89795a346..050923e0be1cf 100644 --- a/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md +++ b/docs/fsharp/language-reference/exception-handling/the-try-with-expression.md @@ -1,5 +1,5 @@ --- -title: "Exceptions: The try...with Expression (F#)" +title: "Exceptions: The try...with Expression" description: Learn how to use the F# 'try...with' expression for exception handling. ms.date: 05/16/2016 --- @@ -54,4 +54,4 @@ The following code examples illustrate the use of the various exception handler - [Exception Handling](index.md) - [Exception Types](exception-types.md) -- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) +- [Exceptions: The `try...finally` Expression](the-try-finally-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/fixed.md b/docs/fsharp/language-reference/fixed.md index 26deeceb3c280..3e8be238ac433 100644 --- a/docs/fsharp/language-reference/fixed.md +++ b/docs/fsharp/language-reference/fixed.md @@ -1,9 +1,9 @@ --- -title: The Fixed Keyword (F#) +title: The fixed keyword description: Learn how you can 'pin' a local onto the stack to prevent collection with the F# 'fixed' keyword. ms.date: 04/24/2017 --- -# The Fixed Keyword +# The fixed keyword F# 4.1 introduces the `fixed` keyword, which allows you to "pin" a local onto the stack to prevent it from being collected or moved during garbage-collection. It is used for low-level programming scenarios. diff --git a/docs/fsharp/language-reference/flexible-types.md b/docs/fsharp/language-reference/flexible-types.md index bff608439f3f6..d363c33fb4446 100644 --- a/docs/fsharp/language-reference/flexible-types.md +++ b/docs/fsharp/language-reference/flexible-types.md @@ -1,5 +1,5 @@ --- -title: Flexible Types (F#) +title: Flexible Types description: Learn how to use F# flexible type annotation, which indicates that a parameter, variable, or value has a type that is compatible with a specified type. ms.date: 05/16/2016 --- @@ -64,4 +64,4 @@ In F#, as in other object-oriented languages, there are contexts in which derive ## See also - [F# Language Reference](index.md) -- [Generics](generics/index.md) +- [Generics](generics/index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/do-bindings.md b/docs/fsharp/language-reference/functions/do-bindings.md index 2a4c96488a5bf..79f2cc7ad9f06 100644 --- a/docs/fsharp/language-reference/functions/do-bindings.md +++ b/docs/fsharp/language-reference/functions/do-bindings.md @@ -1,5 +1,5 @@ --- -title: do Bindings (F#) +title: do Bindings description: Learn how an F# 'do' binding is used to execute code without defining a function or value. ms.date: 05/16/2016 --- @@ -25,4 +25,4 @@ Attributes can be applied to a top-level `do` binding. For example, if your prog ## See also - [F# Language Reference](../index.md) -- [Functions](index.md) +- [Functions](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/entry-point.md b/docs/fsharp/language-reference/functions/entry-point.md index 1e1e46eef25e8..c0cd7cff41634 100644 --- a/docs/fsharp/language-reference/functions/entry-point.md +++ b/docs/fsharp/language-reference/functions/entry-point.md @@ -1,5 +1,5 @@ --- -title: Entry Point (F#) +title: Entry Point description: Learn how to set the entry point to an F# program that is compiled as an executable file, where execution formally starts. ms.date: 05/16/2016 --- @@ -39,4 +39,4 @@ When a program has no **EntryPoint** attribute that explicitly indicates the ent ## See also - [Functions](index.md) -- [let Bindings](let-bindings.md) +- [let Bindings](let-bindings.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/external-functions.md b/docs/fsharp/language-reference/functions/external-functions.md index 8199a27b9cec0..a2ad58123d427 100644 --- a/docs/fsharp/language-reference/functions/external-functions.md +++ b/docs/fsharp/language-reference/functions/external-functions.md @@ -1,5 +1,5 @@ --- -title: External Functions (F#) +title: External Functions description: Learn about the F# language support for calling functions in native code. ms.date: 05/16/2016 --- @@ -44,4 +44,4 @@ Interoperability with native code is referred to as *platform invoke* and is a f ## See also -- [Functions](index.md) +- [Functions](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/index.md b/docs/fsharp/language-reference/functions/index.md index 7d190667745bd..a221456c450f1 100644 --- a/docs/fsharp/language-reference/functions/index.md +++ b/docs/fsharp/language-reference/functions/index.md @@ -1,5 +1,5 @@ --- -title: Functions (F#) +title: Functions description: Learn about functions in F# and how F# supports common functional programming constructs. ms.date: 05/16/2016 --- @@ -199,4 +199,4 @@ You can overload methods of a type but not functions. For more information, see ## See also - [Values](../values/index.md) -- [F# Language Reference](../index.md) +- [F# Language Reference](../index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/inline-functions.md b/docs/fsharp/language-reference/functions/inline-functions.md index 38ac670ddd229..d4729f4cfb226 100644 --- a/docs/fsharp/language-reference/functions/inline-functions.md +++ b/docs/fsharp/language-reference/functions/inline-functions.md @@ -1,5 +1,5 @@ --- -title: Inline Functions (F#) +title: Inline Functions description: Learn how to use F# inline functions that are integrated directly into the calling code. ms.date: 05/16/2016 --- @@ -37,4 +37,4 @@ This means that the function accepts any type that supports a conversion to **fl - [Functions](index.md) - [Constraints](../generics/constraints.md) -- [Statically Resolved Type Parameters](../generics/statically-resolved-type-parameters.md) +- [Statically Resolved Type Parameters](../generics/statically-resolved-type-parameters.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md b/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md index 6be7f04d65aed..7292d07b0dd97 100644 --- a/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md +++ b/docs/fsharp/language-reference/functions/lambda-expressions-the-fun-keyword.md @@ -1,5 +1,5 @@ --- -title: "Lambda Expressions: The fun Keyword (F#)" +title: "Lambda Expressions: The fun Keyword" description: Learn how to use the F# 'fun' keyword to define a lambda expression, which is an anonymous function. ms.date: 05/16/2016 --- @@ -42,4 +42,4 @@ Lambda expressions are especially useful when you want to perform operations on ## See also -- [Functions](index.md) +- [Functions](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/let-bindings.md b/docs/fsharp/language-reference/functions/let-bindings.md index c4d04beaa8ddb..8c0396e2b6d9c 100644 --- a/docs/fsharp/language-reference/functions/let-bindings.md +++ b/docs/fsharp/language-reference/functions/let-bindings.md @@ -1,5 +1,5 @@ --- -title: let Bindings (F#) +title: let Bindings description: Learn how to use an F# 'let' binding, which associates an identifier with a value or function. ms.date: 05/16/2016 --- @@ -111,4 +111,4 @@ For more information on modules and access control, see [Modules](../modules.md) ## See also - [Functions](index.md) -- [`let` Bindings in Classes](../members/let-bindings-in-classes.md) +- [`let` Bindings in Classes](../members/let-bindings-in-classes.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md b/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md index 171bd2dc07005..d9846083f8ded 100644 --- a/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md +++ b/docs/fsharp/language-reference/functions/recursive-functions-the-rec-keyword.md @@ -1,5 +1,5 @@ --- -title: "Recursive Functions: The rec Keyword (F#)" +title: "Recursive Functions: The rec Keyword" description: Learn how the F# 'rec' keyword is used with the 'let' keyword to define a recursive function. ms.date: 05/16/2016 --- @@ -45,4 +45,4 @@ The following example shows two mutually recursive functions. ## See also -- [Functions](index.md) +- [Functions](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/generics/automatic-generalization.md b/docs/fsharp/language-reference/generics/automatic-generalization.md index 9f3f79b26540c..95c80e655daf7 100644 --- a/docs/fsharp/language-reference/generics/automatic-generalization.md +++ b/docs/fsharp/language-reference/generics/automatic-generalization.md @@ -1,5 +1,5 @@ --- -title: Automatic Generalization (F#) +title: Automatic Generalization description: Learn how F# automatically generalizes the arguments and types of functions so that they work with multiple types when possible. ms.date: 05/16/2016 --- @@ -96,4 +96,4 @@ let floatLists = arrayOf10Lists - [Type Inference](../type-inference.md) - [Generics](index.md) - [Statically Resolved Type Parameters](statically-resolved-type-parameters.md) -- [Constraints](constraints.md) +- [Constraints](constraints.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/generics/constraints.md b/docs/fsharp/language-reference/generics/constraints.md index 0c6615c673ec5..16b8c0596c3b7 100644 --- a/docs/fsharp/language-reference/generics/constraints.md +++ b/docs/fsharp/language-reference/generics/constraints.md @@ -1,5 +1,5 @@ --- -title: Constraints (F#) +title: Constraints description: Learn about F# constraints that apply to generic type parameters to specify the requirements for a type argument in a generic type or function. ms.date: 05/16/2016 --- @@ -112,4 +112,4 @@ class end ## See also - [Generics](index.md) -- [Constraints](constraints.md) +- [Constraints](constraints.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/generics/index.md b/docs/fsharp/language-reference/generics/index.md index bf61ddc3dc4fb..06044b1dbecd4 100644 --- a/docs/fsharp/language-reference/generics/index.md +++ b/docs/fsharp/language-reference/generics/index.md @@ -1,5 +1,5 @@ --- -title: Generics (F#) +title: Generics description: Learn how to use F# generic functions and types, which enable you to write code that works with a variety of types without repeating code. ms.date: 05/16/2016 --- @@ -93,4 +93,4 @@ There are two kinds of type parameters that can be used in F# programs. The firs - [Statically Resolved Type Parameters](statically-resolved-type-parameters.md) - [Generics in the .NET Framework](~/docs/standard/generics/index.md) - [Automatic Generalization](automatic-generalization.md) -- [Constraints](constraints.md) +- [Constraints](constraints.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md b/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md index 263004036585e..5e84cefdd3be5 100644 --- a/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md +++ b/docs/fsharp/language-reference/generics/statically-resolved-type-parameters.md @@ -1,5 +1,5 @@ --- -title: Statically Resolved Type Parameters (F#) +title: Statically Resolved Type Parameters description: Learn how to use an F# statically resolved type parameter, which is replaced with an actual type at compile time instead of at run time. ms.date: 05/16/2016 --- @@ -85,4 +85,4 @@ let inline replace (a: ^a) (f: ^b): ^a0 when (CFunctor or ^b): (static member r - [Type Inference](../type-inference.md) - [Automatic Generalization](automatic-generalization.md) - [Constraints](constraints.md) -- [Inline Functions](../functions/inline-functions.md) +- [Inline Functions](../functions/inline-functions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/import-declarations-the-open-keyword.md b/docs/fsharp/language-reference/import-declarations-the-open-keyword.md index 361f580e116ef..11cbeb391154e 100644 --- a/docs/fsharp/language-reference/import-declarations-the-open-keyword.md +++ b/docs/fsharp/language-reference/import-declarations-the-open-keyword.md @@ -1,5 +1,5 @@ --- -title: "Import Declarations: The open Keyword (F#)" +title: "Import Declarations: The open Keyword" description: Learn about F# import declarations and how they specify a module or namespace whose elements you can reference without using a fully qualified name. ms.date: 05/16/2016 --- @@ -64,4 +64,4 @@ Some modules, records, or union types may specify the `RequireQualifiedAccess` a - [# Language Reference](index.md) - [Namespaces](namespaces.md) -- [Modules](modules.md) +- [Modules](modules.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/inheritance.md b/docs/fsharp/language-reference/inheritance.md index dcec71e01d674..4fdec6a3fb248 100644 --- a/docs/fsharp/language-reference/inheritance.md +++ b/docs/fsharp/language-reference/inheritance.md @@ -1,5 +1,5 @@ --- -title: Inheritance (F#) +title: Inheritance description: Learn how to specify F# inheritance relationships using the 'inherit' keyword. ms.date: 05/16/2016 --- @@ -88,4 +88,4 @@ When you are creating object hierarchies, consider using a discriminated union i ## See also - [Object Expressions](object-expressions.md) -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/interfaces.md b/docs/fsharp/language-reference/interfaces.md index 207525f204a90..82725d513fb9a 100644 --- a/docs/fsharp/language-reference/interfaces.md +++ b/docs/fsharp/language-reference/interfaces.md @@ -1,5 +1,5 @@ --- -title: Interfaces (F#) +title: Interfaces description: Learn how F# Interfaces specify sets of related members that other classes implement. ms.date: 05/16/2016 --- @@ -89,4 +89,4 @@ Interfaces can inherit from one or more base interfaces. - [F# Language Reference](index.md) - [Object Expressions](object-expressions.md) -- [Classes](classes.md) +- [Classes](classes.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/keyword-reference.md b/docs/fsharp/language-reference/keyword-reference.md index 7394e6ce77a73..3d5cebf1bacf9 100644 --- a/docs/fsharp/language-reference/keyword-reference.md +++ b/docs/fsharp/language-reference/keyword-reference.md @@ -1,5 +1,5 @@ --- -title: Keyword Reference (F#) +title: Keyword Reference description: Find links to information about all of the F# language keywords. ms.date: 05/16/2016 --- @@ -129,4 +129,4 @@ The following tokens are reserved as keywords for future expansion of the F# lan - [F# Language Reference](index.md) - [Symbol and Operator Reference](symbol-and-operator-reference/index.md) -- [Compiler Options](compiler-options.md) +- [Compiler Options](compiler-options.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/lazy-computations.md b/docs/fsharp/language-reference/lazy-computations.md index e286c0331f85c..6ed0e09adbbf7 100644 --- a/docs/fsharp/language-reference/lazy-computations.md +++ b/docs/fsharp/language-reference/lazy-computations.md @@ -1,5 +1,5 @@ --- -title: Lazy Computations (F#) +title: Lazy Computations description: Learn how F# lazy computations can improve the performance of your apps and libraries. ms.date: 05/16/2016 --- @@ -30,4 +30,4 @@ Lazy evaluation, but not the `Lazy` type, is also used for sequences. For more i ## See also - [F# Language Reference](index.md) -- [LazyExtensions module](https://msdn.microsoft.com/library/86671f40-84a0-402a-867d-ae596218d948) +- [LazyExtensions module](https://msdn.microsoft.com/library/86671f40-84a0-402a-867d-ae596218d948) \ No newline at end of file diff --git a/docs/fsharp/language-reference/lists.md b/docs/fsharp/language-reference/lists.md index 937854b77e814..fe6e81bc743ae 100644 --- a/docs/fsharp/language-reference/lists.md +++ b/docs/fsharp/language-reference/lists.md @@ -1,5 +1,5 @@ --- -title: Lists (F#) +title: Lists description: Learn about F# lists, an ordered, immutable series of elements of the same type. ms.date: 05/16/2016 --- @@ -441,4 +441,4 @@ For information about additional operations on lists, see the library reference - [F# Types](fsharp-types.md) - [Sequences](sequences.md) - [Arrays](arrays.md) -- [Options](options.md) +- [Options](options.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/literals.md b/docs/fsharp/language-reference/literals.md index 7fcb2c321f0f7..612cb99f5a5dd 100644 --- a/docs/fsharp/language-reference/literals.md +++ b/docs/fsharp/language-reference/literals.md @@ -1,5 +1,5 @@ --- -title: Literals (F#) +title: Literals description: Learn about the literal types in the F# programming language. ms.date: 05/16/2016 --- @@ -88,4 +88,4 @@ let exampleSSN = 123_456_7890 ## See also -- [Core.LiteralAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.literalattribute-class-%5bfsharp%5d) +- [Core.LiteralAttribute Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/core.literalattribute-class-%5bfsharp%5d) \ No newline at end of file diff --git a/docs/fsharp/language-reference/loops-for-in-expression.md b/docs/fsharp/language-reference/loops-for-in-expression.md index 3a7b61ec00d36..4c83281e086c2 100644 --- a/docs/fsharp/language-reference/loops-for-in-expression.md +++ b/docs/fsharp/language-reference/loops-for-in-expression.md @@ -1,5 +1,5 @@ --- -title: "Loops: for...in Expression (F#)" +title: "Loops: for...in Expression" description: See how the F# for...in expression looping construct is used to iterate over the matches of a pattern in an enumerable collection. ms.date: 05/16/2016 --- @@ -131,4 +131,4 @@ Number of elements in list1: 5 - [F# Language Reference](index.md) - [Loops: `for...to` Expression](loops-for-to-expression.md) -- [Loops: `while...do` Expression](loops-while-do-expression.md) +- [Loops: `while...do` Expression](loops-while-do-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/loops-for-to-expression.md b/docs/fsharp/language-reference/loops-for-to-expression.md index a7162fbc230f7..02e0086136c31 100644 --- a/docs/fsharp/language-reference/loops-for-to-expression.md +++ b/docs/fsharp/language-reference/loops-for-to-expression.md @@ -1,5 +1,5 @@ --- -title: "Loops: for...to Expression (F#)" +title: "Loops: for...to Expression" description: See how the F# for...to expression is used to iterate in a loop over a range of values of a loop variable. ms.date: 05/16/2016 --- @@ -35,4 +35,4 @@ The output of the previous code is as follows. - [F# Language Reference](index.md) - [Loops: `for...in` Expression](loops-for-in-expression.md) -- [Loops: `while...do` Expression](loops-while-do-expression.md) +- [Loops: `while...do` Expression](loops-while-do-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/loops-while-do-expression.md b/docs/fsharp/language-reference/loops-while-do-expression.md index 6d84b925d037c..c880fde826567 100644 --- a/docs/fsharp/language-reference/loops-while-do-expression.md +++ b/docs/fsharp/language-reference/loops-while-do-expression.md @@ -1,5 +1,5 @@ --- -title: "Loops: while...do Expression (F#)" +title: "Loops: while...do Expression" description: See how the while...do expression is used to perform iterative execution (looping) while a specified test condition is true. ms.date: 05/16/2016 --- @@ -36,4 +36,4 @@ Found a 10! - [F# Language Reference](index.md) - [Loops: `for...in` Expression](loops-for-in-expression.md) -- [Loops: `for...to` Expression](loops-for-to-expression.md) +- [Loops: `for...to` Expression](loops-for-to-expression.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/match-expressions.md b/docs/fsharp/language-reference/match-expressions.md index 6d04c04269132..e7e2b5796bd4e 100644 --- a/docs/fsharp/language-reference/match-expressions.md +++ b/docs/fsharp/language-reference/match-expressions.md @@ -1,5 +1,5 @@ --- -title: Match expressions (F#) +title: Match expressions description: Learn how the F# match expression provides branching control that is based on the comparison of an expression with a set of patterns. ms.date: 04/19/2018 --- @@ -76,6 +76,6 @@ foo() // returns 42 ## See also -- [F# Language Reference](index.md) -- [Active Patterns](active-patterns.md) -- [Pattern Matching](pattern-matching.md) +- [F# Language Reference](index.md) +- [Active Patterns](active-patterns.md) +- [Pattern Matching](pattern-matching.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/constructors.md b/docs/fsharp/language-reference/members/constructors.md index 35f78990fb17c..725499a9e2a8c 100644 --- a/docs/fsharp/language-reference/members/constructors.md +++ b/docs/fsharp/language-reference/members/constructors.md @@ -1,5 +1,5 @@ --- -title: Constructors (F#) +title: Constructors description: Learn how to define and use constructors in F# to create and initialize class and structure objects. ms.date: 05/16/2016 --- @@ -86,4 +86,4 @@ In addition to specifying code for creating objects, static `let` and `do` bindi ## See also -- [Members](index.md) +- [Members](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/do-bindings-in-classes.md b/docs/fsharp/language-reference/members/do-bindings-in-classes.md index 24cfacd0c17ae..378b9e4d7a5f9 100644 --- a/docs/fsharp/language-reference/members/do-bindings-in-classes.md +++ b/docs/fsharp/language-reference/members/do-bindings-in-classes.md @@ -1,5 +1,5 @@ --- -title: do Bindings in Classes (F#) +title: do Bindings in Classes description: Learn how to use an F# 'do' binding in a class definition, which performs actions when the object is constructed or when the type is first used. ms.date: 05/16/2016 --- @@ -44,4 +44,4 @@ Initializing object 1 2 2 4 8 16 - [Classes](../classes.md) - [Constructors](constructors.md) - [`let` Bindings in Classes](let-bindings-in-classes.md) -- [`do` Bindings](../functions/do-Bindings.md) +- [`do` Bindings](../functions/do-Bindings.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/events.md b/docs/fsharp/language-reference/members/events.md index fa73f9f9cbcd2..fb65720a3746c 100644 --- a/docs/fsharp/language-reference/members/events.md +++ b/docs/fsharp/language-reference/members/events.md @@ -1,5 +1,5 @@ --- -title: Events (F#) +title: Events description: Learn how F# events enable you to associate function calls with user actions, which are important in GUI programming. ms.date: 05/16/2016 --- @@ -176,4 +176,4 @@ Application.Run(appForm) - [Lambda Expressions: The `fun` Keyword](../functions/lambda-expressions-the-fun-keyword.md) - [Control.Event Module](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event-module-%5bfsharp%5d) - [Control.Event<'T> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27t%5d-class-%5bfsharp%5d) -- [Control.Event<'Delegate,'Args> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27delegate%2c%27args%5d-class-%5bfsharp%5d) +- [Control.Event<'Delegate,'Args> Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/control.event%5b%27delegate%2c%27args%5d-class-%5bfsharp%5d) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md b/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md index b893a0358e7aa..1c9e2e9589a98 100644 --- a/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md +++ b/docs/fsharp/language-reference/members/explicit-fields-the-val-keyword.md @@ -1,5 +1,5 @@ --- -title: "Explicit Fields: The val Keyword (F#)" +title: "Explicit Fields: The val Keyword" description: Learn about the F# 'val' keyword, which is used to declare a location to store a value in a class or structure type without initializing the type. ms.date: 05/16/2016 --- @@ -67,4 +67,4 @@ When the keywords `member val` appear together in a type definition, it is a def - [Properties](properties.md) - [Members](index.md) -- [`let` Bindings in Classes](let-bindings-in-classes.md) +- [`let` Bindings in Classes](let-bindings-in-classes.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/index.md b/docs/fsharp/language-reference/members/index.md index 867ec53c87185..0a20b6e5f3ba3 100644 --- a/docs/fsharp/language-reference/members/index.md +++ b/docs/fsharp/language-reference/members/index.md @@ -1,5 +1,5 @@ --- -title: Members (F#) +title: Members description: Learn about object members in the F# programming language. ms.date: 05/16/2016 --- @@ -7,18 +7,16 @@ ms.date: 05/16/2016 This section describes members of F# object types. - ## Remarks + *Members* are features that are part of a type definition and are declared with the `member` keyword. F# object types such as records, classes, discriminated unions, interfaces, and structures support members. For more information, see [Records](../records.md), [Classes](../classes.md), [Discriminated Unions](../discriminated-Unions.md), [Interfaces](../interfaces.md), and [Structures](../structures.md). Members typically make up the public interface for a type, which is why they are public unless otherwise specified. Members can also be declared private or internal. For more information, see [Access Control](../access-Control.md). Signatures for types can also be used to expose or not expose certain members of a type. For more information, see [Signatures](../signatures.md). Private fields and `do` bindings, which are used only with classes, are not true members, because they are never part of the public interface of a type and are not declared with the `member` keyword, but they are described in this section also. - ## Related Topics - |Topic|Description| |-----|-----------| |[`let` Bindings in Classes](let-bindings-in-classes.md)|Describes the definition of private fields and functions in classes.| @@ -29,4 +27,4 @@ Private fields and `do` bindings, which are used only with classes, are not true |[Constructors](constructors.md)|Describes special functions that initialize objects of a type.| |[Operator Overloading](../operator-overloading.md)|Describes the definition of customized operators for types.| |[Events](events.md)|Describes the definition of events and event handling support in F#.| -|[Explicit Fields: The `val` Keyword](explicit-fields-the-val-keyword.md)|Describes the definition of uninitialized fields in a type.| +|[Explicit Fields: The `val` Keyword](explicit-fields-the-val-keyword.md)|Describes the definition of uninitialized fields in a type.| \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/indexed-properties.md b/docs/fsharp/language-reference/members/indexed-properties.md index 8ec520497c261..08ff7eacb28ad 100644 --- a/docs/fsharp/language-reference/members/indexed-properties.md +++ b/docs/fsharp/language-reference/members/indexed-properties.md @@ -1,5 +1,5 @@ --- -title: Indexed Properties (F#) +title: Indexed Properties description: Learn about indexed properties in F#, which allow for array-like access to ordered data. ms.date: 10/17/2018 --- @@ -62,4 +62,4 @@ The following code demonstrates the use of an indexed property with multiple ind ## See also -- [Members](index.md) +- [Members](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/let-bindings-in-classes.md b/docs/fsharp/language-reference/members/let-bindings-in-classes.md index 77634bdc4e2bb..faf78ea505bb6 100644 --- a/docs/fsharp/language-reference/members/let-bindings-in-classes.md +++ b/docs/fsharp/language-reference/members/let-bindings-in-classes.md @@ -1,5 +1,5 @@ --- -title: let Bindings in Classes (F#) +title: let Bindings in Classes description: Learn how to define private fields and private functions for F# classes by using 'let' bindings in the class definition. ms.date: 05/16/2016 --- @@ -47,4 +47,4 @@ You can also define private fields in a class by using a member definition and a - [Members](index.md) - [`do` Bindings in Classes](do-bindings-in-classes.md) -- [`let` Bindings](../functions/let-bindings.md) +- [`let` Bindings](../functions/let-bindings.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/methods.md b/docs/fsharp/language-reference/members/methods.md index 3cdc83feadee1..8ce04a64b8c8d 100644 --- a/docs/fsharp/language-reference/members/methods.md +++ b/docs/fsharp/language-reference/members/methods.md @@ -1,5 +1,5 @@ --- -title: Methods (F#) +title: Methods description: Learn how an F# method is a function associated with a type that are used to expose and implement the functionality and behavior of objects and types. ms.date: 05/16/2016 --- @@ -113,4 +113,4 @@ The following example contains a type that has examples of fields, private funct ## See also -- [Members](index.md) +- [Members](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/members/properties.md b/docs/fsharp/language-reference/members/properties.md index 44104c409ff0f..8fc5e889c0f1e 100644 --- a/docs/fsharp/language-reference/members/properties.md +++ b/docs/fsharp/language-reference/members/properties.md @@ -1,5 +1,5 @@ --- -title: Properties (F#) +title: Properties description: Learn about F# properties, which are members that represent values associated with an object. ms.date: 05/16/2016 --- @@ -140,4 +140,4 @@ Properties can be abstract. As with methods, `abstract` just means that there is ## See also - [Members](index.md) -- [Methods](methods.md) +- [Methods](methods.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/modules.md b/docs/fsharp/language-reference/modules.md index a77b0d8e8d18a..b50dd571c33bb 100644 --- a/docs/fsharp/language-reference/modules.md +++ b/docs/fsharp/language-reference/modules.md @@ -1,5 +1,5 @@ --- -title: Modules (F#) +title: Modules description: Learn how an F# module is a grouping of F# code, such as values, types, and function values, in an F# program. ms.date: 04/24/2017 --- @@ -128,6 +128,6 @@ This capability is also possible in [Namespaces](namespaces.md) with F# 4.1. ## See also -- [F# Language Reference](index.md) -- [Namespaces](namespaces.md) -- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md) +- [F# Language Reference](index.md) +- [Namespaces](namespaces.md) +- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/namespaces.md b/docs/fsharp/language-reference/namespaces.md index 51bd4fde325de..5043d933e5cdc 100644 --- a/docs/fsharp/language-reference/namespaces.md +++ b/docs/fsharp/language-reference/namespaces.md @@ -1,5 +1,5 @@ --- -title: Namespaces (F#) +title: Namespaces description: Learn how an F# namespace allows you to organize code into areas of related functionality by enabling you to attach a name to a grouping of program elements. ms.date: 12/08/2018 --- @@ -119,4 +119,4 @@ This feature is also available for top-level [Modules](modules.md). - [F# Language Reference](index.md) - [Modules](modules.md) -- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md) +- [F# RFC FS-1009 - Allow mutually referential types and modules over larger scopes within files](https://github.com/fsharp/fslang-design/blob/master/FSharp-4.1/FS-1009-mutually-referential-types-and-modules-single-scope.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/object-expressions.md b/docs/fsharp/language-reference/object-expressions.md index f61b5180c8028..ba775cd451554 100644 --- a/docs/fsharp/language-reference/object-expressions.md +++ b/docs/fsharp/language-reference/object-expressions.md @@ -1,5 +1,5 @@ --- -title: Object Expressions (F#) +title: Object Expressions description: Learn how to use F# object expressions when you want to avoid the extra code and overhead required to create a new, named type. ms.date: 05/16/2016 --- @@ -36,4 +36,4 @@ You use object expressions when you want to avoid the extra code and overhead th ## See also -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/operator-overloading.md b/docs/fsharp/language-reference/operator-overloading.md index d9fa82abceae7..9ebf6f7ce116c 100644 --- a/docs/fsharp/language-reference/operator-overloading.md +++ b/docs/fsharp/language-reference/operator-overloading.md @@ -1,5 +1,5 @@ --- -title: Operator Overloading (F#) +title: Operator Overloading description: Learn how to overload arithmetic operators in a class or record type and at the global level in F#. ms.date: 05/16/2016 --- @@ -151,4 +151,4 @@ The keyword `inline` is often used with global operators, which are often small ## See also -- [Members](members/index.md) +- [Members](members/index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/options.md b/docs/fsharp/language-reference/options.md index bd365f2fa8fed..92e9595fd9c55 100644 --- a/docs/fsharp/language-reference/options.md +++ b/docs/fsharp/language-reference/options.md @@ -1,5 +1,5 @@ --- -title: Options (F#) +title: Options description: Learn how to use F# option types when an actual value might not exist for a named value or variable. ms.date: 05/16/2016 --- @@ -62,4 +62,4 @@ Options can be converted to lists or arrays. When an option is converted into ei ## See also - [F# Language Reference](index.md) -- [F# Types](fsharp-types.md) +- [F# Types](fsharp-types.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/parameters-and-arguments.md b/docs/fsharp/language-reference/parameters-and-arguments.md index ba22d857c722b..07f34b833e3ff 100644 --- a/docs/fsharp/language-reference/parameters-and-arguments.md +++ b/docs/fsharp/language-reference/parameters-and-arguments.md @@ -1,5 +1,5 @@ --- -title: Parameters and Arguments (F#) +title: Parameters and Arguments description: Learn about F# language support for defining parameters and passing arguments to functions, methods, and properties. ms.date: 05/16/2016 --- @@ -202,4 +202,4 @@ true ## See also -- [Members](members/index.md) +- [Members](members/index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/pattern-matching.md b/docs/fsharp/language-reference/pattern-matching.md index 04398a1663507..2723f4e254258 100644 --- a/docs/fsharp/language-reference/pattern-matching.md +++ b/docs/fsharp/language-reference/pattern-matching.md @@ -1,5 +1,5 @@ --- -title: Pattern Matching (F#) +title: Pattern Matching description: Learn how patterns are used in F# to compare data with logical structures, decompose data into constituent parts, or extract information from data. ms.date: 05/16/2016 --- @@ -199,4 +199,4 @@ The following example uses the null pattern and the variable pattern. - [Match Expressions](match-expressions.md) - [Active Patterns](active-patterns.md) -- [F# Language Reference](index.md) +- [F# Language Reference](index.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/query-expressions.md b/docs/fsharp/language-reference/query-expressions.md index 5a4d1703048a0..7b99a936f3601 100644 --- a/docs/fsharp/language-reference/query-expressions.md +++ b/docs/fsharp/language-reference/query-expressions.md @@ -1,5 +1,5 @@ --- -title: Query Expressions (F#) +title: Query Expressions description: Learn about query expression support for LINQ in the F# programming language. ms.date: 05/16/2016 --- @@ -2426,4 +2426,4 @@ end - [F# Language Reference](index.md) - [Linq.QueryBuilder Class](https://msdn.microsoft.com/visualfsharpdocs/conceptual/linq.querybuilder-class-%5bfsharp%5d) -- [Computation Expressions](Computation-Expressions.md) +- [Computation Expressions](Computation-Expressions.md) \ No newline at end of file diff --git a/docs/fsharp/language-reference/records.md b/docs/fsharp/language-reference/records.md index 7c2bc078692cc..edf9490c2ae31 100644 --- a/docs/fsharp/language-reference/records.md +++ b/docs/fsharp/language-reference/records.md @@ -1,5 +1,5 @@ --- -title: Records (F#) +title: Records description: Learn how F# records represent simple aggregates of named values, optionally with members. ms.date: 05/16/2016 --- @@ -122,4 +122,4 @@ If you need reference equality for records, add the attribute `[ = - [F# Language Reference](index.md) - [Compiler Directives](compiler-directives.md) -- [Code Formatting Guidelines](code-formatting-guidelines.md) +- [Code Formatting Guidelines](code-formatting-guidelines.md) \ No newline at end of file diff --git a/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md b/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md index ee54cd46ce336..d963e1578b1a9 100644 --- a/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md +++ b/docs/fsharp/tutorials/asynchronous-and-concurrent-programming/async.md @@ -1,5 +1,5 @@ --- -title: Async Programming in F# +title: Async Programming description: Learn how F# async programming is accomplished via a language-level programming model that is easy to use and natural to the language. ms.date: 06/20/2016 --- @@ -210,4 +210,4 @@ And that’s it! * [Async Workflows on MSDN](https://msdn.microsoft.com/library/dd233250.aspx) * [Asynchronous Sequences for F#](https://fsprojects.github.io/FSharp.Control.AsyncSeq/library/AsyncSeq.html) -* [F# Data HTTP Utilities](https://fsharp.github.io/FSharp.Data/library/Http.html) +* [F# Data HTTP Utilities](https://fsharp.github.io/FSharp.Data/library/Http.html) \ No newline at end of file diff --git a/docs/fsharp/tutorials/fsharp-interactive/index.md b/docs/fsharp/tutorials/fsharp-interactive/index.md index acb6d5161bba9..3a7ca209397b0 100644 --- a/docs/fsharp/tutorials/fsharp-interactive/index.md +++ b/docs/fsharp/tutorials/fsharp-interactive/index.md @@ -94,4 +94,4 @@ test |Title|Description| |-----|-----------| |[F# Interactive Options](../../language-reference/fsharp-interactive-options.md)|Describes command-line syntax and options for the F# Interactive, fsi.exe.| -|[F# Interactive Library Reference](https://msdn.microsoft.com/visualfsharpdocs/conceptual/fsharp-interactive-library-reference)|Describes library functionality available when executing code in F# interactive.| +|[F# Interactive Library Reference](https://msdn.microsoft.com/visualfsharpdocs/conceptual/fsharp-interactive-library-reference)|Describes library functionality available when executing code in F# interactive.| \ No newline at end of file diff --git a/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md b/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md index 50739348bfa1d..d48b29a2a41ba 100644 --- a/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md +++ b/docs/fsharp/tutorials/type-providers/creating-a-type-provider.md @@ -1,5 +1,5 @@ --- -title: "Tutorial: Create a Type Provider (F#)" +title: "Tutorial: Create a Type Provider" description: Learn how to create your own F# type providers in F# 3.0 by examining several simple type providers to illustrate the basic concepts. ms.date: 05/16/2016 --- @@ -1131,4 +1131,4 @@ You can often debug type providers most easily by using fsc.exe on a test script ## See also - [Type Providers](index.md) -- [The Type Provider SDK](https://github.com/fsprojects/FSharp.TypeProviders.SDK) +- [The Type Provider SDK](https://github.com/fsprojects/FSharp.TypeProviders.SDK) \ No newline at end of file diff --git a/docs/fsharp/tutorials/type-providers/index.md b/docs/fsharp/tutorials/type-providers/index.md index fe287cb14a652..06eba7cfc78d7 100644 --- a/docs/fsharp/tutorials/type-providers/index.md +++ b/docs/fsharp/tutorials/type-providers/index.md @@ -35,4 +35,4 @@ Where necessary, you can [create your own custom type providers](creating-a-type - [Tutorial: Create a Type Provider](creating-a-type-provider.md) - [F# Language Reference](../../language-reference/index.md) -- [Visual F#](../../index.md) +- [Visual F#](../../index.md) \ No newline at end of file diff --git a/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md b/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md index bad79b0ddca93..76489536bd34a 100644 --- a/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md +++ b/docs/fsharp/tutorials/type-providers/troubleshooting-type-providers.md @@ -20,4 +20,4 @@ If you encounter a problem when you work with type providers, you can review the ## See also -- [Type Providers](index.md) +- [Type Providers](index.md) \ No newline at end of file diff --git a/docs/fsharp/tutorials/type-providers/type-provider-security.md b/docs/fsharp/tutorials/type-providers/type-provider-security.md index b95dd3d778db9..41d1c9f21af1a 100644 --- a/docs/fsharp/tutorials/type-providers/type-provider-security.md +++ b/docs/fsharp/tutorials/type-providers/type-provider-security.md @@ -23,4 +23,4 @@ If you decide to change the trust setting directly in Visual Studio, perform the ## See also -- [Type Providers](index.md) +- [Type Providers](index.md) \ No newline at end of file From 177775b271cf541b58f93ffe2965eac1610260df Mon Sep 17 00:00:00 2001 From: Martin Koudelka <42440351+v-makoud@users.noreply.github.com> Date: Tue, 18 Dec 2018 10:07:31 +0100 Subject: [PATCH 15/19] C54009: Asterisk issue (#9651) --- ...-httpclientfactory-to-implement-resilient-http-requests.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standard/microservices-architecture/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md b/docs/standard/microservices-architecture/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md index eefb7188ad6fc..3361fe8d4c3be 100644 --- a/docs/standard/microservices-architecture/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md +++ b/docs/standard/microservices-architecture/implement-resilient-applications/use-httpclientfactory-to-implement-resilient-http-requests.md @@ -65,7 +65,7 @@ Just by adding your typed client classes with AddHttpClient(), whenever you use ### HttpClient lifetimes -Each time you get an `HttpClient` object from IHttpClientFactory, a new instance of an `HttpClient` is returned. There will be an HttpMessageHandler** per named of typed client. `IHttpClientFactory` will pool the HttpMessageHandler instances created by the factory to reduce resource consumption. An HttpMessageHandler instance may be reused from the pool when creating a new `HttpClient` instance if its lifetime hasn't expired. +Each time you get an `HttpClient` object from IHttpClientFactory, a new instance of an `HttpClient` is returned. There will be an **HttpMessageHandler** per named of typed client. `IHttpClientFactory` will pool the HttpMessageHandler instances created by the factory to reduce resource consumption. An HttpMessageHandler instance may be reused from the pool when creating a new `HttpClient` instance if its lifetime hasn't expired. Pooling of handlers is desirable as each handler typically manages its own underlying HTTP connections; creating more handlers than necessary can result in connection delays. Some handlers also keep connections open indefinitely, which can prevent the handler from reacting to DNS changes. @@ -158,4 +158,4 @@ Until this point, the code shown is just performing regular Http requests, but t >[!div class="step-by-step"] >[Previous](explore-custom-http-call-retries-exponential-backoff.md) ->[Next](implement-http-call-retries-exponential-backoff-polly.md) \ No newline at end of file +>[Next](implement-http-call-retries-exponential-backoff-polly.md) From 51cac3c692368e8f574a61ee9753fb9433c24ea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=AD=E4=B9=9D=E9=BC=8E?= <109224573@qq.com> Date: Wed, 19 Dec 2018 00:20:40 +0800 Subject: [PATCH 16/19] Fix md table (#9657) --- docs/fsharp/language-reference/signature-files.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/fsharp/language-reference/signature-files.md b/docs/fsharp/language-reference/signature-files.md index b6f0e6e562742..e0a14b729428c 100644 --- a/docs/fsharp/language-reference/signature-files.md +++ b/docs/fsharp/language-reference/signature-files.md @@ -23,6 +23,7 @@ If there is not enough information in the type signature to indicate whether a t |---------|-----------| |`[]`|For a type that has no abstract members, or that should not be extended.| |`[]`|For a type that is an interface.| + The compiler produces an error if the attributes are not consistent between the signature and the declaration in the implementation file. Use the keyword `val` to create a signature for a value or function value. The keyword `type` introduces a type signature. @@ -63,4 +64,4 @@ The following code shows the implementation file. - [F# Language Reference](index.md) - [Access Control](access-control.md) -- [Compiler Options](compiler-options.md) \ No newline at end of file +- [Compiler Options](compiler-options.md) From 0fb89afd3b515a4d10823072aa86a8a546aa373d Mon Sep 17 00:00:00 2001 From: Martin Koudelka <42440351+v-makoud@users.noreply.github.com> Date: Wed, 19 Dec 2018 00:00:55 +0100 Subject: [PATCH 17/19] C54009: Nested asterisks (#9652) --- ...king-application-execution-by-ending-an-async-operation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/standard/asynchronous-programming-patterns/blocking-application-execution-by-ending-an-async-operation.md b/docs/standard/asynchronous-programming-patterns/blocking-application-execution-by-ending-an-async-operation.md index 5db5ada80b0b9..819f8c54e38b1 100644 --- a/docs/standard/asynchronous-programming-patterns/blocking-application-execution-by-ending-an-async-operation.md +++ b/docs/standard/asynchronous-programming-patterns/blocking-application-execution-by-ending-an-async-operation.md @@ -17,11 +17,11 @@ dev_langs: # Blocking Application Execution by Ending an Async Operation Applications that cannot continue to do other work while waiting for the results of an asynchronous operation must block until the operation completes. Use one of the following options to block your application's main thread while waiting for an asynchronous operation to complete: -- Call the asynchronous operations **End***OperationName* method. This approach is demonstrated in this topic. +- Call the asynchronous operations **End**_OperationName_ method. This approach is demonstrated in this topic. - Use the property of the returned by the asynchronous operation's **Begin***OperationName* method. For an example that demonstrates this approach, see [Blocking Application Execution Using an AsyncWaitHandle](../../../docs/standard/asynchronous-programming-patterns/blocking-application-execution-using-an-asyncwaithandle.md). - Applications that use the **End***OperationName* method to block until an asynchronous operation is complete will typically call the **Begin***OperationName* method, perform any work that can be done without the results of the operation, and then call **End***OperationName*. + Applications that use the **End**_OperationName_ method to block until an asynchronous operation is complete will typically call the **Begin***OperationName* method, perform any work that can be done without the results of the operation, and then call **End**_OperationName_. ## Example The following code example demonstrates using asynchronous methods in the class to retrieve Domain Name System information for a user-specified computer. Note that `null` (`Nothing` in Visual Basic) is passed for the `requestCallback` and `stateObject` parameters because these arguments are not required when using this approach. From 8e4b5356348c0e0aa28f980b3ddb05fe5fedf2ee Mon Sep 17 00:00:00 2001 From: Martin Koudelka <42440351+v-makoud@users.noreply.github.com> Date: Wed, 19 Dec 2018 00:15:11 +0100 Subject: [PATCH 18/19] L56581: Deleting extra tabs (#9653) --- ...to-create-a-custom-tracking-participant.md | 52 +++++++++---------- 1 file changed, 24 insertions(+), 28 deletions(-) diff --git a/docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md b/docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md index cdc5b9869f131..da33b82046eb3 100644 --- a/docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md +++ b/docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md @@ -12,17 +12,7 @@ Workflow tracking provides visibility into the status of workflow execution. The > [!NOTE] > Each topic in the Getting Started tutorial depends on the previous topics. To complete this topic, you must first complete the previous topics. To download a completed version or view a video walkthrough of the tutorial, see [Windows Workflow Foundation (WF45) - Getting Started Tutorial](https://go.microsoft.com/fwlink/?LinkID=248976). -## In this topic - -- [To create the custom tracking participant](../../../docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md#BKMK_CustomTrackingParticipant) - -- [To create the tracking profile and register the tracking participant](../../../docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md#BKMK_TrackingProfile) - -- [To display the tracking information](../../../docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md#BKMK_DisplayTracking) - -- [To build and run the application](../../../docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md#BKMK_BuildAndRun) - -### To create the custom tracking participant +## To create the custom tracking participant 1. Right-click **NumberGuessWorkflowHost** in **Solution Explorer** and choose **Add**, **Class**. Type `StatusTrackingParticipant` into the **Name** box, and click **Add**. @@ -98,7 +88,7 @@ Workflow tracking provides visibility into the status of workflow execution. The When no tracking profile is specified, the default tracking profile is used. When the default tracking profile is used, tracking records are emitted for all `ActivityStates`. Because we only need to capture the text one time during the lifecycle of the `WriteLine` activity, we only extract the text from the `ActivityStates.Executing` state. In [To create the tracking profile and register the tracking participant](../../../docs/framework/windows-workflow-foundation/how-to-create-a-custom-tracking-participant.md#BKMK_TrackingProfile), a tracking profile is created that specifies that only `WriteLine` `ActivityStates.Executing` tracking records are emitted. -### To create the tracking profile and register the tracking participant +## To create the tracking profile and register the tracking participant 1. Right-click **WorkflowHostForm** in **Solution Explorer** and choose **View Code**. @@ -219,7 +209,7 @@ Workflow tracking provides visibility into the status of workflow execution. The // Workflow lifecycle handlers... ``` -### To display the tracking information +## To display the tracking information 1. Right-click **WorkflowHostForm** in **Solution Explorer** and choose **View Code**. @@ -314,7 +304,7 @@ Workflow tracking provides visibility into the status of workflow execution. The } ``` -### To build and run the application +## To build and run the application 1. Press Ctrl+Shift+B to build the application. @@ -323,21 +313,27 @@ Workflow tracking provides visibility into the status of workflow execution. The 3. Select a range for the guessing game and the type of workflow to start, and click **New Game**. Enter a guess in the **Guess** box and click **Go** to submit your guess. Note that the status of the workflow is displayed in the status window. This output is captured from the `WriteLine` activities. Switch to a different workflow by selecting one from the **Workflow Instance Id** combo box and note that the status of the current workflow is removed. Switch back to the previous workflow and note that the status is restored, similar to the following example. > [!NOTE] - > If you switch to a workflow that was started before tracking was enabled no status is displayed. However if you make additional guesses, their status is saved because tracking is now enabled. - - **Please enter a number between 1 and 10** -**Your guess is too high.** -**Please enter a number between 1 and 10** - + > If you switch to a workflow that was started before tracking was enabled no status is displayed. However if you make additional guesses, their status is saved because tracking is now enabled. + + ```output + Please enter a number between 1 and 10 + Your guess is too high. + Please enter a number between 1 and 10 + ``` + > [!NOTE] - > This information is useful for determining the range of the random number, but it does not contain any information about what guesses have been previously made. This information is in the next step, [How to: Host Multiple Versions of a Workflow Side-by-Side](../../../docs/framework/windows-workflow-foundation/how-to-host-multiple-versions-of-a-workflow-side-by-side.md). - - Make a note of the workflow instance id, and play the game through to its completion. + > This information is useful for determining the range of the random number, but it does not contain any information about what guesses have been previously made. This information is in the next step, [How to: Host Multiple Versions of a Workflow Side-by-Side](../../../docs/framework/windows-workflow-foundation/how-to-host-multiple-versions-of-a-workflow-side-by-side.md). + + Make a note of the workflow instance id, and play the game through to its completion. 4. Open Windows Explorer and navigate to the **NumberGuessWorkflowHost\bin\debug** folder (or **bin\release** depending on your project settings). Note that in addition to the project executable files there are files with guid filenames. Identify the one that corresponds to the workflow instance id from the completed workflow in the previous step and open it in Notepad. The tracking information contains information similar to the following. - **Please enter a number between 1 and 10** -**Your guess is too high.** -**Please enter a number between 1 and 10** -**Your guess is too high.** -**Please enter a number between 1 and 10** In addition to the absence of the user's guesses, this tracking data does not contain information about the final guess of the workflow. That is because the tracking information consists only of the `WriteLine` output from the workflow, and the final message that is displayed is done so from the `Completed` handler after the workflow completes. In next step of the tutorial, [How to: Host Multiple Versions of a Workflow Side-by-Side](../../../docs/framework/windows-workflow-foundation/how-to-host-multiple-versions-of-a-workflow-side-by-side.md), the existing `WriteLine` activities are modified to display the user's guesses, and an additional `WriteLine` activity is added that displays the final results. After these changes are integrated, [How to: Host Multiple Versions of a Workflow Side-by-Side](../../../docs/framework/windows-workflow-foundation/how-to-host-multiple-versions-of-a-workflow-side-by-side.md) demonstrates how to host multiple versions of a workflow at the same time. + ```output + Please enter a number between 1 and 10 + Your guess is too high. + Please enter a number between 1 and 10 + Your guess is too high. + Please enter a number between 1 and 10 + ``` + + In addition to the absence of the user's guesses, this tracking data does not contain information about the final guess of the workflow. That is because the tracking information consists only of the `WriteLine` output from the workflow, and the final message that is displayed is done so from the `Completed` handler after the workflow completes. In next step of the tutorial, [How to: Host Multiple Versions of a Workflow Side-by-Side](../../../docs/framework/windows-workflow-foundation/how-to-host-multiple-versions-of-a-workflow-side-by-side.md), the existing `WriteLine` activities are modified to display the user's guesses, and an additional `WriteLine` activity is added that displays the final results. After these changes are integrated, [How to: Host Multiple Versions of a Workflow Side-by-Side](../../../docs/framework/windows-workflow-foundation/how-to-host-multiple-versions-of-a-workflow-side-by-side.md) demonstrates how to host multiple versions of a workflow at the same time. From 21bf5a9f248b49b6468bf44baab0f7f998dfe8b0 Mon Sep 17 00:00:00 2001 From: Happypig375 Date: Wed, 19 Dec 2018 10:35:07 +0800 Subject: [PATCH 19/19] Fix broken markdown table (#9666) --- docs/fsharp/language-reference/reference-cells.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/fsharp/language-reference/reference-cells.md b/docs/fsharp/language-reference/reference-cells.md index 4d500feb0c010..a7dd0d04089ec 100644 --- a/docs/fsharp/language-reference/reference-cells.md +++ b/docs/fsharp/language-reference/reference-cells.md @@ -51,6 +51,7 @@ The following table shows the features that are available on the reference cell. |`ref` (operator)|Encapsulates a value into a new reference cell.|`'a -> 'a ref`|`let ref x = { contents = x }`| |`Value` (property)|Gets or sets the underlying value.|`unit -> 'a`|`member x.Value = x.contents`| |`contents` (record field)|Gets or sets the underlying value.|`'a`|`let ref x = { contents = x }`| + There are several ways to access the underlying value. The value returned by the dereference operator (`!`) is not an assignable value. Therefore, if you are modifying the underlying value, you must use the assignment operator (`:=`) instead. Both the `Value` property and the `contents` field are assignable values. Therefore, you can use these to either access or change the underlying value, as shown in the following code. @@ -77,4 +78,4 @@ Values marked as `mutable`may be automatically promoted to `'a ref` if captured - [F# Language Reference](index.md) - [Parameters and Arguments](parameters-and-arguments.md) - [Symbol and Operator Reference](symbol-and-operator-reference/index.md) -- [Values](values/index.md) \ No newline at end of file +- [Values](values/index.md)