gpt4 book ai didi

c# - 在泛型类型的参数上调用方法

转载 作者:行者123 更新时间:2023-11-30 19:15:46 24 4
gpt4 key购买 nike

我想编写一个通用方法,作为输入有一个通用对象列表。我想对每个列表项调用一个方法。

我想做的是写这样的东西:

public void ResetPointProperties<T> (List<T> Points) 
{
foreach (T point in Points)
{
point.Reset();
}
}

如何在我的列表项上调用 Reset()

最佳答案

你快到了。然而,缺少的是,就目前而言,编译器不知道是否/每个 T 都有一个 reset() 方法。因此,您必须添加 constraint到需要 T 实现接口(interface)的 T 参数或从声明此类 reset() 方法的类继承。

例如,让我们假设您在某个地方有以下界面:

public interface IThing
{
void reset();
}

然后,您可以按如下方式声明上述方法:

public void ResetPointProperties<T> (List<T> Points)
where T : IThing

这强制传递给 T 类型参数的任何类型必须实现IThing。作为返回,编译器可以保证您方法中的 point 实际上有一个您可以调用的 reset() 方法。

关于c# - 在泛型类型的参数上调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33542719/

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