gpt4 book ai didi

c# - 你能为一个类使用类似数组的构造函数吗

转载 作者:行者123 更新时间:2023-11-30 14:21:13 25 4
gpt4 key购买 nike

是否可以让类构造函数的行为类似于数组初始化器,例如foo foo = { 1, 2, 3 };

通过隐式转换,我非常接近:Foo foo = new int[] { 1, 2, 3 };

但是我想添加更多的语法糖,因为我的代码中会用到这一点。使其更像 JSON。

最佳答案

如果你的类实现了IEnumerable<T>,你可以很接近和 Add(T)其中 T是您收藏中项目的类型。

例如,给定这个:

public sealed class Foo: IEnumerable<int>
{
public void Add(int item)
{
_items.Add(item);
}

public IEnumerator<int> GetEnumerator()
{
return _items.GetEnumerator();
}

IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}

readonly List<int> _items = new List<int>();
}

你可以这样做:

Foo foo = new Foo {1, 2, 3};

不幸的是,以下语法仅适用于数组:

Foo foo = {1, 2, 3}; // Won't compile. You need the "new Foo".

关于c# - 你能为一个类使用类似数组的构造函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59006624/

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