我想从StreamReader读取.txt中的变量。它告诉我不能将字符串转换为ushort。我也需要为自定义类做这件事。将字符串转换为其他类型(自定义)从一个向量
ushort noPhoto;
noPhoto= vectChamps[3].Trim();
PositionHockey lol;
lol = vectChamps[4].Trim();
我想从StreamReader读取.txt中的变量。它告诉我不能将字符串转换为ushort。我也需要为自定义类做这件事。将字符串转换为其他类型(自定义)从一个向量
ushort noPhoto;
noPhoto= vectChamps[3].Trim();
PositionHockey lol;
lol = vectChamps[4].Trim();
使用ushort.Parse()
,使其工作:
ushort noPhoto;
noPhoto = ushort.Parse(vectChamps[3].Trim());
但要PositionHockey
必须声明的方式来转换string
到PositionHockey
实例。作为PositionHockey
类(如Parse
)或conversion operator中的静态方法。
更新
对于enum
您可以使用下列内容:
PositionHockey lol;
lol = (PositionHockey)int.Parse(vectChamps[4].Trim());
如果你的字符串包含字符串的数值。如果它的字符串表示,使用Enum.Parse
PositionHockey lol;
lol = (PositionHockey)Enum.Parse(typeof(PositionHockey),vectChamps[4].Trim());
另一种类型呢? – user2180198
PositionHockey是一个枚举,我真的可以在其中创建一个方法吗? – user2180198
@ user2180198'enum'的情况有点不同。我已经更新了我的答案。 – MarcinJuraszek
您需要将字符串解析成一个USHORT,像这样:
ushort number = UInt16.Parse(vectChamps[3].Trim());
更多信息这里:http://msdn.microsoft.com/en-us/library/c9373sf3(v=vs.110).aspx
对于其他类型,你可以将字符串添加到对象构造函数中,如
PositionHockey lol = new PositionHockey(vectChamps[4].Trim());
或直接设置specfic场:
lol.Value = vectChamps[4].Trim();
我现在看到PostionHockey是一个枚举,你可以做这样的事情
PostionHockey lol= (PostionHockey) Enum.Parse(typeof(PostionHockey), vectChamps[4].Trim());
来源:http://msdn.microsoft.com/en-us/library/system.enum.parse(v=vs.110).aspx
'UInt16.TryParse'? – Cynede