问题
Below is my code.
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;
}
}
This is inside in a class. When I try to run a program it gives this error:
Default parameter specifiers are not permitted
How can I solve this error?
回答1:
The problem is that you cannot have optional parameters in C# version less than 4.
You can find more information on this here.
You can solve it like this:
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;
}
}
回答2:
If your project seems to be set as .NET 4.0 then change it to for example 3.5 and then change to the 4.0 again. I got this error when I included a class library project from my old solution solution to a new one when I wanted to have the project in my new software. Both solutions were .NET 4 but I got "default parameter specifiers are not permitted" error. I just did what I explained.
来源:https://stackoverflow.com/questions/6398382/compiler-error-default-parameter-specifiers-are-not-permitted