gpt4 book ai didi

c# - 简化的集合初始化

转载 作者:行者123 更新时间:2023-11-30 17:18:24 26 4
gpt4 key购买 nike

在初始化 WF4 事件时,我们可以这样做:

Sequence s = new Sequence()
{
Activities = {
new If() ...,
new WriteLine() ...,
}
}

请注意 Sequence.ActivitiesCollection<Activity>但它可以在没有新的 Collection() 的情况下进行初始化。

如何在我的 Collection<T> 上模拟此行为属性?

最佳答案

任何具有 Add() 的集合方法与实现IEnumerable可以这样初始化。详见Object and Collection Initializers for C# . (缺少新的 Collection<T> 调用是由于对象初始化器,而添加内联项目的能力是由于集合初始化器。)

编译器会自动调用Add()使用集合初始化 block 中的项目在您的类上的方法。


作为示例,这里有一段非常简单的代码来演示:

using System;
using System.Collections.ObjectModel;

class Test
{
public Test()
{
this.Collection = new Collection<int>();
}

public Collection<int> Collection { get; private set; }

public static void Main()
{

// Note the use of collection intializers here...
Test test = new Test
{
Collection = { 3, 4, 5 }
};


foreach (var i in test.Collection)
{
Console.WriteLine(i);
}

Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
}

关于c# - 简化的集合初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5793286/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com