logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

C# Przekształcenie programu z nieobiektowego na obiektowy

Spellejk 20 Mar 2020 20:29 336 5
REKLAMA
  • #1 18546026
    Spellejk
    Poziom 5  
    Posty: 16
    Ocena: 14
    Witam. Generalnie C# to nie mój język, który mi się podoba i mam problemy.

    Mam taki kod i niby jest napisany nie obiektowo.
    Kod: C#
    Zaloguj się, aby zobaczyć kod


    I muszę zrobić z niego w pełni obiektowy.

    Ktoś powie jakie są różnice między obiektowym a nie obiektowym c#
  • REKLAMA
  • Pomocny post
    #2 18546250
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1460
    Sądzę że chodziło, aby statyczne funkcje przekształcić na normalne metody

    zmienić np

    Kod: C#
    Zaloguj się, aby zobaczyć kod


    na

    Kod: C#
    Zaloguj się, aby zobaczyć kod


    Trzeba by też zastąpić Utworz kontruktorem
  • REKLAMA
  • #3 18547610
    Spellejk
    Poziom 5  
    Posty: 16
    Ocena: 14
    Właśnie o to mi chodziło dam już sobie z tym radę. Tylko pytanie czy dalej TWOIM OKIEM wszystko jest ok? tzn powinno byc obiektowe.
  • REKLAMA
  • Pomocny post
    #4 18547878
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1460
    Spellejk napisał:
    Właśnie o to mi chodziło dam już sobie z tym radę. Tylko pytanie czy dalej TWOIM OKIEM wszystko jest ok? tzn powinno byc obiektowe.


    1. To nie jest jakiś ambitny projekt, i wiele technik OOP nie ma tu zastosowania.
    2. Nie widzę Twojego kodu po zmianach.
    Z głowy zapytam: a zmiennym wewnątrz klasy obniżyłeś zakres dostępu z public na bardziej zamknięty?
    3. Nie mam pojęcia co/jak jakiś nauczyciel myśli nt OOP
  • REKLAMA
  • #5 18548108
    Spellejk
    Poziom 5  
    Posty: 16
    Ocena: 14
    Rozumiem Ciebie. I zdaje sobie sprawę, że to proste zadanie. Głównie chodziło mi o to jak wygląda program obiektowo a jak nie obiektowo. Chodziło o różnice. Po zastosowaniu tego co powiedziałeś kod wygląda tak:

    Kod: C#
    Zaloguj się, aby zobaczyć kod

    Co do konstruktora, żeby zastąpić funkcje Utworz. To mam poźniej problem z funkcją "Wyczysc".

    konstruktor:
    Kod: C#
    Zaloguj się, aby zobaczyć kod


    Nie wiem jak zastąpić to:
    Kod: C#
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    #6 18549256
    LED5W
    Poziom 34  
    Posty: 2302
    Pomógł: 264
    Ocena: 162
    Przy usuwaniu elementu z kolejki nie usuwasz go z tablicy przez co niepotrzebnie zajmuje pamięć. Możesz wstawić null by ją zwolnić.

    W C# w celu dostępu do wartości można stosować właściwości. Np. tutaj
    Kod: C#
    Zaloguj się, aby zobaczyć kod


    Pola (fields) nie powinny być w tym przypadku publiczne.

    Ostatniego kodu nie musisz zastępować. Wystarczy wywołać Utworz z konstruktora. Wtedy ta metoda też powinna być niepubliczna i wypadałoby zmienić jej nazwę. Alternatywnie można skopiować reset indeksów i wyczyścić tablicę używając Array.Clear. Dzięki temu na pewno nie będzie problemu z alokacją nowej tablicy.
REKLAMA