ja jak stworzenie sposobu w bazie generycznej klasy powrotu wyspecjalizowany zbiór obiektów pochodnych oraz wykonywania pewnych operacji na tych, podobnie jak w poniższym przykładzie:ciekawe cykliczne ograniczenia Szablon wzór i leki generyczne (C#)
using System;
using System.Collections.Generic;
namespace test {
class Base<T> {
public static List<T> DoSomething() {
List<T> objects = new List<T>();
// fill the list somehow...
foreach (T t in objects) {
if (t.DoSomeTest()) { // error !!!
// ...
}
}
return objects;
}
public virtual bool DoSomeTest() {
return true;
}
}
class Derived : Base<Derived> {
public override bool DoSomeTest() {
// return a random bool value
return (0 == new Random().Next() % 2);
}
}
class Program {
static void Main(string[] args) {
List<Derived> list = Derived.DoSomething();
}
}
}
Moim problemem jest to, że do czegoś takiego bym należy określić ograniczenia jak
class Base<T> where T : Base {
}
to możliwe, aby określić ograniczenia takiego jakoś?
Właśnie stworzyłem tę sugestię uservoice, aby zapewnić lepszą obsługę języków dla tego kodu, nie krępuj się głosować! https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/32188474-support-this-as-a-return-type-to-make-building-f –