parámetro parameter opcional net asp c# compiler-errors .net-3.5 default-parameters

opcional - optional parameter c# int



Error del compilador "Los especificadores de parámetros predeterminados no están permitidos" (2)

A continuación está mi código.

public class PItem { public String content; public int count; public int fee; public int amount; public string description; // Default values public PItem(String _content = "", int _count = 0, int _fee = 0, string _description = "", int _amount = 0) { content = _content; count = _count < 0 ? 0 : _count; fee = _fee; description = _description; amount = _amount < 0 ? 0 : _amount; } }

Esto está dentro de una clase. Cuando intento ejecutar un programa, aparece este error:

Los especificadores de parámetros predeterminados no están permitidos

¿Cómo puedo resolver este error?


El problema es que no puede tener parámetros opcionales en la versión C # inferior a 4.
Puede encontrar más información sobre esto aquí .

Puedes resolverlo así:

public class PItem { public String content; public int count; public int fee; public int amount; public String description; // default values public PItem(): this("", 0, 0, "", 0) {} public PItem(String _content): this (_content, 0, 0, "", 0) {} public PItem(String _content, int _count): this(_content, _count, 0, "", 0) {} public PItem(String _content, int _count, int _fee): this(_content, _count, _fee, "", 0) {} public PItem(String _content, int _count, int _fee, string _description): this(_content, _count, _fee, _description, 0) {} public PItem(String _content, int _count, int _fee, string _description, int _amount) { content = _content; count = _count < 0 ? 0 : _count; fee = _fee; description = _description; amount = _amount < 0 ? 0 : _amount; } }


Si su proyecto parece estar configurado como .NET 4.0, cámbielo a, por ejemplo, 3.5 y luego vuelva a cambiar a 4.0. Obtuve este error cuando incluí un proyecto de biblioteca de clase de mi antigua solución de solución a una nueva cuando quería tener el proyecto en mi nuevo software. Ambas soluciones fueron .NET 4 pero obtuve el error "los especificadores de parámetros predeterminados no están permitidos". Acabo de hacer lo que expliqué.