c#中字符串的右移操作符
本文关键字:右移 操作符 字符串 | 更新日期: 2023-09-27 18:11:38
我有一个流阅读器对象"file"和一个字符类型变量"hex"
System.IO.StreamReader file = new System.IO.StreamReader(filename);
char[] hex=new char[20];
int @base;
我要实现的代码是
string line;
while ((line=file.ReadLine()) != null) //Reading each address from trace file
{
if (@base != 10)
{
line >> hex;
///this line giving errors, as shift right cannot be implemented on string types
address = changebase(hex, @base);
}
else
line >> address;
我正在做一个cache memory hit and miss project。但是在c#中右移不能应用于字符串变量,所以任何其他选项来实现行代码…请帮忙
其他实现这一行的方法
在c#中,只有当其中一个操作数是int
时,才能重载操作符<<
和>>
,因此这种类型的代码是严格禁止的。
用户定义类型可以重载
>>
操作符;第一个的类型操作数必须为用户定义的类型,且为第二个类型操作数必须为int
。更多信息请参见operator.
你不能这样做的原因是因为语言设计者不希望你这样做,我当然不能责怪他们。line >> hex
可能看起来很酷,但它做的事情和line.Insert(hex)
一样,通常对实际发生的事情的描述要少得多。