gpt4 book ai didi

c# - 参数数量可变的扩展方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:29:22 24 4
gpt4 key购买 nike

我已经创建了这个具有扩展方法的帮助器类 RichTextBoxHelper,我想编写另一个 WriteLine 方法或重写这个方法(哪个解决方案最好)以便能够在它下面显示的函数中使用它。谢谢。

public static class RichTextBoxHelper
{
public static void WriteLine(this RichTextBox txtLog, object line)
{
txtLog.AppendText(line + Environment.NewLine);
}
}

private void selectToolStripMenuItem_Click(object sender, EventArgs e)
{
var vehicles = new List<Tuple<string, string, int>>
{
Tuple.Create("123","VW",1999),
Tuple.Create("234","Ford",2009),
Tuple.Create("567","Audi",2005),
Tuple.Create("678","Ford",2003),
Tuple.Create("789","Mazda",2003),
Tuple.Create("999","Ford",1965)
};

var fordCars = vehicles.Where(v => v.Item2 == "Ford")
.Select(v => new Car
{
VIN = v.Item1,
Make = v.Item2,
Year = v.Item3
});

foreach (var item in fordCars)
txtLog.WriteLine("Car VIN:{0} Make:{1} Year:{2}", item.VIN, item.Make, item.Year);
}

最佳答案

是的,这完全有可能。它称为方法重载,它在扩展方法类上的工作方式与普通类一样好。

新方法所需的签名是:

public static void WriteLine(
this RichTextBox txtLog,
string format,
params object[] args)
{
// ...
}

只要把它和你的另一个放在同一个类中,你就可以适本地使用它们。

或者,您可以通过以下方式调用现有方法:

txtLog.WriteLine(
String.Format(
"Car VIN:{0} Make:{1} Year:{2}",
item.VIN,
item.Make,
item.Year));

关于c# - 参数数量可变的扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25040405/

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