Różnica w klasach - generyczna z constrainem vs niegeneryczna

0

Cześć,
zacząłem się zastanawiać czy tak naprawdę w praktyce jest jakaś różnica (z poziomu C#, nie mówię o tym że wygenerowany kod IL może być inny) między klasami
Generic i NonGeneric z niniejszego kodu:

		class RandomType {}

		class Generic<T> where T : RandomType
		{
			T _field;

			public Generic(T field)
			{
				_field = field;
			}
		}

		class NonGeneric
		{
			RandomType _field;

			public NonGeneric(RandomType field)
			{
				_field = field;
			}
		}

Jedyne co przychodzi mi do głowy to że mogą występować jakieś różnice gdy w grę wchodzi dziedziczenie po RandomType ale szczerze nie mogę wyobrazić sobie sytuacji gdzie miałoby to znaczenie. Ktoś coś?

0

jakieś różnice gdy w grę wchodzi dziedziczenie po RandomType
jezeli napiszesz kolejna klase ktora dziedzyczy po RandomType wtedy nie musisz pisac funkcji jeszcze raz, w innym przypadku bedziesz musial pisac funkcje dla kazdego nie generycznego rozwiazania.

0

Wybacz ale nie do końca Cię chyba rozumiem. Jeśli stworze coś co dziedziczy po tym RandomType to której funkcji (mogę liczyć na jakiś przykład ? :) nie będę musiał pisać jeszcze raz?

0

W klasie NonGeneric będziesz mógł wywołać na _field tylko te metody, które są zdefiniowane w RandomType. W wersji generycznej będziesz mógł wywołać każdą metodę z użytego typu.

0

Ok, po chwili odpoczynku i przeczytaniu teraz Waszych odpowiedzi aż mi głupio że o to pytałem...
Dzięki ;d

1 użytkowników online, w tym zalogowanych: 0, gości: 1