gpt4 book ai didi

c# - C# 中的方法链接

转载 作者:IT王子 更新时间:2023-10-29 03:43:17 24 4
gpt4 key购买 nike

我实际上不知道这在 C# 中叫什么。但是我想将功能添加到我的类中以同时添加多个项目。

myObj.AddItem(mItem).AddItem(mItem2).AddItem(mItem3);

最佳答案

您提到的技术称为可链接方法。它通常在创建 DSL 或 fluent interfaces 时使用在 C# 中。

典型的模式是让您的 AddItem() 方法返回它所属的类(或接口(interface))的实例。这允许后续调用链接到它。

public MyCollection AddItem( MyItem item )
{
// internal logic...

return this;
}

方法链的一些替代方法,用于将项目添加到集合中,包括:

使用 params 语法允许将多个项目作为数组传递给您的方法。当您想隐藏数组创建并为您的方法提供可变参数语法时很有用:

public void AddItems( params MyItem[] items )
{
foreach( var item in items )
m_innerCollection.Add( item );
}

// can be called with any number of arguments...
coll.AddItems( first, second, third );
coll.AddItems( first, second, third, fourth, fifth );

提供 IEnumerable 或 IEnumerable 类型的重载,以便可以将多个项目一起传递到您的集合类。

public void AddItems( IEnumerable<MyClass> items )
{
foreach( var item in items )
m_innerCollection.Add( item );
}

使用 .NET 3.5 集合初始化器语法。您的类必须提供单个参数 Add( item ) 方法,实现 IEnumerable,并且必须具有默认构造函数(或者您必须在初始化语句中调用特定构造函数)。然后你可以这样写:

var myColl = new MyCollection { first, second, third, ... };

关于c# - C# 中的方法链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1119799/

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