C#, Unity i porównywanie obiektów w Dictionary.

C#, Unity i porównywanie obiektów w Dictionary.
TA
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam.
Jestem totalnie świeży w świecie programowania i robię pierwszą w życiu apkę w Unity 3d.
Potrzebuję stworzyć Dictionary<string, object> dla dodawania 2 różnych obiektów 2 różnych klas.
Jeśli jest np:
public static class MojeDictionary { public static Dictionary <string, object> listaObiektow = new Dictionary<string, object>(); }
public class a{ }

i

public class b{ }

i potem chcę porównać np:
foreach(var obj in MojeDictionary.listaObiektow){ if(obj.Value.Equals(a)) { //instrukcja... }
Jak tak robię to mi wyskakuje coś w stylu 'Element ,,a" to element ,,typ", który jest nieprawidłowy w podanym kontekście'.
Dodam, że obiekty dodaje się do tego Dictionary z innego skryptu i zapisuje w pliku.
Nie wiem po prostu jak podać instrukcję w if jeśli obiekt jest danego typu. Jeśli by był typu klasy 'b' to chcę zrobić inną instrukcję.
Proszę o wyrozumiałość dla mnie i pomoc.

AdamWox
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Jastrzębie-Zdrój
  • Postów: 2180
0

Wydaje mi się, że masz dwie opcje:

Kopiuj
var type1 = typeof(obj.Value);
var type2 = typeof(a);
var result = type1.Equals(type2);

//ALBO

var type1 = obj.Value.GetType();
var type2 = a.GetType();
var result = type1.Equals(type2);
SZ
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1596
2

Ja bym zrobił zwyczajnie

Kopiuj
if (obj.Value is a)
JU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5046
0
  1. Próbujesz prawdopodobnie zrobić coś dziwnego / złego. Powiedz, co chcesz osiągnąć?
  2. Porównywanie obiektów to nie jest taką oczywistą sprawą, jaką mogło by się wydawać. No bo co chcesz porównać? Adresy tych obiektów? Ich właściwości? Ich typy? A może coś jeszcze innego?
TA
  • Rejestracja: dni
  • Ostatnio: dni
0

Chcę porównać ich typy w sensie to jakiej są klasy.

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.