인수 전달
인수가 필요한 생성자를 사용하거나 정적 생성 메서드를 호출하여 개체를 인스턴스화해야 하는 경우가 많습니다. 이 작업은 다음과 같은 특성을 사용하여 .NET 다중 플랫폼 앱 UI(.NET MAUI) XAML에서 x:Arguments
x:FactoryMethod
수행할 수 있습니다.
- 이
x:Arguments
특성은 기본이 아닌 생성자 또는 팩터리 메서드 개체 선언에 대한 생성자 인수를 지정하는 데 사용됩니다. 자세한 내용은 Pass 생성자 인수를 참조 하세요. - 이
x:FactoryMethod
특성은 개체를 초기화하는 데 사용할 수 있는 팩터리 메서드를 지정하는 데 사용됩니다. 자세한 내용은 호출 팩터리 메서드를 참조 하세요.
또한 x:TypeArguments
특성을 사용하여 제네릭 형식의 생성자에 대한 제네릭 형식 인수를 지정할 수 있습니다. 자세한 내용은 제네릭 형식 인수 지정을 참조 하세요.
다음 .NET MAUI XAML 언어 기본 형식을 사용하여 인수를 생성자 및 팩터리 메서드에 전달할 수 있습니다.
x:Array
에 해당하는Array
.x:Boolean
에 해당하는Boolean
.x:Byte
에 해당하는Byte
.x:Char
에 해당하는Char
.x:DateTime
에 해당하는DateTime
.x:Decimal
에 해당하는Decimal
.x:Double
에 해당하는Double
.x:Int16
에 해당하는Int16
.x:Int32
에 해당하는Int32
.x:Int64
에 해당하는Int64
.x:Object
에 해당하는Object
.x:Single
에 해당하는Single
.x:String
에 해당하는String
.x:TimeSpan
에 해당하는TimeSpan
.
예외를 제외하고 x:DateTime
다른 언어 기본 형식은 XAML 2009 사양에 있습니다.
참고 항목
언어 기본 형식을 x:Single
사용하여 인수를 전달할 float
수 있습니다.
생성자 인수 전달
특성을 사용하여 기본이 아닌 생성자에 인수를 x:Arguments
전달할 수 있습니다. 각 생성자 인수는 인수의 형식을 나타내는 XML 요소 내에서 구분되어야 합니다.
다음 예제에서는 세 개의 서로 다른 Color 생성자와 특성을 사용하는 x:Arguments
방법을 보여 줍니다.
<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>
태그 내 x:Arguments
의 요소 수와 이러한 요소의 형식은 생성자 중 Color 하나와 일치해야 합니다. 단일 매개 변수가 있는 생성자에는 Color 0(검정)에서 1(흰색)의 회색조 float
값이 필요합니다. 세 개의 매개 변수가 float
있는 생성자에는 Color 0에서 1 사이의 빨강, 녹색 및 파란색 값이 필요합니다. Color 네 개의 매개 변수가 있는 생성자는 알파 채널을 네 번째 매개 변수로 추가합니다float
.
팩터리 메서드 호출
특성을 사용하여 메서드의 이름과 특성을 사용하는 x:FactoryMethod
인수를 지정하여 .NET MAUI XAML에서 팩터리 메서드를 호출할 x:Arguments
수 있습니다. 팩터리 메서드는 메서드를 public static
정의하는 클래스 또는 구조체와 동일한 형식의 개체 또는 값을 반환하는 메서드입니다.
클래스는 Color 여러 팩터리 메서드를 정의하고 다음 예제에서는 세 가지 메서드를 호출하는 방법을 보여 줍니다.
<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>
태그 내 x:Arguments
의 요소 수와 이러한 요소의 형식은 호출되는 팩터리 메서드의 인수와 일치해야 합니다. 팩터리 메서드에는 FromRgba
각각 0에서 255 사이의 빨강, 녹색, 파랑 및 알파 값을 나타내는 네 개의 byte
인수가 필요합니다. 팩터리 메서드에는 FromHsla
각각 0에서 1 사이의 색조, 채도, 광도 및 알파 값을 나타내는 네 개의 float
인수가 필요합니다. 팩터리 메서드에는 FromHex
string
16진수(A)RGB 색을 나타내는 인수가 필요합니다.
제네릭 형식 인수 지정
다음 예제와 같이 특성을 사용하여 x:TypeArguments
제네릭 형식의 생성자에 대한 제네릭 형식 인수를 지정할 수 있습니다.
<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>
클래스는 OnPlatform
제네릭 클래스이며 대상 형식과 일치하는 특성으로 x:TypeArguments
인스턴스화해야 합니다. 클래스에서 On
특성은 Platform
단일 string
값 또는 여러 쉼표로 구분된 string
값을 허용할 수 있습니다. 이 예제에서는 속성이 StackLayout.Margin
플랫폼별 Thickness
으로 설정됩니다.
제네릭 형식 인수에 대한 자세한 내용은 XAML의 제네릭을 참조하세요.
.NET MAUI