Interfejsy w c#

T1
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:3
0

Cześć,
jestem tu nowy i z góry przepraszam jeśli dodałem wątek w złym miejscu.
Mam problem ze zrobieniem studenckiego zadania, kompletnie nie rozumiem interfejsów :/
Przede wszystkim chodzi o zadanie 4

Zadanie poniżej:
screenshot-20200120211038.png

A tutaj to co udało mi się samemu napisać: TU
Nie mam pojęcia czy to jest dobrze czy źle, mimo wszystko mam wielką prośbę, aby ktoś z Was nakierował mnie jak to mniej więcej powinno wyglądać.
Z góry dziękuję!

edytowany 2x, ostatnio: tomek1260
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:5 minut
  • Postów:5143
1

brak konstruktora

return 0?

override niespełniający założeń

Możesz sobie uprościć kod stosując tzw. Expression Bodied Members

Zamiast:

Kopiuj
public int Obwod { 
	get {
		obwod_kwadrat = 4 * dl_boku_kwadrat;
		 return 0;
	} }


public int Pole {
	get {
		pole_kwadrat = dl_boku_kwadrat * dl_boku_kwadrat;
		return 0;
	}}

to:

Kopiuj
public int Obwod => dlugosc_boku * 4;
public int Pole => dlugosc_boku * dlugosc_boku;
edytowany 4x, ostatnio: WeiXiao
somekind
uprościć i zagmatwać to nie są synonimy.
WeiXiao
@somekind: nie uważasz, że pozbycie się return 0;, które wielu osobom sprawiłoby WTF? jest uproszczeniem?
somekind
Nie, to usunięcie WTFa, a nie uproszczenie.
T1
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:3
0
Kopiuj
using System;

namespace Soft
{
    class Program
    {
        static void Main(string[] args)
        {
            Kwadrat kw = new Kwadrat(5);
            Console.WriteLine(kw.ToString());
            Console.ReadKey();
        }
    }

    public interface IFigura
    {
        int Obwod { get; }
        int Pole { get; }
    }

    public class Kwadrat : IFigura
    {
        private int dl_boku_kwadrat;

        public Kwadrat(int dl_boku_kwadrat)
        {
            this.dl_boku_kwadrat = dl_boku_kwadrat;
        }

        public int Obwod => dl_boku_kwadrat * 4;
        public int Pole => dl_boku_kwadrat * dl_boku_kwadrat;

        public override string ToString()
        {
            return "Kwadrat: " + dl_boku_kwadrat.ToString();
        }
    }

}
WeiXiao
wygląda ok, ale brakuje #3.
T1
  • Rejestracja:ponad 5 lat
  • Ostatnio:około 4 lata
  • Postów:3
0

Wielkie dzięki za pomoc! Już wszystko wiem :)

Grzegorz Kotfis
Kurcze szybko się uczysz ;) 21:17 - "kompletnie nie rozumiem interfejsów", 23:14 - "Już wszystko wiem"
Aryman1983
Aryman1983
@Grzegorz Kotfis: jutro dwie godzinki i delegaty zaliczone :-)
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 10 godzin
  • Lokalizacja:Wrocław
5

Niewątpliwie w programowaniu bardzo istotne są opisowe nazwy zmiennych, a nadmierna oszczędność jest często słusznie krytykowana. Np. rznzsn_dupa to bardzo zła nazwa na określenie rocznego zysku netto ze sprzedaży nieopodatkowanej w dzielnicowym urzędzie przesyłek awizowanych. Po kilku tygodniach już nikt nie będzie pamiętał, co ta nazwa oznaczała, przypadkiem umieści tam co innego i stanie się coś złego.

Ale bok kwadratu w klasie Kwadrat to naprawdę może być a, a nie jakaś epopeja trzynastozgłoskowcem.

edytowany 1x, ostatnio: somekind

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.