我正在尝试使用StreamReader从.txt中读取变量。它告诉我不能将字符串转换为ushort。我还需要为自定义类做这件事。
ushort noPhoto;
noPhoto= vectChamps[3].Trim();
PositionHockey lol;
lol = vectChamps[4].Trim();
答案 0 :(得分:1)
使用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());
答案 1 :(得分:0)
您需要将字符串解析为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是一个Enum,你可以做这样的事情
PostionHockey lol= (PostionHockey) Enum.Parse(typeof(PostionHockey ), vectChamps[4].Trim());
来源:http://msdn.microsoft.com/en-us/library/system.enum.parse(v=vs.110).aspx