0

ストリーム リーダー オブジェクト「ファイル」と文字型変数「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;

キャッシュ メモリのヒット アンド ミス プロジェクトを作成しています。しかし、C#では右シフトを文字列変数に適用できないため、コード行を実装する他のオプション..助けてください

この行を実装する他の方法

4

1 に答える 1

1

C# では、オペランドの 1 つが の場合にのみ演算子<<をオーバーロードできるため、このタイプのコードは厳密に禁止されています。>>int

参考

ユーザー定義型は>>演算子をオーバーロードできます。最初のオペランドの型はユーザー定義型である必要があり、2 番目のオペランドの型は である必要がありますint。詳細については、演算子を参照してください。

これができない理由は、言語設計者があなたにそうしてほしくなかったからです。line >> hexクールに見えるかもしれませんが、それは と同じことをline.Insert(hex)行い、通常は実際に何が起こるかをあまり説明しません。

于 2013-04-29T23:08:41.233 に答える