Я не могу передать объект datetime
любому методу класса, который я пишу.Вот простая версия того, что я пытаюсь и что я получаю:
class Utils {
static [string] formatDate([datetime]$Input) {
if($Input.Equals([datetime]::new(0))) { return "" }
return $Input.ToString("MMddyy")
}
static [string] joinDates([datetime[]]$Input) {
return ($Input | ForEach{ $_.ToString("MMddyy")}) -Join ", "
}
}
И когда я пробую эту команду, я получаю сообщение об ошибке:
> [Utils]::formatDate((Get-Date))
> No coercion operator is defined between types '`System.Object[]' and 'Utils'.
> At line:1 char:1
> + [Utils]::formatDate((Get-Date))
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> + CategoryInfo : OperationStopped: (:) [], InvalidOperationException
> + FullyQualifiedErrorId : System.InvalidOperationException
Однако работает следующее:
> [Utils]::joinDates(@((Get-Date), (Get-Date)))
> 120518, 120518
Что именно я здесь не так делаю?Я чувствую, что есть что-то очевидное, что я упускаю или не знаю, но на первый взгляд это кажется простым / достаточно простым, чтобы это могло просто сработать!