Wątek przeniesiony 2018-04-13 00:48 z Newbie przez somekind.

Inicjalizacja struktur w C#

0

Cześć

Mam przykładową strukturę:

        struct TestowaStruktura
        {
            public int x;
            public int y;
        }

Chcę przypisać do zmiennych wartości:

            TestowaStruktura ts = new TestowaStruktura
            {
                x = 1,
                y = 5
            };

Z tego co znalazłem w książce to powinno się to dać zrobić też w taki sposób:

TestowaStruktura t2 = {2, 6};

Albo nawet tak:

TestowaStruktura t2 {2, 6};

Dostaję komunikat, że muszę użyć wyrażenia "new".
Gdzie robię błąd?

Cały kod:

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

namespace ConsoleApp1
{
    class Program
    {
        struct TestowaStruktura
        {
            public int x;
            public int y;
        }

        static void Main(string[] args)
        {

            Console.WriteLine("test");
            TestowaStruktura ts = new TestowaStruktura
            {
                x = 1,
                y = 5
            };
            Console.WriteLine(ts.x + " " + ts.y);
            TestowaStruktura t2 = {2, 6};
        }
    }
}
2

Nie słyszałem o takim sposobie inicjalizacji struktur w C#. W taki skrótowy sposób można inicjalizować tablice.

int[] array1 = new int[] { 3, 4 };
int[] array2 = new[] { 3, 4 };
int[] array3 = { 3, 4 };

Może chodziło Ci o C++: https://stackoverflow.com/questions/5666321/what-is-assignment-via-curly-braces-called-and-can-it-be-controlled?
Jeśli chodziło o C#, to możesz podać cytat z książki?

0

Mój błąd, przedstawiona inicjalizacja dotyczyła C++ (pisząc w C# czytałem o struktura z książki do C++).
Czyli w C# można tylko inicjalizować struktury za pomocą wyrażenia 'new'?

1

Struktury w C# to zupełnie inne struktury danych niż te znane z C/C++ i radzę zapoznać się z tymi różnicami w celu jak najszybszego uniknięcia przykrych niespodzianek vide np. stosowanie ich jako zamienników klas.

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