datatype: "json",
loadonce: true,
forceClientSorting: true // force local sorting and filtering
search: true, // to apply the filter from postData.filters
postData: {
// the filters property is the filter, which need be applied
// to the data loaded from the server
filters: JSON.stringify({
groupOp: "OR",
rules: [
{ field: "shared_by", op: "eq", data: " " },
{ field: "shared_by", op: "eq", data: login_user_id }
]
})
},
...
如何覆盖抽象PropertyA?
答案 0 :(得分:1)
您正在尝试使用字段覆盖属性
属性通过get
和set
值访问器提供对字段的访问。请阅读this,以更好地理解它们之间的区别。因此,由于它们不相同,因此您的IDE建议您使用new
-关键字隐藏父属性。
如果您想知道为什么
new
关键字在您的情况下不起作用,请阅读this。
在您的问题中,似乎您的代码中的PropertyA
需要在继承的类上设置,但是不能从外部进行更改。所以也许这样做:
public abstract class SampleA
{
// no setter -> cant be changed after initialization
public abstract string PropertyA { get; }
// protected setter -> can only be changed from inside SampleA or Sample
public abstract string PropertyB { get; protected set; }
}
public class Sample : SampleA
{
public override string PropertyA { get; } = "override";
public override string PropertyB { get; protected set; } = "override";
}
这样做:
public class Sample : SampleA
{
public override string PropertyA { get; set; } = "override";
}
甚至以更多的行为实现它:
public class Sample : SampleA
{
private string _propertyA = "override";
public override string PropertyA
{
get { return _propertyA; }
set
{
// Maybe do some checks here
_propertyA = value;
}
}
}
答案 1 :(得分:0)
覆盖属性时,应同时写get
和set
。在您的情况下,您将创建具有相同名称但具有另一个签名的新属性。