W jakis sposób zadeklarować w klasie ciąg znaków unikod?

0

vs 2015 community winform, Chodzi mi o deklarację w stylu:

public unsafe string* str;

Już ustawiłem we właściwościach projektu "Allow unsafe code".
Cały czas mi podkreśla string*;
Co z tym zrobić?

edit:
Przepraszam, coś mi się pomieszało. Chciałbym po prostu utworzyć instancję stringa, ale wykorzystując do tego celu char* .

0

Chodzi zapewne o to:

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

class Program
{
    public static void Main(string[] args)
    {
        unsafe
        {
            fixed (char* phrase = "Hello world")
            {
                var str = new string(phrase);
                Console.WriteLine(str);
            }
        }
    }
}
3

Pytanie dlaczego bawisz się unsafe code kiedy masz dostępne gotowe klasy string i char w .Net'cie?

char *phrase jest wskaźnikiem na stałą tekstową, a konkretnie na jej początek. Jak najbardziej.

Absolutnie nie musisz korzystać z rozwiązań, które chcesz tutaj zastosować, no chyba, że masz jakąś bibliotekę, która dostarcza Ci dane właśnie w ten sposób.
Nie korzystaj z unsafe code jeżeli naprawdę, ale to naprawdę nie musisz, ponieważ w C# masz Garbage Collector, który zarządza pamięcią za Ciebie. To nie C/C++ :)

Poza tym .NET koduje stringa domyślnie w UTF-16 więc z definicji każdy string to Unicode. Świadczą o tym choćby widoczne polskie ogonki w programach konsolowych.

0

@furious programming, o co chodzi? Pytam, bo dostałem info na mailu o czymś od ciebie, ale nie widzę nic w postach od ciebie...

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