Implementacja klasy jako immutable

0

Witam

Mam do napisania taki kod na studiach lecz dopiero zaczynam przygodę z c# bardzo proszę o pomoc.

Zaimplementuj klasę Pizza jako immutable. Uwzględnij takie właściwości jak:

ilość pomidorów
ilość sera
rozmiar pizzy (średnica)
rodzaj ciasta (cienkie, średnie i grube) - jako ENUM
Dodaj metody typpu setter, które zmieniają stan poprzez tworzenie nowych obiektów.

Stwórz kilka obiektów klasy Pizza i spróbuj zmienić ich stan.

0

Cool, z czym Masz problem?

0

Przede wszystkim pokaż co do tej pory napisałeś.

0

Problem w tym, że nie wiem jak się za to zabrać w związku z tymi zajęciami online nie wiele można było się nauczyć, a spotkało mnie takie zadanie

0
Kamilmis napisał(a):

Problem w tym, że nie wiem jak się za to zabrać w związku z tymi zajęciami online nie wiele można było się nauczyć, a spotkało mnie takie zadanie

Taaaak, i policja odcięła internet.
Pierwsza strona kwerendy w google (pytanie w języku polskim o immutable) zwraca bardzo ciekawe artykuły.

Studia z góry zakładają aktywność własną, to znaczy czasownik "studiować".

0

Tragedią jest to, że prosisz o podstawy podstaw. Przecież tworzenie takiej klasy jest w każdej książce o programowaniu c# na początku rozdziału o klasach. Wariant może być tylko inny np. klasa książki, samochody lub osoby, ale koncepcja ciągle jest ta sama i trzeba doczytać co znaczy Immutable. Mam nadzieję, że nie studiujesz informatyki lub pokrewnego kierunku.

0

Zabawne jest to, że nie możecie pomóc chłopakowi w potrzebie, tylko spuszczacie się nad sobą mówiąc jaką tragedią jest to, że nie rozumie podstaw.
Sam pracuje w IT, projektuje sieci, ale programowania kompletnie nie rozumiem, bo to nie moja działka. Wy zamiast pomóc, pokazać jak zacząć (jak przystało na lepszego w danym fachu) wręcz demotywujecie do dalszego działania. Wstyd za takich ludzi w IT, nic tylko pluć na was.

1

@Kamilmis: napisz klasę, a my Ci powiemy, czy jest ona immutable czy nie.
Jeśli nie wiesz jak napisać klasę, to spróbuj się dowiedzieć np. tutaj: https://pl.wikibooks.org/wiki/C_Sharp/Klasa

0

"Zaimplementuj klasę Pizza jako immutable. Uwzględnij takie właściwości jak:"
"Stwórz kilka obiektów klasy Pizza i spróbuj zmienić ich stan."

Co? Ale po co zmieniać ich stan?

0

Przykładem takiego typu jest np. Klasa String albo struktura Decimal jak i wszystkie typy podstawowe takie jak int, long, bool, double. Nie zmieniamy obiektu , tylko za każdym razem tworzymy nowy

using System;
namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            Decimal varDec1 = 10M;
            varDec1 = 20M;
        }
    }
}

Jak widać poniżej . Każde przypisanie to utworzenie nowej struktury .
Nowa struktura może znajdować się pod tym samym adresem pamięci ale to już nie jest ta sama struktura.

.method private hidebysig static void  Main(string[] args) cil managed
{
  .entrypoint
  // Code size       20 (0x14)
  .maxstack  2
  .locals init ([0] valuetype [mscorlib]System.Decimal varDec1)
  IL_0000:  nop
  IL_0001:  ldloca.s   varDec1
  IL_0003:  ldc.i4.s   10
  IL_0005:  call       instance void [mscorlib]System.Decimal::.ctor(int32)
  IL_000a:  ldloca.s   varDec1
  IL_000c:  ldc.i4.s   20
  IL_000e:  call       instance void [mscorlib]System.Decimal::.ctor(int32)
  IL_0013:  ret
}

albo typ podstawowy String

using System;
namespace ConsoleApp27
{
    class Program
    {
        static void Main(string[] args)
        {
            String str1 = "jakiś tekst1";
            String temp = str1;
            str1 = "jakiś tekst2";
            Console.WriteLine(Object.ReferenceEquals(str1, temp));
        }
    }
}

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