Q:

Como trocar o modo da qual uma classe/estrutura é impressa?

Tenho a seguinte estrutura:
struct cores
{
    int r, g, b;

    public cores(int r, int g, int b)
    {
        this.r = r;
        this.g = g;
        this.b = b;
    }
}

Caso eu mande imprimir uma nova estrutura, ficaria assim:
Console.WriteLine(new cores(1, 0, 0));
//Saída Program.cores

Mas eu gostaria que a saída fosse:
Console.WriteLine(new cores(1, 0, 0));
//Saída R: 1 - G: 0 - B: 0

Como eu posso fazer isso?
Sei que já existem algumas perguntas parecidas aqui no SO, mas nenhuma especifica ao caso descrito, e quando eu fui procurar por aqui, foi bem difícil encontrar, alem do conteúdo não estar em bom estado para aprendizado.

A:

Algumas considerações fariam esta estrutura ser melhor:
using static System.Console;

public class Program {
    public static void Main() => WriteLine(new Cores(80, 20, 160));
}

struct Cores {
    public byte R { get; }
    public byte G { get; }
    public byte B { get; }
    
    public Cores(byte r, byte g, byte b) {
        R = r;
        G = g;
        B = b;
    }
    public override string ToString() => $"{R}, {G}, {B}";
}

Veja funcionando no ideone. E no .NET Fiddle. Também coloquei no GitHub para referência futura.

Tipos devem usam padrão CamelCase.
Propriedades também.
Estruturas quase sempre devem ser imutáveis, especialmente esta, então os membros não podem ser modificados externamente.
Membros que devem ser expostos a toda aplicação devem ser declarados como public para funcionar sempre e não apenas por coincidência.
ToString() não é um método de apresentação, é de depuração, de conversão simples, ele deve ser facilmente parseáveis, o que eu nem sei se eu já não exagerei.
Para um RGB o tipo subjacente é o byte e não o int, uma economia de 9 bytes, ou 75%.
O resto é estilístico apenas.
Tem outras melhorias para ser um tipo "decente", mas não vem ao caso aqui.

A:

Para fazer isso você pode dar um override no método ToString em sua estrutura:
struct cores
{
    int r, g, b;

    public cores(int r, int g, int b)
    {
        this.r = r;
        this.g = g;
        this.b = b;
    }

    public override string ToString() {
        return $"R: {r} - G: {g} - B: {b}";
    }
}

E escrever normalmente:
Console.WriteLine(new cores(1, 0, 0));
//Saída R: 1 - G: 0 - B: 0

Veja funcionando no Ideone.

