我刚开始使用C ++进行编码,我在一些示例代码中看到了这个符号:<<
在C#中是否存在等价,如果是这样的话是什么?
提前谢谢。
答案 0 :(得分:4)
免责声明:我对C#一无所知;这个答案只是用C ++描述了运算符。
这取决于背景;该运算符通常重载表示不同类型的不同内容。
对于整数类型,它是按位左移运算符;它采用值的位模式,并将其向左移动,将零插入较低有效位:
unsigned x = 6; // decimal 6, binary 00110
unsigned y = x << 2; // decimal 24, binary 11000
通常,左移N位相当于乘以2 N (所以这里,移位2位乘以4)。
我非常确定C#中使用运算符与C ++相同。
标准库重载操作符以将值插入输出流,以便在控制台或文件中或以其他方式生成格式化输出。
#include <iostream> // declare standard input/output streams
std::cout << 42 << std::endl; // print 42 to the console, end the line, and flush.
我认为C#有TextWriter
或其他东西来处理格式化输出,Console.Out
或等同于std::cout
的东西;但是C#使用普通方法调用而不是重载操作符。
答案 1 :(得分:2)
operator<<
在C ++中与在C#中完全相同;它是左移运算符,并将所有位向左移动一位。
但是,在C ++中,您可以重载大多数运算符,使它们为用户定义的类型执行任何您喜欢的操作。也许最常见的是,左移和右移运算符被重载为流意味着“将此东西填充到该流中”(左移)或“从该流中提取此类型的变量”(右移)。 / p>