Was willst du im C# mit diesem Record machen?
Wenn nur lesen, dann kann String als PChar angesehen werden (also char* und vielleicht auch char[] bis 2007 und wchar ab Delphi 2009)
Überschreiben einzelner Chars ginge zwar auch, aber nur
sicher, wenn vorher
UniqueString,
und die länge Ändern bedingt einen Zugriff auf den Delphi-Speichermanager, also grundsätzlich somit erstmal NEIN, für Schreibzugriffe.
Warum benutzt du denn keinen WideString?
Das ist eine Kapselung des BSTR vom C++, also von
SysAllocString und seinen Freunden, welches auch C# verstehen sollte.