2017-01-13 3 views
0

Ich kann nicht herausfinden, wie dies zu tun ist. Ich habe einen kleinen Codeabschnitt in c++ und ich muss das gleiche in C# haben. Hier ist der c++ Code:Konvertieren C++ - Struktur von Byte-Arrays in C#

struct Texel { unsigned char r, g, b, a; }; 
Texel mytexturedata[] = 
{ 
    {0x00, 0xFF, 0x00, 0xFF}, // green 
    {0xFF, 0xFF, 0x00, 0xFF}, // yellow 
    {0xFF, 0x00, 0x00, 0xFF}, // red 
}; 

Wie tun Sie dies c# ist?

Danke!

+0

'Texel [] = {mytexturedata neue Texel() {R = 0x00, G = 0xFF, b = 0x00, a = 0xFF}, ..};' mit dem Wechsel der Klasse 'Texel {r Byte {get; set;} Byte g {get; set;} Byte b {get; set;} Byte a {get; set;}} '. BTW, "unsigned char" entspricht "Byte" in C#, "char" ist 16-Bit breit (UTF-16). –

+0

Ich denke, dieses Byte ist ein besserer Typ als unsigned char in C#. . . –

Antwort

3

Konvertieren Sie Ihre Struktur in eine Klasse.

public class Texel 
{ 
    public byte r { get; set; } 
    public byte g { get; set; } 
    public byte b { get; set; } 
    public byte a { get; set; } 
} 

Dann können Sie Ihre Aufgabe so tun.

Texel[] mytexturedata = 
{ 
    new Texel() { r = 0x00, g = 0xFF, b = 0x00, a = 0xFF }, // Green 
    new Texel() { r = 0xFF, g = 0xFF, b = 0x00, a = 0xFF }, // Yellow 
    new Texel() { r = 0xFF, g = 0x00, b = 0x00, a = 0xFF } // Red 
}; 
+0

Danke eine Million! – Tom