Есть ли способ показать пользователю доступные перегрузки для конструкторов класса powershell при создании объекта и не дать им передать его GM? - PullRequest
0 голосов
/ 13 апреля 2020

Я рассматриваю группирование некоторых функций в классы в PowerShell и хотел бы показать пользователю различные перегрузки конструктора.

Есть ли способ показать, какие перегрузки доступны для человека, использующего класс, пока он печатает его, вместо того, чтобы ему приходилось передавать объект на Get-Member?

1 Ответ

1 голос
/ 13 апреля 2020

Отправка [<type>]::new в командной строке - без () - показывает все перегрузки конструктора (если есть) для типа <type> (требуется PowerShell v5 +).

Например, :

PS> [datetime]::new  # do NOT append '()'

OverloadDefinitions                                                                                                                                            
-------------------                                                                                                                                            
datetime new(long ticks)                                                                                                                                       
datetime new(long ticks, System.DateTimeKind kind)                                                                                                             
datetime new(int year, int month, int day)                                                                                                                     
datetime new(int year, int month, int day, System.Globalization.Calendar calendar)                                                                             
datetime new(int year, int month, int day, int hour, int minute, int second)                                                                                   
datetime new(int year, int month, int day, int hour, int minute, int second, System.DateTimeKind kind)                                                         
datetime new(int year, int month, int day, int hour, int minute, int second, System.Globalization.Calendar calendar)                                           
datetime new(int year, int month, int day, int hour, int minute, int second, int millisecond)                                                                  
datetime new(int year, int month, int day, int hour, int minute, int second, int millisecond, System.DateTimeKind kind)                                        
datetime new(int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar)                          
datetime new(int year, int month, int day, int hour, int minute, int second, int millisecond, System.Globalization.Calendar calendar, System.DateTimeKind kind)                                                                                                                                                               

Обратите внимание, что тот же метод работает и для перегрузок method ; например:

PS> (Get-Date).ToString # do NOT append '()'

OverloadDefinitions                                                                                                                                            
-------------------                                                                                                                                            
string ToString()                                                                                                                                              
string ToString(string format)                                                                                                                                 
string ToString(System.IFormatProvider provider)                                                                                                               
string ToString(string format, System.IFormatProvider provider)                                                                                                
string IFormattable.ToString(string format, System.IFormatProvider formatProvider)                                                                             
string IConvertible.ToString(System.IFormatProvider provider)                                                                                                                                                                                                                                                                 ```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...