我是一名尝试使用 C# 泛型的 C++ 开发人员。我的最终目标是模仿 C# 中的模板专业化。
换句话说,我想要一个可用于所有类型的函数的默认实现和一个特定类型的特定实现。
我的第一次尝试是使用泛型和扩展方法,但似乎 C# 泛型是在运行时解析的,这给出了这个奇怪的结果(至少对于 C++ 程序员来说很奇怪):
//any of my classes
public class MyClass
{
}
//class extension for my classes only
public static class MyClassExt
{
public static string GetCaption(this MyClass c)
{
return "MyClass caption";
}
}
//"default" extension for all
public static class objectExt
{
public static string GetCaption(this object o)
{
return $"object caption {o}";
}
}
internal class Program
{
public static string GetCaption<T>(T t)
{
//Isn't it supposed …Run Code Online (Sandbox Code Playgroud)