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 Person
classe 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 Person
classe e atribua valores às propriedades Firstname
, LastName
e :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 Person
objeto:
// 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 Person
classe 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 à Age
propriedade:
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 Matrix
classe 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 Matrix
classe 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 9
Linguagem de código: C# ( cs )
Resumo
- Um inicializador de objeto para inicializar campos e propriedades acessíveis de um objeto.