W szablonach C++ można określić, że określony parametr jest domyślny. To znaczy. chyba że jest to wyraźnie określone, użyje on typu T.Czy istnieje rozsądne podejście do "domyślnych" parametrów typu w C# Generics?
Czy można to zrobić w przybliżeniu w C#?
szukam czegoś podobnego:
public class MyTemplate<T1, T2=string> {}
Tak, że wystąpienie typu, który nie precyzuje T2
:
MyTemplate<int> t = new MyTemplate<int>();
Byłoby zasadniczo:
MyTemplate<int, string> t = new MyTemplate<int, string>();
Ostatecznie szukam przypadku, w którym istnieje szablon, który jest dość szeroko sed, ale rozważam rozszerzenie z dodatkowym parametrem typu. Mógłbym się podklasować, ale byłem ciekawy, czy w tym żyły były inne opcje.
Ach ... to ma sens.Czy nazwa typu może być taka sama, jeśli parametry typu zapewniają unikalny podpis? – el2iot2
@ee: tak, generics są "przeciążane" przez liczbę parametrów. –
@ee: Tak, ale bym się tym obawiał. Jest to "legalne" w .NET, aby to zrobić, ale może prowadzić do zamieszania. Wolałbym, aby nazwa typu pochodnego napisu była podobna do głównej klasy ogólnej (więc jest oczywiste, co to jest/łatwo znaleźć), ale nazwa, która czyni oczywistym, że jest ciągiem znaków. –