O núcleo confiado é o encapsulamento - isto é, encapsular métodos de negócios em chamadas confiadas
O delegado de ação é um tipo de delegado predefinido em C#, que representa um método que não retorna um valor. Os delegados de ação podem ser usados para encapsular um método e depois passá-lo como um parâmetro para outro método ou atribuí-lo a uma variável delegada para chamar o método quando necessário.
O delegado Action é definido da seguinte forma:
```csharp
public delegate void Action();
public delegate void Action<in T>(T obj);
public delegate void Ação<em T1, em T2>(T1 arg1, T2 arg2);
// ...
```
Exemplo de uso do delegado de ação:
```csharp
// Define um método sem parâmetros
public void SayHello()
{ Console.WriteLine("Hello!"); }
// Defina um método com um parâmetro
public void SayName(string name)
{ Console.WriteLine("Meu nome é " + nome); }
// Encapsula o método em um delegado Action
Action helloAction = new Action(SayHello);
Action<string> nameAction = new Action<string>(SayName);
// Chame o delegado Action
helloAction(); // Output: Hello!
nameAction("Tom"); // Output: My name is Tom
```
No exemplo acima, primeiro definimos dois métodos SayHello e SayName e, em seguida, os encapsulamos em Action delegate helloAction e nameAction. Por fim, executamos esses dois métodos chamando helloAction e nameAction.
Deve-se observar que o número e os tipos de parâmetros do delegado Action são fixos. Se você precisar passar vários parâmetros, pode usar o delegado Action<T1, T2, ...>, onde T1, T2, etc. representam os tipos de parâmetros.