Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

331
Visualizações
What does it mean to decorate a class or parameter?

What does it mean to Decorate or add an attribute to a class or parameter?
What's the purpose and when would I do this?

Links to resources and direct answers are welcome.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

When You add decorator in C# it is like adding a property to the class/method. There will be an attribute attached to it.

If You write Unit test You will meet a simple decorator TestMethod like that:

[TestMethod]
public void TestMethod1()
{
}

The framework will use the decorators to check what test methods are in the test set.

You can check on the attribute here

There is another nice to read article about Writing Custom Attributes

Decorators are not limited to the '[ ]' form of decorators. There is also a design pattern for that, that was already mentioned before by others.

over 4 years ago · Santiago Trujillo Relatório

0

Decorator was one of the original 23 patterns described in the Gang of Four "Design Patterns" book. They describe it well here.

Summary:

Decorator : Add additional functionality to a class at runtime where subclassing would result in an exponential rise of new classes

Patterns are language agnostic. They are descriptions of solutions to common problems in object-oriented programming. It's possible, even preferred, to discuss them without reference to a particular language. The examples in the original book were written in C++ and Smalltalk. Neither Java nor C# existed when the book was first published in 1995.

over 4 years ago · Santiago Trujillo Relatório

0

Decorating a class means adding functionality to an existing class. For example, you have a class SingingPerson that has a talent of singing.

public class SingingPerson
{
    public string Talent = "I can sing";
    public string DoTalent()
    {
        return Talent;
    }
}

Later on, you decided that the SingingPerson class should also be able to dance but don't want to alter the existing class structure. What you do is you decorate the SingingPerson class by creating another class which contains the added functionality. This new class that you will be creating takes in a SinginPerson object.

public class SingingAndDancingPerson {
    SingingPerson person;
    public string Talent { get; set; }
    public SingingAndDancingPerson(SingingPerson person)
    {
        this.person = person;
    }

    public string DoTalent()
    {
        this.Talent = person.Talent;
        this.Talent += " and dance";
        return this.Talent;
    }
}

When you try to create instances of these classes the output will be the following:

 SingingPerson person1 = new SingingPerson();
        Console.WriteLine("Person 1: " + person1.DoTalent());
        SingingAndDancingPerson person2 = new SingingAndDancingPerson(person1);
        Console.WriteLine("Person 2: " + person2.DoTalent());
        Console.ReadLine();
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda