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#中字符串的右移操作符

在c#中,只有当其中一个操作数是int时,才能重载操作符<<>>,因此这种类型的代码是严格禁止的。

参考:

用户定义类型可以重载>>操作符;第一个的类型操作数必须为用户定义的类型,且为第二个类型操作数必须为int。更多信息请参见operator.

你不能这样做的原因是因为语言设计者不希望你这样做,我当然不能责怪他们。line >> hex可能看起来很酷,但它做的事情和line.Insert(hex)一样,通常对实际发生的事情的描述要少得多。