我正在学习Xamarin,我知道C#的基础知识。我遇到的第一个代码之一是
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Xamarin.Forms;
namespace Hello
{
public class App : Application
{
public App()
{
// The root page of your application
MainPage = new ContentPage
{
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Center,
Children = {
new Label {
HorizontalTextAlignment = TextAlignment.Center,
Text = "Welcome to Xamarin Forms!"
}
}
}
};
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
}
我遇到问题的部分是
Children = {
new Label {
HorizontalTextAlignment = TextAlignment.Center,
Text = "Welcome to Xamarin Forms!"
}
我不明白这里发生了什么。什么是Children
?分配给它的是什么?
答案 0 :(得分:1)
Children
,但Children
已初始化。由于“儿童”属性不可浏览,所以它更加令人困惑,因此它不会出现在智能感知中。
Children
是IList<View>
。
您可以像这样初始化集合......
List<string> list = new List<string>{
"s1",
"s2",
"s3"
};
相当于
List<string> list = new List<string>();
list.Add("s1");
list.Add("s2");
list.Add("s3");
同样
Children = {
new Label{
}
}
相当于
Children.Add(new Label{ });
但是,没有关于如何初始化集合属性的官方文档,但似乎编译器巧妙地转换表达式。我试图编译它似乎它确实正常工作。
您可以在此处查看示例https://dotnetfiddle.net/8jln93