我想这样做:
public int Insert(object o, string[] ignore = new string[] {"Id"})
Run Code Online (Sandbox Code Playgroud)
但它告诉我,我不能这样做?为什么会这样 ?
问题是默认参数必须是常量.在这里,您将动态分配一个数组.与声明const变量一样,对于引用类型,仅支持字符串文字和空值.
您可以使用以下模式实现此目的
public int Insert(object o, string[] ignore = null)
{
if (ignore == null) ignore = new string[] { "Id" };
...
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,当调用者在调用站点排除参数时,编译器将传递null您可以根据需要处理的值.注意jsut保持简单我已经修改了函数中参数的值,通常不被认为是好的做法,但我相信在这种情况下这可能没问题.
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |