gpt4 book ai didi

c# - 有没有办法让现有类型实现接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 15:50:16 25 4
gpt4 key购买 nike

假设我写了一个非常棒的界面。太棒了,事实上,我想要一些我用来实现它们的内置类型,这样我编写的任何使用此接口(interface)的代码也可以使用内置类型。

public interface IKickAss
{
int Yeahhhhhhh() { get; }
}

public static class Woot
{
public int Bar(IKickAss a, IKickAss b)
{
return a.Yeahhhhhhh - b.Yeahhhhhhh;
}
}

// What I'd like to do, sort of.
public partial struct Int32 : IKickAss
{
public int Yeahhhhhhh
{
get
{
return this;
}
}
}

出于多种原因,我多次想要这个。最近的是我为“uint”实现了基数排序,但也创建了一个简单的“IRadixSortable”接口(interface),它需要属性“uint RadixKey {get}”。这意味着我基本上复制了排序代码:一次用于 uint 数组,另一个用于 IRadixSortable 数组。我宁愿通过使 uint 类型实现 IRadixSortable 来编写一个。有什么方法可以做到这一点...也许使用反射?

Haskell 可以做到这一点(即类型类可以随时在任何数据类型上实例化),我认为这是它如此强大的一个非常重要的原因。 C# 确实可以使用此功能。也许称之为“扩展接口(interface)”:)

最佳答案

是也不是。

您可能正在寻找 Duck Typing , 请参阅 the following article .

关于c# - 有没有办法让现有类型实现接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/800376/

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