about_Ref
Kısa açıklama
Bir başvuru türü değişkeninin nasıl oluşturulacağını ve kullanılacağını açıklar. Bir işlevin ona geçirilen değişkenin değerini değiştirmesine izin vermek için başvuru türü değişkenlerini kullanabilirsiniz.
Uzun açıklama
Değişkenleri başvuruya veya değere göre işlevlere geçirebilirsiniz.
Bir değişkeni değere göre geçirdiğinizde, verilerin bir kopyasını geçirirsiniz.
Aşağıdaki örnekte işlev, ona geçirilen değişkenin değerini değiştirir. PowerShell'de tamsayılar değer türleri olduğundan değere göre geçirilir.
Bu nedenle, değeri $var
işlevin kapsamı dışında değişmez.
Function Test($data)
{
$data = 3
}
$var = 10
Test -data $var
$var
10
Aşağıdaki örnekte, içeren bir değişken Hashtable
bir işleve geçirilir. Hashtable
bir nesne türüdür, bu nedenle varsayılan olarak işleve başvuruyla geçirilir.
Bir değişkeni başvuruya göre geçirirken işlev verileri değiştirebilir ve işlev yürütülürken bu değişiklik devam eder.
Function Test($data)
{
$data.Test = "New Text"
}
$var = @{}
Test -data $var
$var
Name Value
---- -----
Test New Text
İşlev, işlevin kapsamının dışında kalıcı olan yeni bir anahtar-değer çifti ekler.
Başvuru parametrelerini kabul etmek için işlevler yazma
İşlevlerinizi, geçirilen veri türüne bakılmaksızın bir parametreyi başvuru olarak alacak şekilde kodlayabilirsiniz. Bunun için parametre türünü veya [ref]
olarak System.Management.Automation.PSReference
belirtmeniz gerekir.
Başvuruları kullanırken, verilerinize Value
erişmek için türünün özelliğini System.Management.Automation.PSReference
kullanmanız gerekir.
Function Test([ref]$data)
{
$data.Value = 3
}
Bir değişkeni başvuru bekleyen bir parametreye geçirmek için, değişkeninizi başvuru olarak atama yazmanız gerekir.
Not
Köşeli ayraçlar ve ayraçlar her ikisi de gereklidir.
$var = 10
Test -data ([ref]$var)
$var
3
.NET yöntemlerine başvuru geçirme
Bazı .NET yöntemleri, bir değişkeni başvuru olarak geçirmenizi gerektirebilir. Yöntemin tanımı bir parametrede , out
veya ref
anahtar sözcüklerini in
kullandığında, bir başvuru bekler.
[int] | Get-Member -Static -Name TryParse
Name MemberType Definition
---- ---------- ----------
TryParse Method static bool TryParse(string s, [ref] int result)
yöntemi bir TryParse
dizeyi tamsayı olarak ayrıştırmaya çalışır. Yöntem başarılı olursa $true
döndürür ve sonuç, başvuruyla geçtiğiniz değişkende depolanır.
PS> $number = 0
PS> [int]::TryParse("15", ([ref]$number))
True
PS> $number
15
Başvurular ve kapsamlar
Başvurular, üst kapsamdaki bir değişkenin değerinin alt kapsamda değiştirilmesine olanak sağlar.
# Create a value type variable.
$i = 0
# Create a reference type variable.
$iRef = [ref]0
# Invoke a scriptblock to attempt to change both values.
&{$i++;$iRef.Value++}
# Output the results.
"`$i = $i;`$iRef = $($iRef.Value)"
$i = 0;$iRef = 1
Yalnızca başvuru türünün değişkeni değiştirildi.
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