C#如何将Object类型值转换为int?CS1503报错怎么解决
错误原因
int.Parse() 方法仅支持传入 string 类型参数,你代码中传入的 child.Value 是 object 类型,C# 不支持隐式将 object 转换为 string,因此触发 CS1503 编译错误。
解决方案
你可以根据实际存储的数据类型选择对应处理方式:
- 若确定
child.Value本身存储的就是整型数值,未做字符串序列化,直接强转即可:
DataSnapshot snapshot = task.Result; foreach (DataSnapshot child in snapshot.Children) { if (child.Key == "myAge") { MyAgeInput.value = (int)child.Value; } }
- 若
child.Value存储的是字符串格式的数字,先调用ToString()转为字符串后再解析:
DataSnapshot snapshot = task.Result; foreach (DataSnapshot child in snapshot.Children) { if (child.Key == "myAge") { MyAgeInput.value = int.Parse(child.Value.ToString()); } }
- 若需要兼容数值格式异常的场景,避免程序直接崩溃,使用
int.TryParse做安全校验:
DataSnapshot snapshot = task.Result; foreach (DataSnapshot child in snapshot.Children) { if (child.Key == "myAge") { if (int.TryParse(child.Value.ToString(), out int myAge)) { MyAgeInput.value = myAge; } else { // 格式异常时可在此处赋值默认值或做异常处理 MyAgeInput.value = 0; } } }
内容的提问来源于stack exchange,提问作者harptom
相关产品推荐
相关产品推荐

