zadanie Enum

0

Chodzi o podpunkt b)

Jak mam to stworzyć, proszę o pomoc. Próbowałem na różne sposoby, ale zawsze jakiś błąd się pokazuje - zadanie w załączniku

Mój kod:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Kolokwium___zadanie_5
{

    enum typTrasy
    {
         typTrasy1, typTrasy2, typTrasy3
    }
    class Program
    {
        static void Main(string[] args)
        {
            Samochód samochód1 = Samochód.Create();
            Samochód samochód2 = Samochód.Create();

            samochód1.pojemnośćSilnika = 1229;
            samochód1.nrVIN = "VF77J9HL0CJ573041";
            samochód1.rocznik = 2004;
            samochód1.nazwa = "OPEL Corsa E";
            samochód1.średnieSpalanie = 6.6f;

            samochód2.pojemnośćSilnika = 1200;
            samochód2.nrVIN = "W0L0AHL35C2009924";
            samochód2.rocznik = 2009;
            samochód2.nazwa = "OPEL Corsa D";
            samochód2.średnieSpalanie = 6.1f;

            Console.WriteLine("Samochód 1\n");
            Console.WriteLine("Pojemność silnika: " + samochód1.pojemnośćSilnika);
            Console.WriteLine("Numer VIN: " + samochód1.nrVIN);
            Console.WriteLine("Rocznik: " + samochód1.rocznik);
            Console.WriteLine("Nazwa: " + samochód1.nazwa);
            Console.WriteLine("Średnie spalanie: " + samochód1.średnieSpalanie);

            Console.WriteLine("\nSamochód 2\n");
            Console.WriteLine("Pojemność silnika: " + samochód2.pojemnośćSilnika);
            Console.WriteLine("Numer VIN: " + samochód2.nrVIN);
            Console.WriteLine("Rocznik: " + samochód2.rocznik);
            Console.WriteLine("Nazwa: " + samochód2.nazwa);
            Console.WriteLine("Średnie spalanie: " + samochód2.średnieSpalanie);

            Console.WriteLine(samochód1.ObliczSpalanie(5));

            Console.ReadKey();
        }
    }
    class Samochód
    {
        private Samochód()
        {

        }

        public float pojemnośćSilnika;
        public string nrVIN;
        public int rocznik;
        public string nazwa;
        public float średnieSpalanie;

        public static Samochód Create()
        {
            return new Samochód();
        }

        public float ObliczSpalanie(float długośćTrasy)
        {
            float wynik = średnieSpalanie * długośćTrasy;
            return wynik;

        }

    }
}
0

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA jaki błąd i linijka. Juz zbieramy rade dla twojego kolokwium.

To chyba zadanie na dopisanie to polecam ogłoszenia.

0

A z czym problem?
Z przypisaniem do enuma wartości 0.8, 1 i 1.3?

Bezpośrednio nie da się tego zrobić, enum musi być typu int albo long.
Ale możesz to obejść inaczej, np.:

  1. Dodać jakiś atrybut do enuma i później jak masz wartość enuma to możesz wartość tego atrybutu odczytać (wymaga użycia refleksji)
  2. Stworzyć gdzieś słownik Dictionary<typTrasy, double>, który będzie mapował typ trasy na wartość.
2
some_ONE napisał(a):

Bezpośrednio nie da się tego zrobić, enum musi być typu int albo long.

Możliwości jest tak ze 4 razy więcej. ;)

Ale możesz to obejść inaczej, np.:

  1. Dodać jakiś atrybut do enuma i później jak masz wartość enuma to możesz wartość tego atrybutu odczytać (wymaga użycia refleksji)
  2. Stworzyć gdzieś słownik Dictionary<typTrasy, double>, który będzie mapował typ trasy na wartość.

Nie jestem pewien, czy może, to raczej nie ten poziom.
Poza tym, to dziwnie ekstrawaganckie pomysły. Wystarczy w zupełności:

enum typTrasy
{
    typTrasy1 = 8,
    typTrasy2 = 10,
    typTrasy3 = 13,
}

i podzielić przez 10 przy wyliczaniu.

0

Juz wszystko jasne

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0