我试图将一个类从C ++转换为C#,并且在Binary Right Shift Operator'>>'中遇到了两个错误。
这是转换为C#的原始C ++代码(不进行编辑):
public static void ReadSeatPrices()
{
ifstream fin = new ifstream();
fin.open("SeatPrices.txt");
int i = 0;
while (fin != null)
{
fin >> seatprices[i];
i++;
}
fin.close();
}
在Visual Studio 2015中编译类时,由于ifstream
,首先发生了多个错误,因此我自然编辑了代码以删除这些错误,现在它看起来像这样:
public static void ReadSeatPrices()
{
FileStream fin = new FileStream("seat.txt", FileMode.Open,
FileAccess.Read);
int i = 0;
while (fin != null)
{
fin >> seatprices[i];
i++;
}
fin.Close();
}
现在我有两个错误是由这一行引起的:
fin >> seatprices[i];
错误列表输出表明:
"运营商'>>'不能应用于' FileStream'类型的操作数&安培; '双'
只能将赋值,调用,递增,递减和新对象表达式用作语句。
我是否必须在C#中使用某种等效运算符?如果有人能帮我理解我的错误,我将不胜感激。
答案 0 :(得分:3)
if
如果您无法保证可以进行转换,请使用TryParse()
。如果您确定转换始终有效,则可以取消>>
并仅使用Parse()
。
您应该使用ReadLine()
中的StreamReader
方法(这是此作业的正确类)来读取流。 C#没有{{1}}运算符重载。
将代码从一种语言翻译成另一种语言并不是一对一的,你需要找到正确的习语。
答案 1 :(得分:2)