Inicializador de objeto C#

Resumo : neste tutorial, você aprenderá sobre o inicializador de objeto C# para atribuir valores a quaisquer campos ou propriedades acessíveis do objeto.

Introdução ao inicializador de objeto C#

Um inicializador de objeto permite inicializar campos e propriedades acessíveis de um objeto de uma classe .

Primeiro, defina a Personclasse com três propriedades públicas e dois construtores :

// Person.cs
class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public byte Age { get; set; }

    public Person() 
    {
    }

    public Person(string firstName, string lastName)
    {
        FirstName = firstName;
        LastName = lastName;
    }
}Linguagem de código:  C#  ( cs )

Segundo, crie uma nova instância da Personclasse e atribua valores às propriedades Firstname, LastNamee :Age

// Program.cs

var p1 = new Person();
p1.FirstName = "John";
p1.LastName = "Doe";
p1.Age = 25;Linguagem de código:  C#  ( cs )

E use o segundo construtor para criar e inicializar outro Personobjeto:

// Program.cs

var p1 = new Person();
p1.FirstName = "John";
p1.LastName = "Doe";
p1.Age = 25;


var p2 = new Person("Jane", "Doe");
p2.Age = 22;Linguagem de código:  C#  ( cs )

Em vez de fazer isso, você pode usar um inicializador de objeto para criar uma nova instância da Personclasse e atribuir os valores às propriedades do objeto:

var p1 = new Person
{
    FirstName = "John",
    LastName = "Doe",
    Age = 1
};Linguagem de código:  C#  ( cs )

Além disso, você pode combinar um construtor com um inicializador de objeto. O exemplo a seguir chama o segundo construtor e atribui um valor à Agepropriedade:

var p1 = new Person("John", "Doe") { Age = 1 };Linguagem de código:  C#  ( cs )

Usando inicializadores de objetos com indexadores

C# permite que você use um inicializador de objeto para definir um indexador em um objeto. Considere o seguinte exemplo:

Primeiro, define a Matrixclasse que usa um indexador para obter e definir elementos em uma linha e coluna especificadas:

// Matrix.cs
class Matrix
{
    private double[,] data;
    public Matrix(int row, int column)
    {
        data = new double[row, column];
    }

    public double this[int row, int column]
    {
        get => data[row, column];
        set => data[row, column] = value;
    }
}Linguagem de código:  C#  ( cs )

Segundo, crie uma nova instância da Matrixclasse e use um inicializador de objeto para atribuir elementos:

// Program.cs
var matrix = new Matrix(3, 3)
{
    [0, 0] = 1,
    [0, 1] = 2,
    [0, 2] = 3,
    [1, 0] = 4,
    [1, 1] = 5,
    [1, 2] = 6,
    [2, 0] = 7,
    [2, 1] = 8,
    [2, 2] = 9
};

for (int row = 0; row < 3; row++)
{
    for (int column = 0; column < 3; column++)
    {
        Console.Write($"{matrix[row, column]} ");
    }
    Console.WriteLine();
}Linguagem de código:  C#  ( cs )

Saída:

1 2 3
4 5 6
7 8 9Linguagem de código:  C#  ( cs )

Resumo

  • Um inicializador de objeto para inicializar campos e propriedades acessíveis de um objeto.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *