2
我已经创建了ParseObject的子类。我有一个List类型的属性。当我尝试使用属性获取值时,我得到一个null;如果我使用属性名称作为索引访问该值,我会得到预期值,即字符串列表。作为属性访问子类中的值与列表<>
我期望这些技术是等同的,并且通过属性访问更加可取,因为它不会让您显示拼写错误。任何人都可以帮助我理解(a)他们为什么不相同,以及(b)我如何通过财产成功获取价值?
例子:
[ParseClassName("MyThing")]
public class MyThing : ParseObject
{
[ParseFieldName("Name")]
public string Name
{
get { return GetProperty<string>("Name"); }
set { SetProperty<string>(value, "Name"); }
}
[ParseFieldName("Notes")]
public List<string> Notes
{
get { return GetProperty< List<string> >("Notes"); }
set { SetProperty< List<string> >(value, "Notes"); }
}
}
elsewhere...
var name = aThing.Name; // I get the expected name
var asProp = aThing.Notes; // I get *null*
var asIndex = aThing["Notes"]; // I get an array of strings
如果将其更改为“GetProperty”,会发生什么情况? –
Rob
我不明白。只要改变getter就会返回一个与属性类型不兼容的类型。你的意思是把整个事情改成string []? – jrl
是的,基本上。作为一种健康检查。我没有使用'parse'库,但我认为它对于它的集合是严格的。虽然它认为该属性是一个数组,但您已经要求提供一个列表。如果数组* *工作,那么要么将逻辑放入属性中以转换为数组和列表 - 否则您只需继续使用数组而不是列表。 – Rob