Nota
L'accés a aquesta pàgina requereix autorització. Podeu provar d'iniciar la sessió o de canviar els directoris.
L'accés a aquesta pàgina requereix autorització. Podeu provar de canviar els directoris.
| Propiedad | Valor |
|---|---|
| Identificador de la regla | CA2244 |
| Título | No duplicar inicializaciones de elementos indexados |
| Categoría | Uso |
| La corrección interrumpe o no interrumpe | Sin interrupción |
| Habilitado de forma predeterminada en .NET 10 | Como sugerencia |
| Idiomas aplicables | C# y Visual Basic |
Causa
Un inicializador de objeto tiene más de un inicializador de elemento indexado con el mismo índice de constante. Todo los inicializadores menos el último son redundantes.
Descripción de la regla
Los inicializadores de objeto permiten asignar valores a cualquier campo o propiedad accesible de un objeto en el momento de su creación sin tener que invocar un constructor seguido de líneas de instrucciones de asignación.
Los inicializadores de elemento indexados en los inicializadores de objeto deben inicializar elementos únicos. Un índice duplicado sobrescribirá una inicialización de elemento anterior.
Cómo corregir infracciones
Para corregir las infracciones, quite todos los inicializadores de elemento indexados redundantes que son sobrescritos por cualquiera de los inicializadores de elemento siguientes. Por ejemplo, el siguiente fragmento de código muestra una infracción de la regla y un par de posibles correcciones:
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[1] = 1, // CA2244
[2] = 2,
[1] = 3
};
}
}
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[2] = 2,
[1] = 3
};
}
}
using System.Collections.Generic;
class C
{
public void M()
{
var dictionary = new Dictionary<int, int>
{
[1] = 1,
[2] = 2
};
}
}
Sugerencia
Hay disponible una corrección de código para esta regla en Visual Studio. Para usarlo, coloque el cursor sobre la infracción y presione Ctrl+. (punto). Elija Quitar inicializador de elemento redundante de la lista de opciones que se presenta.
Cuándo suprimir las advertencias
No suprima las infracciones de esta regla.