我在尝试编译通过svcutil生成的代理类时遇到了上述错误。这是问题的简短版本:
class A
{
private string colorField;
private string set_colorField;
public string color
{
get
{
return this.colorField;
}
set
{
this.colorField = value;
}
}
public string set_color
{
get
{
return this.set_colorField;
}
set
{
this.set_colorField = value;
}
}
}
编译好:
public string Color
{
get;set;
}
public string Set_Color
{
get;set;
}
但这引发了同样的错误:
public string color
{
get;set;
}
public string set_color
{
get;set;
}
我不记得曾经读过这个限制。有人能指出我对C#编译规范的相关部分吗?
答案 0 :(得分:10)
https://github.com/dotnet/csharplang/blob/master/spec/classes.md#properties
为媒体资源保留的会员名称
对于类型T的属性P(属性),以下签名是 保留:
T get_P();
void set_P(T value);
如果您拥有color
属性,则保留set_color(...)
,这也是您无法拥有set_color
属性的原因,因为它尝试编译同一个签名。
如果您拥有Color
属性,则为set_Color(...)
保留Set_Color
,这就是row1 <- c(1,1,1,0,0,0, NA, NA)
row2 <- c(1,1,1,0,0,0, NA, NA)
test <- t(data.frame(row1, row2))
for (j in 1:length(test)) {
binary <- test[, j]
if (binary[1] == 1 &
binary[2] == 1) {
print("A")
}
else if (binary[1] == 1 &
binary[2] == 0) {
print("B")
}
else (is.na(binary[1]) |
is.na(binary[2])) {
print("NA")
}
}
(请注意大写字母)有效的原因。