```cs public struct Color { // Alpha channel public byte A; // Creates a color from byte components. Alpha defaults to 255 public Color(byte red, byte green, byte blue, byte alpha = 255); // Packed 32-bit ARGB value public uint ARGB; // Blue channel public byte B; // Returns true if two colors differ public static bool operator !=(Color a, Color b); // Creates a color from another color with a alpha value Source color New alpha channel (0–1) public Color(Color other, float alpha); // Creates a color from a packed ABGR value Packed 32-bit ABGR value public Color(uint abgr); public override bool Equals(object obj); // Green channel public byte G; public override int GetHashCode(); // Linearly interpolates between two colors Start color End color Interpolation factor (0.0 – 1.0) public static Color Interpolate(Color A, Color B, double pos); // Returns true if two colors have identical values public static bool operator ==(Color a, Color b); // Red channel public byte R; public override string ToString(); // Packed 32-bit ABGR value public uint Value; // Returns a copy of this color with the specified normalized alpha New alpha channel (0.0 – 1.0) public Color WithAlpha(float alpha); } ```