From fb4fea7bf2b39620b270f3d632465e275caf7d8b Mon Sep 17 00:00:00 2001 From: Sean Wheeler Date: Wed, 21 Jan 2026 19:07:45 -0600 Subject: [PATCH 1/3] Add example for type-safe lists (#12687) --- .../script-authoring-considerations.md | 38 ++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/reference/docs-conceptual/dev-cross-plat/performance/script-authoring-considerations.md b/reference/docs-conceptual/dev-cross-plat/performance/script-authoring-considerations.md index 7fbf6e2804ef..ae986acb3789 100644 --- a/reference/docs-conceptual/dev-cross-plat/performance/script-authoring-considerations.md +++ b/reference/docs-conceptual/dev-cross-plat/performance/script-authoring-considerations.md @@ -1,6 +1,6 @@ --- description: Scripting for Performance in PowerShell -ms.date: 08/18/2025 +ms.date: 01/21/2026 title: PowerShell scripting performance considerations --- @@ -267,6 +267,42 @@ In this example, PowerShell creates an `[ArrayList]` to hold the results written inside the array expression. Just before assigning to `$results`, PowerShell converts the `[ArrayList]` to an `[Object[]]`. +### Type-safe collections + +PowerShell is a loosely typed language, which makes coding easier but can have performance +implications. Consider using type-safe (or type-specific) collections. Type-safe collections consume +less memory and are faster. Compare the following examples: + +```powershell +$Stopwatch = [System.Diagnostics.Stopwatch]::StartNew() +$ListInt = [System.Collections.Generic.List[int]]::new() +for ($i = 0; $i -lt 1mb; $i++) { + $ListInt.Add($i) +} +$Stopwatch.Stop() +Write-Host "Time to add 1mb integers to List[int]: $($Stopwatch.Elapsed.TotalSeconds) seconds." +``` + +```Output +Time to add 1mb integers to List[int]: 9.8841501 seconds. +``` + +Creating a list of `[int]` is faster than creating a list of `[Object]`. + +```powershell +$Stopwatch = [System.Diagnostics.Stopwatch]::StartNew() +$ListObject = [System.Collections.Generic.List[Object]]::new() +for ($i = 0; $i -lt 1mb; $i++) { + $ListObject.Add($i) +} +$Stopwatch.Stop() +Write-Host "Time to add 1mb integers to List[Object]: $($Stopwatch.Elapsed.TotalSeconds) seconds." +``` + +```Output +Time to add 1mb integers to List[Object]: 10.5677782 seconds. +``` + ## String addition Strings are immutable. Each addition to the string actually creates a new string big enough to hold From a4e0f9b6111735e0abb75cd0cb695474fc0f07ea Mon Sep 17 00:00:00 2001 From: Sean Wheeler Date: Thu, 22 Jan 2026 11:50:40 -0600 Subject: [PATCH 2/3] Fixes #12605 - Update description of instantiation syntax (#12688) * Update description of instantiation syntax * Fix link references * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Reflow --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../About/about_Classes.md | 158 ++++++++++------ .../About/about_Classes.md | 168 ++++++++++++------ .../About/about_Classes.md | 168 ++++++++++++------ .../About/about_Classes.md | 168 ++++++++++++------ 4 files changed, 447 insertions(+), 215 deletions(-) diff --git a/reference/5.1/Microsoft.PowerShell.Core/About/about_Classes.md b/reference/5.1/Microsoft.PowerShell.Core/About/about_Classes.md index f88896937c50..f05531a2ccb2 100644 --- a/reference/5.1/Microsoft.PowerShell.Core/About/about_Classes.md +++ b/reference/5.1/Microsoft.PowerShell.Core/About/about_Classes.md @@ -1,7 +1,7 @@ --- description: Describes how you can use classes to create your own custom types. Locale: en-US -ms.date: 01/19/2024 +ms.date: 01/22/2026 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_classes?view=powershell-5.1&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Classes @@ -64,18 +64,17 @@ To instantiate an instance of a class, use one of the following syntaxes: ``` ```Syntax -[$ =] []@{[]} +[$ =] [] ``` > [!NOTE] > When using the `[]::new()` syntax, brackets around the class name > are mandatory. The brackets signal a type definition for PowerShell. > -> The hashtable syntax only works for classes that have a default constructor -> that doesn't expect any parameters. It creates an instance of the class with -> the default constructor and then assigns the key-value pairs to the instance -> properties. If any key in the hashtable isn't a valid property name, -> PowerShell raises an error. +> The `` syntax only works for classes that have a +> default constructor that doesn't expect any parameters. It creates an +> instance of the class with the default constructor and then uses runtime type +> conversion to assign the values provided. ## Examples @@ -99,7 +98,67 @@ Brand Fabrikam, Inc. ``` -### Example 2 - Class with instance members +### Example 2 - Using instantiation syntax + +This example defines a **Book** class with several properties, but no +constructor. + +```powershell +class Book { + # Class properties + [string] $Title + [string] $Author + [string] $Synopsis + [string] $Publisher + [datetime] $PublishDate + [int] $PageCount + [string[]] $Tags +} +``` + +The following example shows how the default constructor can assign the values +from a compatible value using type coercion. In this example, a hashtable is +used to provide the property values. + +```powershell +$Book1 = [Book] @{ + Title = '1984' + Author = 'George Orwell' + Synopsis = '' + Publisher = 'Secker & Warburg' + PublishDate = '1949-06-08' + PageCount = 328 + Tags = @('Dystopian', 'Political Fiction', 'Social Science Fiction') +} +$Book1 +``` + +```Output +Title : 1984 +Author : George Orwell +Synopsis : +Publisher : Secker & Warburg +PublishDate : 6/8/1949 12:00:00 AM +PageCount : 328 +Tags : {Dystopian, Political Fiction, Social Science Fiction} +``` + +The key-value pairs of the hashtable are assigned to the instance properties. +If any key in the hashtable isn't a valid property name, instantiation fails. + +In this example, an array is used to provide the values for the generic list. + +```powershell +$List = [System.Collections.Generic.List[int]] @(42, 43) +$List +``` + +```Output +42 +43 +``` + +### Example 3 - Class with instance members This example defines a **Book** class with several properties, constructors, and methods. Every defined member is an _instance_ member, not a static member. @@ -190,12 +249,12 @@ It takes 10 hours and 20 minutes to read The Hobbit by J.R.R. Tolkien (1937), which was published 86 years ago. ``` -### Example 3 - Class with static members +### Example 4 - Class with static members -The **BookList** class in this example builds on the **Book** class in example -2. While the **BookList** class can't be marked static itself, the -implementation only defines the **Books** static property and a set of static -methods for managing that property. +The **BookList** class in this example builds on the **Book** class in the +previous example. While the **BookList** class can't be marked static itself, +the implementation only defines the **Books** static property and a set of +static methods for managing that property. ```powershell class BookList { @@ -369,7 +428,7 @@ Properties are variables declared in the class scope. A property can be of any built-in type or an instance of another class. Classes can have zero or more properties. Classes don't have a maximum property count. -For more information, see [about_Classes_Properties][01]. +For more information, see [about_Classes_Properties][10]. ## Class methods @@ -379,7 +438,7 @@ method doesn't return any output, it must have the **Void** output type. If a method doesn't explicitly define an output type, the method's output type is **Void**. -For more information, see [about_Classes_Methods][02]. +For more information, see [about_Classes_Methods][05]. ## Class constructors @@ -388,7 +447,7 @@ moment of creating the instance of the class. Constructors have the same name as the class. Constructors might have parameters, to initialize the data members of the new object. -For more information, see [about_Classes_Constructors][03]. +For more information, see [about_Classes_Constructors][01]. ## Hidden keyword @@ -417,11 +476,11 @@ Hidden class members are: > When you hide any constructor, the `new()` option is removed from > IntelliSense and completion results. -For more information about the keyword, see [about_Hidden][04]. For more -information about hidden properties, see [about_Classes_Properties][05]. For +For more information about the keyword, see [about_Hidden][12]. For more +information about hidden properties, see [about_Classes_Properties][09]. For more information about hidden methods, see [about_Classes_Methods][06]. For more information about hidden constructors, see -[about_Classes_Constructors][07]. +[about_Classes_Constructors][02]. ## Static keyword @@ -435,9 +494,9 @@ available always. All static properties live for the entire session span. The `static` keyword only applies to class members, not a class itself. For more information about static properties, see -[about_Classes_Properties][08]. For more information about static methods, see -[about_Classes_Methods][09]. For more information about static constructors, -see [about_Classes_Constructors][10]. +[about_Classes_Properties][10]. For more information about static methods, see +[about_Classes_Methods][07]. For more information about static constructors, +see [about_Classes_Constructors][03]. ## Inheritance in PowerShell classes @@ -453,8 +512,7 @@ inherits from an interface must implement that contract. When it does, the class can be used like any other class implementing that interface. For more information about deriving classes that inherit from a base class or -implement interfaces, see -[about_Classes_Inheritance][11]. +implement interfaces, see [about_Classes_Inheritance][04]. ## Export classes with type accelerators @@ -540,7 +598,7 @@ consistently import classes defined in nested modules or classes defined in scripts that are dot-sourced into the root module. Define classes that you want to be available to users outside of the module directly in the root module. -For more information about the `using` statement, see [about_Using][12]. +For more information about the `using` statement, see [about_Using][15]. ## Load newly changed code during development @@ -567,7 +625,7 @@ parameters can't be used with class members. The **PSReference** class was designed to support COM objects. COM objects have cases where you need to pass a value in by reference. -For more information, see [PSReference Class][13]. +For more information, see [PSReference Class][16]. ## Limitations @@ -681,30 +739,30 @@ workaround for those limitations, if any. ## See also -- [about_Classes_Constructors][03] -- [about_Classes_Inheritance][11] -- [about_Classes_Methods][02] -- [about_Classes_Properties][01] -- [about_Enum][14] -- [about_Hidden][04] -- [about_Language_Keywords][15] -- [about_Methods][16] -- [about_Using][12] +- [about_Classes_Constructors][01] +- [about_Classes_Inheritance][04] +- [about_Classes_Methods][05] +- [about_Classes_Properties][08] +- [about_Enum][11] +- [about_Hidden][12] +- [about_Language_Keywords][13] +- [about_Methods][14] +- [about_Using][15] -[01]: about_Classes_Properties.md -[02]: about_Classes_Methods.md -[03]: about_Classes_Constructors.md -[04]: about_Hidden.md -[05]: about_Classes_Properties.md#hidden-properties +[01]: about_Classes_Constructors.md +[02]: about_Classes_Constructors.md#hidden-constructors +[03]: about_Classes_Constructors.md#static-constructors +[04]: about_Classes_Inheritance.md +[05]: about_Classes_Methods.md [06]: about_Classes_Methods.md#hidden-methods -[07]: about_Classes_Constructors.md#hidden-constructors -[08]: about_Classes_Properties.md#static-properties -[09]: about_Classes_Methods.md#static-methods -[10]: about_Classes_Constructors.md#static-constructors -[11]: about_Classes_Inheritance.md -[12]: about_Using.md -[13]: /dotnet/api/system.management.automation.psreference -[14]: about_Enum.md -[15]: about_language_keywords.md -[16]: about_methods.md +[07]: about_Classes_Methods.md#static-methods +[08]: about_Classes_Properties.md +[09]: about_Classes_Properties.md#hidden-properties +[10]: about_Classes_Properties.md#static-properties +[11]: about_Enum.md +[12]: about_Hidden.md +[13]: about_language_keywords.md +[14]: about_methods.md +[15]: about_Using.md +[16]: xref:System.Management.Automation.PSReference diff --git a/reference/7.4/Microsoft.PowerShell.Core/About/about_Classes.md b/reference/7.4/Microsoft.PowerShell.Core/About/about_Classes.md index 28e2fd792341..95ca108efd9f 100644 --- a/reference/7.4/Microsoft.PowerShell.Core/About/about_Classes.md +++ b/reference/7.4/Microsoft.PowerShell.Core/About/about_Classes.md @@ -1,7 +1,7 @@ --- description: Describes how you can use classes to create your own custom types. Locale: en-US -ms.date: 01/23/2024 +ms.date: 01/22/2026 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_classes?view=powershell-7.4&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Classes @@ -64,18 +64,17 @@ To instantiate an instance of a class, use one of the following syntaxes: ``` ```Syntax -[$ =] []@{[]} +[$ =] [] ``` > [!NOTE] > When using the `[]::new()` syntax, brackets around the class name > are mandatory. The brackets signal a type definition for PowerShell. > -> The hashtable syntax only works for classes that have a default constructor -> that doesn't expect any parameters. It creates an instance of the class with -> the default constructor and then assigns the key-value pairs to the instance -> properties. If any key in the hashtable isn't a valid property name, -> PowerShell raises an error. +> The `` syntax only works for classes that have a +> default constructor that doesn't expect any parameters. It creates an +> instance of the class with the default constructor and then uses runtime type +> conversion to assign the values provided. ## Examples @@ -99,7 +98,67 @@ Brand Fabrikam, Inc. ``` -### Example 2 - Class with instance members +### Example 2 - Using instantiation syntax + +This example defines a **Book** class with several properties, but no +constructor. + +```powershell +class Book { + # Class properties + [string] $Title + [string] $Author + [string] $Synopsis + [string] $Publisher + [datetime] $PublishDate + [int] $PageCount + [string[]] $Tags +} +``` + +The following example shows how the default constructor can assign the values +from a compatible value using type coercion. In this example, a hashtable is +used to provide the property values. + +```powershell +$Book1 = [Book] @{ + Title = '1984' + Author = 'George Orwell' + Synopsis = '' + Publisher = 'Secker & Warburg' + PublishDate = '1949-06-08' + PageCount = 328 + Tags = @('Dystopian', 'Political Fiction', 'Social Science Fiction') +} +$Book1 +``` + +```Output +Title : 1984 +Author : George Orwell +Synopsis : +Publisher : Secker & Warburg +PublishDate : 6/8/1949 12:00:00 AM +PageCount : 328 +Tags : {Dystopian, Political Fiction, Social Science Fiction} +``` + +The key-value pairs of the hashtable are assigned to the instance properties. +If any key in the hashtable isn't a valid property name, instantiation fails. + +In this example, an array is used to provide the values for the generic list. + +```powershell +$List = [System.Collections.Generic.List[int]] @(42, 43) +$List +``` + +```Output +42 +43 +``` + +### Example 3 - Class with instance members This example defines a **Book** class with several properties, constructors, and methods. Every defined member is an _instance_ member, not a static member. @@ -190,12 +249,12 @@ It takes 10 hours and 20 minutes to read The Hobbit by J.R.R. Tolkien (1937), which was published 86 years ago. ``` -### Example 3 - Class with static members +### Example 4 - Class with static members -The **BookList** class in this example builds on the **Book** class in example -2. While the **BookList** class can't be marked static itself, the -implementation only defines the **Books** static property and a set of static -methods for managing that property. +The **BookList** class in this example builds on the **Book** class in the +previous example. While the **BookList** class can't be marked static itself, +the implementation only defines the **Books** static property and a set of +static methods for managing that property. ```powershell class BookList { @@ -360,7 +419,7 @@ Line | | Book 'The Hobbit by J.R.R. Tolkien (1937)' already in list ``` -### Example 4 - Class definition with and without Runspace affinity +### Example 5 - Class definition with and without Runspace affinity The `ShowRunspaceId()` method of `[UnsafeClass]` reports different thread Ids but the same runspace ID. Eventually, the session state is corrupted causing @@ -426,7 +485,7 @@ Properties are variables declared in the class scope. A property can be of any built-in type or an instance of another class. Classes can have zero or more properties. Classes don't have a maximum property count. -For more information, see [about_Classes_Properties][01]. +For more information, see [about_Classes_Properties][09]. ## Class methods @@ -436,7 +495,7 @@ method doesn't return any output, it must have the **Void** output type. If a method doesn't explicitly define an output type, the method's output type is **Void**. -For more information, see [about_Classes_Methods][02]. +For more information, see [about_Classes_Methods][06]. ## Class constructors @@ -445,7 +504,7 @@ moment of creating the instance of the class. Constructors have the same name as the class. Constructors might have parameters, to initialize the data members of the new object. -For more information, see [about_Classes_Constructors][03]. +For more information, see [about_Classes_Constructors][02]. ## Hidden keyword @@ -474,11 +533,11 @@ Hidden class members are: > When you hide any constructor, the `new()` option is removed from > IntelliSense and completion results. -For more information about the keyword, see [about_Hidden][04]. For more -information about hidden properties, see [about_Classes_Properties][05]. For -more information about hidden methods, see [about_Classes_Methods][06]. For +For more information about the keyword, see [about_Hidden][13]. For more +information about hidden properties, see [about_Classes_Properties][10]. For +more information about hidden methods, see [about_Classes_Methods][07]. For more information about hidden constructors, see -[about_Classes_Constructors][07]. +[about_Classes_Constructors][03]. ## Static keyword @@ -492,9 +551,9 @@ available always. All static properties live for the entire session span. The `static` keyword only applies to class members, not a class itself. For more information about static properties, see -[about_Classes_Properties][08]. For more information about static methods, see -[about_Classes_Methods][09]. For more information about static constructors, -see [about_Classes_Constructors][10]. +[about_Classes_Properties][11]. For more information about static methods, see +[about_Classes_Methods][08]. For more information about static constructors, +see [about_Classes_Constructors][04]. ## Inheritance in PowerShell classes @@ -510,8 +569,7 @@ inherits from an interface must implement that contract. When it does, the class can be used like any other class implementing that interface. For more information about deriving classes that inherit from a base class or -implement interfaces, see -[about_Classes_Inheritance][11]. +implement interfaces, see [about_Classes_Inheritance][05]. ## NoRunspaceAffinity attribute @@ -533,8 +591,7 @@ thread and the thread's current session state. The attribute was added in PowerShell 7.4. For an illustration of the difference in behavior for classes with and without -the `NoRunspaceAffinity` attribute, see -[Example 4](#example-4---class-definition-with-and-without-runspace-affinity). +the `NoRunspaceAffinity` attribute, see [Example 5][01]. ## Export classes with type accelerators @@ -620,7 +677,7 @@ consistently import classes defined in nested modules or classes defined in scripts that are dot-sourced into the root module. Define classes that you want to be available to users outside of the module directly in the root module. -For more information about the `using` statement, see [about_Using][12]. +For more information about the `using` statement, see [about_Using][16]. ## Load newly changed code during development @@ -647,7 +704,7 @@ parameters can't be used with class members. The **PSReference** class was designed to support COM objects. COM objects have cases where you need to pass a value in by reference. -For more information, see [PSReference Class][13]. +For more information, see [PSReference Class][17]. ## Limitations @@ -767,30 +824,31 @@ workaround for those limitations, if any. ## See also -- [about_Classes_Constructors][03] -- [about_Classes_Inheritance][11] -- [about_Classes_Methods][02] -- [about_Classes_Properties][01] -- [about_Enum][14] -- [about_Hidden][04] -- [about_Language_Keywords][15] -- [about_Methods][16] -- [about_Using][12] +- [about_Classes_Constructors][02] +- [about_Classes_Inheritance][05] +- [about_Classes_Methods][06] +- [about_Classes_Properties][09] +- [about_Enum][12] +- [about_Hidden][13] +- [about_Language_Keywords][14] +- [about_Methods][15] +- [about_Using][16] -[01]: about_Classes_Properties.md -[02]: about_Classes_Methods.md -[03]: about_Classes_Constructors.md -[04]: about_Hidden.md -[05]: about_Classes_Properties.md#hidden-properties -[06]: about_Classes_Methods.md#hidden-methods -[07]: about_Classes_Constructors.md#hidden-constructors -[08]: about_Classes_Properties.md#static-properties -[09]: about_Classes_Methods.md#static-methods -[10]: about_Classes_Constructors.md#static-constructors -[11]: about_Classes_Inheritance.md -[12]: about_Using.md -[13]: /dotnet/api/system.management.automation.psreference -[14]: about_Enum.md -[15]: about_language_keywords.md -[16]: about_methods.md +[01]: #example-5---class-definition-with-and-without-runspace-affinity +[02]: about_Classes_Constructors.md +[03]: about_Classes_Constructors.md#hidden-constructors +[04]: about_Classes_Constructors.md#static-constructors +[05]: about_Classes_Inheritance.md +[06]: about_Classes_Methods.md +[07]: about_Classes_Methods.md#hidden-methods +[08]: about_Classes_Methods.md#static-methods +[09]: about_Classes_Properties.md +[10]: about_Classes_Properties.md#hidden-properties +[11]: about_Classes_Properties.md#static-properties +[12]: about_Enum.md +[13]: about_Hidden.md +[14]: about_language_keywords.md +[15]: about_methods.md +[16]: about_Using.md +[17]: xref:System.Management.Automation.PSReference diff --git a/reference/7.5/Microsoft.PowerShell.Core/About/about_Classes.md b/reference/7.5/Microsoft.PowerShell.Core/About/about_Classes.md index 5eed77c25f46..268104a63bb5 100644 --- a/reference/7.5/Microsoft.PowerShell.Core/About/about_Classes.md +++ b/reference/7.5/Microsoft.PowerShell.Core/About/about_Classes.md @@ -1,7 +1,7 @@ --- description: Describes how you can use classes to create your own custom types. Locale: en-US -ms.date: 01/23/2024 +ms.date: 01/22/2026 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_classes?view=powershell-7.5&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Classes @@ -64,18 +64,17 @@ To instantiate an instance of a class, use one of the following syntaxes: ``` ```Syntax -[$ =] []@{[]} +[$ =] [] ``` > [!NOTE] > When using the `[]::new()` syntax, brackets around the class name > are mandatory. The brackets signal a type definition for PowerShell. > -> The hashtable syntax only works for classes that have a default constructor -> that doesn't expect any parameters. It creates an instance of the class with -> the default constructor and then assigns the key-value pairs to the instance -> properties. If any key in the hashtable isn't a valid property name, -> PowerShell raises an error. +> The `` syntax only works for classes that have a +> default constructor that doesn't expect any parameters. It creates an +> instance of the class with the default constructor and then uses runtime type +> conversion to assign the values provided. ## Examples @@ -99,7 +98,67 @@ Brand Fabrikam, Inc. ``` -### Example 2 - Class with instance members +### Example 2 - Using instantiation syntax + +This example defines a **Book** class with several properties, but no +constructor. + +```powershell +class Book { + # Class properties + [string] $Title + [string] $Author + [string] $Synopsis + [string] $Publisher + [datetime] $PublishDate + [int] $PageCount + [string[]] $Tags +} +``` + +The following example shows how the default constructor can assign the values +from a compatible value using type coercion. In this example, a hashtable is +used to provide the property values. + +```powershell +$Book1 = [Book] @{ + Title = '1984' + Author = 'George Orwell' + Synopsis = '' + Publisher = 'Secker & Warburg' + PublishDate = '1949-06-08' + PageCount = 328 + Tags = @('Dystopian', 'Political Fiction', 'Social Science Fiction') +} +$Book1 +``` + +```Output +Title : 1984 +Author : George Orwell +Synopsis : +Publisher : Secker & Warburg +PublishDate : 6/8/1949 12:00:00 AM +PageCount : 328 +Tags : {Dystopian, Political Fiction, Social Science Fiction} +``` + +The key-value pairs of the hashtable are assigned to the instance properties. +If any key in the hashtable isn't a valid property name, instantiation fails. + +In this example, an array is used to provide the values for the generic list. + +```powershell +$List = [System.Collections.Generic.List[int]] @(42, 43) +$List +``` + +```Output +42 +43 +``` + +### Example 3 - Class with instance members This example defines a **Book** class with several properties, constructors, and methods. Every defined member is an _instance_ member, not a static member. @@ -190,12 +249,12 @@ It takes 10 hours and 20 minutes to read The Hobbit by J.R.R. Tolkien (1937), which was published 86 years ago. ``` -### Example 3 - Class with static members +### Example 4 - Class with static members -The **BookList** class in this example builds on the **Book** class in example -2. While the **BookList** class can't be marked static itself, the -implementation only defines the **Books** static property and a set of static -methods for managing that property. +The **BookList** class in this example builds on the **Book** class in the +previous example. While the **BookList** class can't be marked static itself, +the implementation only defines the **Books** static property and a set of +static methods for managing that property. ```powershell class BookList { @@ -360,7 +419,7 @@ Line | | Book 'The Hobbit by J.R.R. Tolkien (1937)' already in list ``` -### Example 4 - Class definition with and without Runspace affinity +### Example 5 - Class definition with and without Runspace affinity The `ShowRunspaceId()` method of `[UnsafeClass]` reports different thread Ids but the same runspace ID. Eventually, the session state is corrupted causing @@ -426,7 +485,7 @@ Properties are variables declared in the class scope. A property can be of any built-in type or an instance of another class. Classes can have zero or more properties. Classes don't have a maximum property count. -For more information, see [about_Classes_Properties][01]. +For more information, see [about_Classes_Properties][09]. ## Class methods @@ -436,7 +495,7 @@ method doesn't return any output, it must have the **Void** output type. If a method doesn't explicitly define an output type, the method's output type is **Void**. -For more information, see [about_Classes_Methods][02]. +For more information, see [about_Classes_Methods][06]. ## Class constructors @@ -445,7 +504,7 @@ moment of creating the instance of the class. Constructors have the same name as the class. Constructors might have parameters, to initialize the data members of the new object. -For more information, see [about_Classes_Constructors][03]. +For more information, see [about_Classes_Constructors][02]. ## Hidden keyword @@ -474,11 +533,11 @@ Hidden class members are: > When you hide any constructor, the `new()` option is removed from > IntelliSense and completion results. -For more information about the keyword, see [about_Hidden][04]. For more -information about hidden properties, see [about_Classes_Properties][05]. For -more information about hidden methods, see [about_Classes_Methods][06]. For +For more information about the keyword, see [about_Hidden][13]. For more +information about hidden properties, see [about_Classes_Properties][10]. For +more information about hidden methods, see [about_Classes_Methods][07]. For more information about hidden constructors, see -[about_Classes_Constructors][07]. +[about_Classes_Constructors][03]. ## Static keyword @@ -492,9 +551,9 @@ available always. All static properties live for the entire session span. The `static` keyword only applies to class members, not a class itself. For more information about static properties, see -[about_Classes_Properties][08]. For more information about static methods, see -[about_Classes_Methods][09]. For more information about static constructors, -see [about_Classes_Constructors][10]. +[about_Classes_Properties][11]. For more information about static methods, see +[about_Classes_Methods][08]. For more information about static constructors, +see [about_Classes_Constructors][04]. ## Inheritance in PowerShell classes @@ -510,8 +569,7 @@ inherits from an interface must implement that contract. When it does, the class can be used like any other class implementing that interface. For more information about deriving classes that inherit from a base class or -implement interfaces, see -[about_Classes_Inheritance][11]. +implement interfaces, see [about_Classes_Inheritance][05]. ## NoRunspaceAffinity attribute @@ -533,8 +591,7 @@ thread and the thread's current session state. The attribute was added in PowerShell 7.4. For an illustration of the difference in behavior for classes with and without -the `NoRunspaceAffinity` attribute, see -[Example 4](#example-4---class-definition-with-and-without-runspace-affinity). +the `NoRunspaceAffinity` attribute, see [Example 5][01]. ## Export classes with type accelerators @@ -620,7 +677,7 @@ consistently import classes defined in nested modules or classes defined in scripts that are dot-sourced into the root module. Define classes that you want to be available to users outside of the module directly in the root module. -For more information about the `using` statement, see [about_Using][12]. +For more information about the `using` statement, see [about_Using][16]. ## Load newly changed code during development @@ -647,7 +704,7 @@ parameters can't be used with class members. The **PSReference** class was designed to support COM objects. COM objects have cases where you need to pass a value in by reference. -For more information, see [PSReference Class][13]. +For more information, see [PSReference Class][17]. ## Limitations @@ -767,30 +824,31 @@ workaround for those limitations, if any. ## See also -- [about_Classes_Constructors][03] -- [about_Classes_Inheritance][11] -- [about_Classes_Methods][02] -- [about_Classes_Properties][01] -- [about_Enum][14] -- [about_Hidden][04] -- [about_Language_Keywords][15] -- [about_Methods][16] -- [about_Using][12] +- [about_Classes_Constructors][02] +- [about_Classes_Inheritance][05] +- [about_Classes_Methods][06] +- [about_Classes_Properties][09] +- [about_Enum][12] +- [about_Hidden][13] +- [about_Language_Keywords][14] +- [about_Methods][15] +- [about_Using][16] -[01]: about_Classes_Properties.md -[02]: about_Classes_Methods.md -[03]: about_Classes_Constructors.md -[04]: about_Hidden.md -[05]: about_Classes_Properties.md#hidden-properties -[06]: about_Classes_Methods.md#hidden-methods -[07]: about_Classes_Constructors.md#hidden-constructors -[08]: about_Classes_Properties.md#static-properties -[09]: about_Classes_Methods.md#static-methods -[10]: about_Classes_Constructors.md#static-constructors -[11]: about_Classes_Inheritance.md -[12]: about_Using.md -[13]: /dotnet/api/system.management.automation.psreference -[14]: about_Enum.md -[15]: about_language_keywords.md -[16]: about_methods.md +[01]: #example-5---class-definition-with-and-without-runspace-affinity +[02]: about_Classes_Constructors.md +[03]: about_Classes_Constructors.md#hidden-constructors +[04]: about_Classes_Constructors.md#static-constructors +[05]: about_Classes_Inheritance.md +[06]: about_Classes_Methods.md +[07]: about_Classes_Methods.md#hidden-methods +[08]: about_Classes_Methods.md#static-methods +[09]: about_Classes_Properties.md +[10]: about_Classes_Properties.md#hidden-properties +[11]: about_Classes_Properties.md#static-properties +[12]: about_Enum.md +[13]: about_Hidden.md +[14]: about_language_keywords.md +[15]: about_methods.md +[16]: about_Using.md +[17]: xref:System.Management.Automation.PSReference diff --git a/reference/7.6/Microsoft.PowerShell.Core/About/about_Classes.md b/reference/7.6/Microsoft.PowerShell.Core/About/about_Classes.md index 713e4c76d07c..77f92f29e3be 100644 --- a/reference/7.6/Microsoft.PowerShell.Core/About/about_Classes.md +++ b/reference/7.6/Microsoft.PowerShell.Core/About/about_Classes.md @@ -1,7 +1,7 @@ --- description: Describes how you can use classes to create your own custom types. Locale: en-US -ms.date: 01/23/2024 +ms.date: 01/22/2026 online version: https://learn.microsoft.com/powershell/module/microsoft.powershell.core/about/about_classes?view=powershell-7.6&WT.mc_id=ps-gethelp schema: 2.0.0 title: about_Classes @@ -64,18 +64,17 @@ To instantiate an instance of a class, use one of the following syntaxes: ``` ```Syntax -[$ =] []@{[]} +[$ =] [] ``` > [!NOTE] > When using the `[]::new()` syntax, brackets around the class name > are mandatory. The brackets signal a type definition for PowerShell. > -> The hashtable syntax only works for classes that have a default constructor -> that doesn't expect any parameters. It creates an instance of the class with -> the default constructor and then assigns the key-value pairs to the instance -> properties. If any key in the hashtable isn't a valid property name, -> PowerShell raises an error. +> The `` syntax only works for classes that have a +> default constructor that doesn't expect any parameters. It creates an +> instance of the class with the default constructor and then uses runtime type +> conversion to assign the values provided. ## Examples @@ -99,7 +98,67 @@ Brand Fabrikam, Inc. ``` -### Example 2 - Class with instance members +### Example 2 - Using instantiation syntax + +This example defines a **Book** class with several properties, but no +constructor. + +```powershell +class Book { + # Class properties + [string] $Title + [string] $Author + [string] $Synopsis + [string] $Publisher + [datetime] $PublishDate + [int] $PageCount + [string[]] $Tags +} +``` + +The following example shows how the default constructor can assign the values +from a compatible value using type coercion. In this example, a hashtable is +used to provide the property values. + +```powershell +$Book1 = [Book] @{ + Title = '1984' + Author = 'George Orwell' + Synopsis = '' + Publisher = 'Secker & Warburg' + PublishDate = '1949-06-08' + PageCount = 328 + Tags = @('Dystopian', 'Political Fiction', 'Social Science Fiction') +} +$Book1 +``` + +```Output +Title : 1984 +Author : George Orwell +Synopsis : +Publisher : Secker & Warburg +PublishDate : 6/8/1949 12:00:00 AM +PageCount : 328 +Tags : {Dystopian, Political Fiction, Social Science Fiction} +``` + +The key-value pairs of the hashtable are assigned to the instance properties. +If any key in the hashtable isn't a valid property name, instantiation fails. + +In this example, an array is used to provide the values for the generic list. + +```powershell +$List = [System.Collections.Generic.List[int]] @(42, 43) +$List +``` + +```Output +42 +43 +``` + +### Example 3 - Class with instance members This example defines a **Book** class with several properties, constructors, and methods. Every defined member is an _instance_ member, not a static member. @@ -190,12 +249,12 @@ It takes 10 hours and 20 minutes to read The Hobbit by J.R.R. Tolkien (1937), which was published 86 years ago. ``` -### Example 3 - Class with static members +### Example 4 - Class with static members -The **BookList** class in this example builds on the **Book** class in example -2. While the **BookList** class can't be marked static itself, the -implementation only defines the **Books** static property and a set of static -methods for managing that property. +The **BookList** class in this example builds on the **Book** class in the +previous example. While the **BookList** class can't be marked static itself, +the implementation only defines the **Books** static property and a set of +static methods for managing that property. ```powershell class BookList { @@ -360,7 +419,7 @@ Line | | Book 'The Hobbit by J.R.R. Tolkien (1937)' already in list ``` -### Example 4 - Class definition with and without Runspace affinity +### Example 5 - Class definition with and without Runspace affinity The `ShowRunspaceId()` method of `[UnsafeClass]` reports different thread Ids but the same runspace ID. Eventually, the session state is corrupted causing @@ -426,7 +485,7 @@ Properties are variables declared in the class scope. A property can be of any built-in type or an instance of another class. Classes can have zero or more properties. Classes don't have a maximum property count. -For more information, see [about_Classes_Properties][01]. +For more information, see [about_Classes_Properties][09]. ## Class methods @@ -436,7 +495,7 @@ method doesn't return any output, it must have the **Void** output type. If a method doesn't explicitly define an output type, the method's output type is **Void**. -For more information, see [about_Classes_Methods][02]. +For more information, see [about_Classes_Methods][06]. ## Class constructors @@ -445,7 +504,7 @@ moment of creating the instance of the class. Constructors have the same name as the class. Constructors might have parameters, to initialize the data members of the new object. -For more information, see [about_Classes_Constructors][03]. +For more information, see [about_Classes_Constructors][02]. ## Hidden keyword @@ -474,11 +533,11 @@ Hidden class members are: > When you hide any constructor, the `new()` option is removed from > IntelliSense and completion results. -For more information about the keyword, see [about_Hidden][04]. For more -information about hidden properties, see [about_Classes_Properties][05]. For -more information about hidden methods, see [about_Classes_Methods][06]. For +For more information about the keyword, see [about_Hidden][13]. For more +information about hidden properties, see [about_Classes_Properties][10]. For +more information about hidden methods, see [about_Classes_Methods][07]. For more information about hidden constructors, see -[about_Classes_Constructors][07]. +[about_Classes_Constructors][03]. ## Static keyword @@ -492,9 +551,9 @@ available always. All static properties live for the entire session span. The `static` keyword only applies to class members, not a class itself. For more information about static properties, see -[about_Classes_Properties][08]. For more information about static methods, see -[about_Classes_Methods][09]. For more information about static constructors, -see [about_Classes_Constructors][10]. +[about_Classes_Properties][11]. For more information about static methods, see +[about_Classes_Methods][08]. For more information about static constructors, +see [about_Classes_Constructors][04]. ## Inheritance in PowerShell classes @@ -510,8 +569,7 @@ inherits from an interface must implement that contract. When it does, the class can be used like any other class implementing that interface. For more information about deriving classes that inherit from a base class or -implement interfaces, see -[about_Classes_Inheritance][11]. +implement interfaces, see [about_Classes_Inheritance][05]. ## NoRunspaceAffinity attribute @@ -533,8 +591,7 @@ thread and the thread's current session state. The attribute was added in PowerShell 7.4. For an illustration of the difference in behavior for classes with and without -the `NoRunspaceAffinity` attribute, see -[Example 4](#example-4---class-definition-with-and-without-runspace-affinity). +the `NoRunspaceAffinity` attribute, see [Example 5][01]. ## Export classes with type accelerators @@ -620,7 +677,7 @@ consistently import classes defined in nested modules or classes defined in scripts that are dot-sourced into the root module. Define classes that you want to be available to users outside of the module directly in the root module. -For more information about the `using` statement, see [about_Using][12]. +For more information about the `using` statement, see [about_Using][16]. ## Load newly changed code during development @@ -647,7 +704,7 @@ parameters can't be used with class members. The **PSReference** class was designed to support COM objects. COM objects have cases where you need to pass a value in by reference. -For more information, see [PSReference Class][13]. +For more information, see [PSReference Class][17]. ## Limitations @@ -767,30 +824,31 @@ workaround for those limitations, if any. ## See also -- [about_Classes_Constructors][03] -- [about_Classes_Inheritance][11] -- [about_Classes_Methods][02] -- [about_Classes_Properties][01] -- [about_Enum][14] -- [about_Hidden][04] -- [about_Language_Keywords][15] -- [about_Methods][16] -- [about_Using][12] +- [about_Classes_Constructors][02] +- [about_Classes_Inheritance][05] +- [about_Classes_Methods][06] +- [about_Classes_Properties][09] +- [about_Enum][12] +- [about_Hidden][13] +- [about_Language_Keywords][14] +- [about_Methods][15] +- [about_Using][16] -[01]: about_Classes_Properties.md -[02]: about_Classes_Methods.md -[03]: about_Classes_Constructors.md -[04]: about_Hidden.md -[05]: about_Classes_Properties.md#hidden-properties -[06]: about_Classes_Methods.md#hidden-methods -[07]: about_Classes_Constructors.md#hidden-constructors -[08]: about_Classes_Properties.md#static-properties -[09]: about_Classes_Methods.md#static-methods -[10]: about_Classes_Constructors.md#static-constructors -[11]: about_Classes_Inheritance.md -[12]: about_Using.md -[13]: /dotnet/api/system.management.automation.psreference -[14]: about_Enum.md -[15]: about_language_keywords.md -[16]: about_methods.md +[01]: #example-5---class-definition-with-and-without-runspace-affinity +[02]: about_Classes_Constructors.md +[03]: about_Classes_Constructors.md#hidden-constructors +[04]: about_Classes_Constructors.md#static-constructors +[05]: about_Classes_Inheritance.md +[06]: about_Classes_Methods.md +[07]: about_Classes_Methods.md#hidden-methods +[08]: about_Classes_Methods.md#static-methods +[09]: about_Classes_Properties.md +[10]: about_Classes_Properties.md#hidden-properties +[11]: about_Classes_Properties.md#static-properties +[12]: about_Enum.md +[13]: about_Hidden.md +[14]: about_language_keywords.md +[15]: about_methods.md +[16]: about_Using.md +[17]: xref:System.Management.Automation.PSReference From 02203801930a87ca767e38abf4909786f15e0c2c Mon Sep 17 00:00:00 2001 From: Sean Wheeler Date: Thu, 22 Jan 2026 16:19:16 -0600 Subject: [PATCH 3/3] Add FAQ for WinPS5.1 update message (#12689) * Add FAQ for WinPS5.1 update message * Fix typos * Minor edits * Fix TOC * Fix typo * Address Mikey's Yaml nit * yayf - yet another yaml fix --- reference/docs-conceptual/toc.yml | 2 + .../windows-powershell-update-notice.png | Bin 0 -> 60541 bytes .../update-notification-message.yml | 64 ++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 reference/docs-conceptual/windows-powershell/media/update-notification-message/windows-powershell-update-notice.png create mode 100644 reference/docs-conceptual/windows-powershell/update-notification-message.yml diff --git a/reference/docs-conceptual/toc.yml b/reference/docs-conceptual/toc.yml index 8e4e55975935..171a7f631a65 100644 --- a/reference/docs-conceptual/toc.yml +++ b/reference/docs-conceptual/toc.yml @@ -239,6 +239,8 @@ items: href: whats-new/module-compatibility.md - name: Windows PowerShell items: + - name: Windows PowerShell update message + href: windows-powershell/update-notification-message.yml - name: ISE items: - name: Introducing the Windows PowerShell ISE diff --git a/reference/docs-conceptual/windows-powershell/media/update-notification-message/windows-powershell-update-notice.png b/reference/docs-conceptual/windows-powershell/media/update-notification-message/windows-powershell-update-notice.png new file mode 100644 index 0000000000000000000000000000000000000000..a1700b7966e4a7763551386d49dff4442574f160 GIT binary patch literal 60541 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 literal 0 HcmV?d00001 diff --git a/reference/docs-conceptual/windows-powershell/update-notification-message.yml b/reference/docs-conceptual/windows-powershell/update-notification-message.yml new file mode 100644 index 000000000000..ad53ea4fa7b6 --- /dev/null +++ b/reference/docs-conceptual/windows-powershell/update-notification-message.yml @@ -0,0 +1,64 @@ +### YamlMime:FAQ +metadata: + description: >- + This article explains the intent of the update notification message in Windows PowerShell. + ms.date: 01/22/2026 + ms.topic: faq + title: Windows PowerShell update message + +title: Windows PowerShell update message +summary: | + When you start Windows PowerShell you see a message that tells you to install the latest version + of PowerShell along with a URL. + + ![Update notification message](./media/update-notification-message/windows-powershell-update-notice.png) + + This article explains the intent of this message and provides answers to frequently asked + questions. + +sections: + - name: Frequently asked questions + questions: + - question: Why am I seeing this message? + answer: | + Windows PowerShell displays this message at startup to make you aware that there is a + newer version of PowerShell available. + + - question: I opened the URL but it didn't install an update. + answer: | + The `aka.ms` link takes you to this page. If you want to install the latest version of + PowerShell, follow the instructions in + [Install PowerShell on Windows](../install/install-powershell-on-windows.md). + + - question: But I installed PowerShell 7, why am I still seeing this message? + answer: | + You always get the message when you run Windows PowerShell 5.1. PowerShell 7 doesn't + replace Windows PowerShell 5.1. PowerShell 7 installs side-by-side. You can run either + version. + + - question: Can I disable the message? + answer: No. There is no way to disable the message. + + - question: How does Windows PowerShell 5.1 get updated? + answer: | + Windows PowerShell 5.1 is a built-in component of Windows. It's important to understand + that Windows PowerShell is no longer being developed. Microsoft only publishes security + updates for Windows PowerShell 5.1. All updates are managed through standard Windows + update channels. + + - question: My install of Windows is up-to-date. Why am I still getting this message? + answer: | + This message appears every time you start Windows PowerShell 5.1. It doesn't mean that + Windows PowerShell 5.1 is not up-to-date. It means that you are not running PowerShell 7. + + - question: Why would I want to install PowerShell 7? + answer: | + Windows PowerShell 5.1 is no longer being developed. PowerShell 7 is actively developed + and supported. PowerShell 7 is faster, more secure, and is available for Windows, Linux + and macOS. For more information, see + [Differences between Windows PowerShell 5.1 and PowerShell 7](../whats-new/differences-from-windows-powershell.md). + + - question: Do I need to install PowerShell 7? + answer: | + No, you don't need to install PowerShell 7 unless you have a specific requirement for the + features it provides.