我有以下内容:
namespace Test {
public class Location {
public string city { get; set; }
}
public class BaseViewModel {
public BaseViewModel() {
Location = new Location { city = "Paris"; };
}
public Location Location { get; set; }
}
public class EditViewModel : BaseViewModel {
public Book Book { get; set; }
Location = "France";
}
}
这似乎是一个奇怪的要求,但我如何在EditViewModel中设置Location的值?下面的行给出以下错误:
Location = "France";
Error 2 Invalid token '=' in class, struct, or interface member declaration
答案 0 :(得分:1)
添加构造函数。
public EditViewModel () {
Location = "France";
}
或更好地添加专门的构造函数和默认构造函数:
public EditViewModel (string LocationText) {
Location = LocationText;
}
public EditViewModel() : this("France") { }
准确地说,不要使用字符串,使用你的Object,我用字符串来加速。
答案 1 :(得分:0)
您需要实例化对象Location,而不是将其设置为字符串:
Location = new Location { city = "France" };
并且如果使用其他名称重命名该属性,最好不要使用类名。
public class BaseViewModel {
public BaseViewModel() {
CurrentLocation = new Location { city = "Paris"; };
}
public Location CurrentLocation { get; set; }
}
public class EditViewModel : BaseViewModel {
public Book Book { get; set; }
public EditViewModel() : base()
{
CurrentLocation = new Location { city = "France"; };
}
}
答案 2 :(得分:0)
您只需要更改EditViewModel类..
像这样:
public class EditViewModel : BaseViewModel {
public Book Book { get; set; }
public EditViewModel(){
Location = "France";
}
}
*您试图将值设置为类范围内的基类属性。这是不允许的。
您可以在构造函数中对类中的任何其他方法执行此操作。如上所述..
希望这有帮助!