Meneruskan argumen
Seringkali perlu untuk membuat instans objek dengan konstruktor yang memerlukan argumen, atau dengan memanggil metode pembuatan statis. Ini dapat dicapai dalam XAML .NET Multi-platform App UI (.NET MAUI) dengan menggunakan x:Arguments
atribut dan x:FactoryMethod
:
- Atribut
x:Arguments
digunakan untuk menentukan argumen konstruktor untuk konstruktor non-default, atau untuk deklarasi objek metode pabrik. Untuk informasi selengkapnya, lihat Meneruskan argumen konstruktor. - Atribut
x:FactoryMethod
digunakan untuk menentukan metode pabrik yang dapat digunakan untuk menginisialisasi objek. Untuk informasi selengkapnya, lihat Memanggil metode pabrik.
Selain itu, x:TypeArguments
atribut dapat digunakan untuk menentukan argumen jenis generik ke konstruktor jenis generik. Untuk informasi selengkapnya, lihat Menentukan argumen jenis generik.
Argumen dapat diteruskan ke konstruktor dan metode pabrik menggunakan primitif bahasa .NET MAUI XAML berikut:
x:Array
, yang sesuai denganArray
.x:Boolean
, yang sesuai denganBoolean
.x:Byte
, yang sesuai denganByte
.x:Char
, yang sesuai denganChar
.x:DateTime
, yang sesuai denganDateTime
.x:Decimal
, yang sesuai denganDecimal
.x:Double
, yang sesuai denganDouble
.x:Int16
, yang sesuai denganInt16
.x:Int32
, yang sesuai denganInt32
.x:Int64
, yang sesuai denganInt64
.x:Object
, yang sesuai denganObject
.x:Single
, yang sesuai denganSingle
.x:String
, yang sesuai denganString
.x:TimeSpan
, yang sesuai denganTimeSpan
.
Dengan pengecualian x:DateTime
, primitif bahasa lainnya berada dalam spesifikasi XAML 2009.
Catatan
Bahasa x:Single
primitif dapat digunakan untuk meneruskan float
argumen.
Meneruskan argumen konstruktor
Argumen dapat diteruskan ke konstruktor non-default menggunakan x:Arguments
atribut . Setiap argumen konstruktor harus dibatasi dalam elemen XML yang mewakili jenis argumen.
Contoh berikut menunjukkan menggunakan x:Arguments
atribut dengan tiga konstruktor yang berbeda Color :
<BoxView HeightRequest="150"
WidthRequest="150"
HorizontalOptions="Center">
<BoxView.Color>
<Color>
<x:Arguments>
<x:Single>0.9</x:Single>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
<BoxView HeightRequest="150"
WidthRequest="150"
HorizontalOptions="Center">
<BoxView.Color>
<Color>
<x:Arguments>
<x:Single>0.25</x:Single>
<x:Single>0.5</x:Single>
<x:Single>0.75</x:Single>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
<BoxView HeightRequest="150"
WidthRequest="150"
HorizontalOptions="Center">
<BoxView.Color>
<Color>
<x:Arguments>
<x:Single>0.8</x:Single>
<x:Single>0.5</x:Single>
<x:Single>0.2</x:Single>
<x:Single>0.5</x:Single>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
Jumlah elemen dalam x:Arguments
tag, dan jenis elemen ini, harus cocok dengan Color salah satu konstruktor. Color Konstruktor dengan satu parameter memerlukan nilai skala abu-abu float
dari 0 (hitam) hingga 1 (putih). Color Konstruktor dengan tiga parameter memerlukan float
nilai merah, hijau, dan biru mulai dari 0 hingga 1. Color Konstruktor dengan empat parameter menambahkan float
saluran alfa sebagai parameter keempat.
Metode pabrik panggilan
Metode pabrik dapat dipanggil dalam .NET MAUI XAML dengan menentukan nama metode menggunakan x:FactoryMethod
atribut , dan argumennya menggunakan x:Arguments
atribut . Metode pabrik adalah public static
metode yang mengembalikan objek atau nilai dengan jenis yang sama dengan kelas atau struktur yang menentukan metode.
Kelas Color mendefinisikan sejumlah metode pabrik, dan contoh berikut menunjukkan panggilan tiga di antaranya:
<BoxView HeightRequest="150"
WidthRequest="150"
HorizontalOptions="Center">
<BoxView.Color>
<Color x:FactoryMethod="FromRgba">
<x:Arguments>
<x:Byte>192</x:Byte>
<x:Byte>75</x:Byte>
<x:Byte>150</x:Byte>
<x:Byte>128</x:Byte>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
<BoxView HeightRequest="150"
WidthRequest="150"
HorizontalOptions="Center">
<BoxView.Color>
<Color x:FactoryMethod="FromHsla">
<x:Arguments>
<x:Double>0.23</x:Double>
<x:Double>0.42</x:Double>
<x:Double>0.69</x:Double>
<x:Double>0.7</x:Double>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
<BoxView HeightRequest="150"
WidthRequest="150"
HorizontalOptions="Center">
<BoxView.Color>
<Color x:FactoryMethod="FromHex">
<x:Arguments>
<x:String>#FF048B9A</x:String>
</x:Arguments>
</Color>
</BoxView.Color>
</BoxView>
Jumlah elemen dalam x:Arguments
tag, dan jenis elemen ini, harus cocok dengan argumen metode pabrik yang dipanggil. Metode FromRgba
pabrik memerlukan empat byte
argumen, yang mewakili nilai merah, hijau, biru, dan alfa, masing-masing berkisar antara 0 hingga 255. Metode FromHsla
pabrik memerlukan empat float
argumen, yang mewakili nilai hue, saturasi, luminositas, dan alfa, masing-masing berkisar antara 0 hingga 1. Metode FromHex
pabrik memerlukan string
argumen yang mewakili warna heksadesimal (A)RGB.
Tentukan argumen jenis generik
Argumen jenis generik untuk konstruktor jenis generik dapat ditentukan menggunakan x:TypeArguments
atribut , seperti yang ditunjukkan dalam contoh berikut:
<StackLayout>
<StackLayout.Margin>
<OnPlatform x:TypeArguments="Thickness">
<On Platform="iOS" Value="0,20,0,0" />
<On Platform="Android" Value="5, 10" />
</OnPlatform>
</StackLayout.Margin>
</StackLayout>
Kelas OnPlatform
adalah kelas generik dan harus dibuat dengan atribut yang cocok dengan x:TypeArguments
jenis target. On
Di kelas , Platform
atribut dapat menerima satu string
nilai, atau beberapa nilai yang dibatasi string
koma. Dalam contoh ini, StackLayout.Margin
properti diatur ke khusus Thickness
platform .
Untuk informasi selengkapnya tentang argumen jenis generik, lihat Generik di XAML.