Kans Asked:2020-10-10 03:13:18 +0000 UTC2020-10-10 03:13:18 +0000 UTC 2020-10-10 03:13:18 +0000 UTC 继承与“继承人”相同类型的泛型类,C# 772 需要回答以下代码为什么正确的问题并给出示例代码: class A <T>{} class B: A<B>{} //тут ошибка VS намекает на - циклическую зависимость //class c: c {} 答:这是 CRTP 技术的典型实现。 c# 1 个回答 Voted Best Answer ixSci 2020-10-10T13:43:54Z2020-10-10T13:43:54Z 这是来自 C++ 的 CRTP 技术的典型实现。为什么这是正确的?为什么,事实上,不是吗?毕竟,我们没有创建任何循环依赖,我们只是将自己指定为广义参数。但是,请注意,我们不是向自己展示自己,而是向另一个类展示自己,即使它是父类。我不会说我知道这在 C# 中是如何应用的,但在 C++ 中这是一种非常普遍的做法。有兴趣的可以看看我写的关于CRTP in C++的文章,我也在Habrahabr上找到了一篇关于CRTP in C#使用的小文章。
这是来自 C++ 的 CRTP 技术的典型实现。为什么这是正确的?为什么,事实上,不是吗?毕竟,我们没有创建任何循环依赖,我们只是将自己指定为广义参数。但是,请注意,我们不是向自己展示自己,而是向另一个类展示自己,即使它是父类。我不会说我知道这在 C# 中是如何应用的,但在 C++ 中这是一种非常普遍的做法。有兴趣的可以看看我写的关于CRTP in C++的文章,我也在Habrahabr上找到了一篇关于CRTP in C#使用的小文章。