MSDN her opsiyonel parametre için yaklaşık Optional Parameters Visual Basic
diyor kabul etmiyor, bir belirtmelisiniz ifadesini olarak, bu parametrenin varsayılan değeri olarak sabitleyin. İfade olarak değerlendirilmezse, değer veri türünün varsayılan değeri, parametrenin varsayılan değeri olarak kullanılır.
Yani onun yerine C# ile yazılmış bu
Private Sub Test(a As Integer, Optional c As Color = Nothing)
If c = Nothing Then
c = Color.Black ' your default color'
End If
......
End Sub
aynı kod gibi bir şey yazabilirim o sözdizimi kullanamaz Test edemeyeceğiniz C# aşağıdaki
private void Test(int a, Color c = default(Color))
{
if (c.IsEmpty)
c = Color.Black;
}
olduğunu boş değerlere karşı bir Değer tipi (Renk, Nokta, Boyut vb. gibi). Bu türler hiçbir zaman boş değildir, ancak türler için varsayılan bir değer vardır (Tamsayılar için 0 gibi), bu nedenle, bir değer türü için isteğe bağlı bir parametre iletmeniz gerekiyorsa, new
anahtar kelimesiyle istediğiniz değerleri elde edebilirsiniz varsayılan olarak kullanmak ister veya default
keyword kullanın ve çerçevenin hangi değerin tür için varsayılan değer olduğuna karar vermesine izin verin. Çerçevenin seçmesine izin verirseniz, IsEmpty özelliği doğru olacaktır.
O C# derleyici parametresini bildirirken bana "Renk c = null" ilan izin vermez tuhaf. Değer türüne null atamadığı için şikayetçi oldu. "Renk c = yeni Renk()" ve daha sonra "c.IsEmpty" için kod testimde vardı. –
@BillGregg, C# sürümünü ekledi – Steve