about_Functions_OutputTypeAttribute
Kısa açıklama
İşlevin döndürdüğü nesne türünü bildiren bir özniteliği açıklar.
Uzun açıklama
OutputType özniteliği, işlevlerin döndürdüğü .NET nesne türlerini listeler. Her parametre kümesi için farklı çıkış türlerini listelemek için isteğe bağlı ParameterSetName parametresini kullanabilirsiniz.
OutputType özniteliği basit ve gelişmiş işlevlerde desteklenir. CmdletBinding özniteliğinden bağımsızdır.
OutputType özniteliği, cmdlet'in döndürdüğü System.Management.Automation.FunctionInfo nesnesinin OutputType özelliğinin Get-Command
değerini sağlar.
OutputType öznitelik değeri yalnızca bir belge notudur. İşlev kodundan türetilmemiştir veya gerçek işlev çıkışıyla karşılaştırılmaz. Bu nedenle, değer yanlış olabilir.
Sözdizimi
İşlevlerin OutputType özniteliği aşağıdaki söz dizimine sahiptir:
[OutputType([<TypeLiteral>], ParameterSetName="<Name>")]
[OutputType("<TypeNameString>", ParameterSetName="<Name>")]
ParameterSetName parametresi isteğe bağlıdır.
OutputType özniteliğinde birden çok türü listeleyebilirsiniz.
[OutputType([<Type1>],[<Type2>],[<Type3>])]
ParameterSetName parametresini kullanarak farklı parametre kümelerinin farklı türler döndürdüğünü belirtebilirsiniz.
[OutputType([<Type1>], ParameterSetName=("<Set1>","<Set2>"))]
[OutputType([<Type2>], ParameterSetName="<Set3>")]
OutputType öznitelik deyimlerini deyiminden önceki Param
öznitelikler listesine yerleştirin.
Aşağıdaki örnekte OutputType özniteliğinin basit bir işleve yerleştirilmesi gösterilmektedir.
function SimpleFunction2
{
[OutputType([<Type>])]
Param ($Parameter1)
<function body>
}
Aşağıdaki örnek, OutputType özniteliğinin gelişmiş işlevlere yerleştirilmesini gösterir.
function AdvancedFunction1
{
[OutputType([<Type>])]
Param (
[parameter(Mandatory=$true)]
[String[]]
$Parameter1
)
<function body>
}
function AdvancedFunction2
{
[CmdletBinding(SupportsShouldProcess=<Boolean>)]
[OutputType([<Type>])]
Param (
[parameter(Mandatory=$true)]
[String[]]
$Parameter1
)
<function body>
}
Örnekler
Örnek 1: DizeNin OutputType'ını içeren bir işlev oluşturma
function Send-Greeting
{
[OutputType([String])]
Param ($Name)
"Hello, $Name"
}
Sonuçta elde edilen çıkış türü özelliğini görmek için cmdlet'ini Get-Command
kullanın.
(Get-Command Send-Greeting).OutputType
Name Type
---- ----
System.String System.String
Örnek 2: Dinamik çıkış türlerini belirtmek için OutputType özniteliğini kullanın
Aşağıdaki gelişmiş işlev, işlevin işlev komutunda kullanılan parametre kümesine bağlı olarak farklı türler döndürdüğünü belirtmek için OutputType özniteliğini kullanır.
function Get-User
{
[CmdletBinding(DefaultParameterSetName="ID")]
[OutputType("System.Int32", ParameterSetName="ID")]
[OutputType([String], ParameterSetName="Name")]
Param (
[parameter(Mandatory=$true, ParameterSetName="ID")]
[Int[]]
$UserID,
[parameter(Mandatory=$true, ParameterSetName="Name")]
[String[]]
$UserName
)
<function body>
}
Örnek 3: Gerçek çıkışın OutputType'tan ne zaman farklı olduğunu gösterir
Aşağıdaki örnek, çıktı türü özellik değerinin hatalı olsa bile OutputType özniteliğinin değerini görüntülediğini gösterir.
İşlev, Get-Time
herhangi bir DateTime nesnesinde saatin kısa biçimini içeren bir dize döndürür. Ancak OutputType özniteliği bir System.DateTime nesnesi döndürdüğünü bildirir.
function Get-Time
{
[OutputType([DateTime])]
Param (
[parameter(Mandatory=$true)]
[Datetime]$DateTime
)
$DateTime.ToShortTimeString()
}
yöntemi işlevin GetType()
bir dize döndürdüğünü onaylar.
(Get-Time -DateTime (Get-Date)).GetType().FullName
System.String
Ancak, değerini OutputType özniteliğinden alan OutputType özelliği, işlevin bir DateTime nesnesi döndürdüğünü bildirir.
(Get-Command Get-Time).OutputType
Name Type
---- ----
System.DateTime System.DateTime
Örnek 4: Çıkışı olmaması gereken bir işlev
Aşağıdaki örnekte, bir eylem gerçekleştirmesi ancak hiçbir şey döndürmemesi gereken özel bir işlev gösterilmektedir.
function Invoke-Notepad
{
[OutputType([System.Void])]
Param ()
& notepad.exe | Out-Null
}
Notlar
FunctionInfo nesnesinin OutputType özelliğinin değeri, her biri Ad ve Tür özelliklerine sahip olan bir System.Management.Automation.PSTypeName nesneleri dizisidir.
Her çıkış türünün yalnızca adını almak için aşağıdaki biçime sahip bir komut kullanın.
(Get-Command Get-Date).OutputType | Select-Object -ExpandProperty Name
Ya da daha kısa sürümü.
(Get-Command Get-Date).OutputType.Name
OutputType özelliğinin değeri null olabilir. Çıktı wmi nesnesi veya nesnenin biçimlendirilmiş görünümü gibi bir .NET türü olmadığında null değer kullanın.
Ayrıca bkz.
PowerShell
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin