我不是socket编程方面的老手,所以在分析我在数据库API中发现的代码时,遇到了这段代码。
public static void WriteInt(int i, NetworkStream bufOutputStream)
{
byte[] buffer = new byte[IntSize];
WriteInt(i, buffer, 0);
bufOutputStream.Write(buffer, 0, buffer.Length);
}
public static void WriteInt(int i, byte[] byte_array, int pos)
{
byte_array[pos] =(byte)( 0xff & (i >> 24)); byte_array[pos+1] = (byte)(0xff & (i >> 16)); byte_array[pos+2] = (byte)(0xff & (i >> 8)); byte_array[pos+3] = (byte)(0xff & i);
}
我理解位移操作,但不理解当参数中没有ref或没有返回值时,'buffer'变量是如何获得值的。这些位移操作似乎在编辑buffer变量的实际值?