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

Różnica w klasach - generyczna z constrainem vs niegeneryczna
  • Rejestracja: dni
  • Ostatnio: dni
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:

Kopiuj
		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ś?

fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
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.

  • Rejestracja: dni
  • Ostatnio: dni
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?

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
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.

  • Rejestracja: dni
  • Ostatnio: dni
0

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.