Rzutowanie własnej klasy na int, jak zrobić żeby działało?

Rzutowanie własnej klasy na int, jak zrobić żeby działało?
PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
0

Co zrobić żeby rzutowanie działało?

Kopiuj
    class Kolejka
        private Element pierwszyElement;
        private Element ostatniElement;
        private int liczbaElementow = 0;

    class Element
        private object wartosc;
        private Element nastepnyElement;

---------------------------------------------------
   class Program 
//kod testujący
   Kolejka k = new Kolejka();
   k.Dodaj(1);
   int element = (int)k; error


somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

A jaki Twoim zdaniem powinien być wynik takiej operacji? Jak całą kolejkę chcesz zamienić na jedną tylko liczbę?

PP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 20
0

Ma sie odnosić do wartosci

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
0
PlotrekPL napisał(a):

Co zrobić żeby rzutowanie działało?

Na pewno myślisz o rzutowaniu? Może o jakiejś metodzie do pobierania?

Kopiuj
int c = k.GetLast();

albo (kawa na ławę, skoro to kolejka)

Kopiuj
int c = k.GetNext();
Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7103
1

Użyj musisz zdefiniować explicit operator ;)
https://stackoverflow.com/a/1407807/1639851

Aventus
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: UK
  • Postów: 2235
1

Czy wartość musi być typu object? Bo jeśli nie to użyj generyków. Tutaj jest pokazane praktycznie to co Ty próbujesz zrobić: https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
1
PlotrekPL napisał(a):

Ma sie odnosić do wartosci

Ale jakiej wartości? Kolejka nie ma wartości, to element ma wartość.

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.