using
System;
class
GFG {
public
static
void
Main()
{
try
{
long
[] src = {15, 16, 17, 18};
long
[] dest = {17, 18, 19, 20};
Console.WriteLine(
"Initial Array values:"
);
Console.WriteLine();
Console.WriteLine(
"Array element in hexadecimal form:"
);
displayhexvalue(src,
"src"
);
displayhexvalue(dest,
"dest"
);
Console.WriteLine(
"Individual bytes:"
);
displaybytes(src,
"src"
);
displaybytes(dest,
"dest"
);
Console.WriteLine(
"srcoffest and destoffset are less than zero:"
);
Buffer.BlockCopy(src, -4, dest, -7, 6);
Console.WriteLine();
Console.WriteLine(
"Array after operation:"
);
Console.WriteLine();
Console.WriteLine(
"Array element in hexadecimal form:"
);
displayhexvalue(src,
"src"
);
displayhexvalue(dest,
"dest"
);
Console.WriteLine(
"Individual bytes:"
);
displaybytes(src,
"src"
);
displaybytes(dest,
"dest"
);
}
catch
(ArgumentNullException e) {
Console.Write(
"Exception Thrown: "
);
Console.Write(
"{0}"
, e.GetType(), e.Message);
}
catch
(ArgumentOutOfRangeException e) {
Console.Write(
"Exception Thrown: "
);
Console.Write(
"{0}"
, e.GetType(), e.Message);
}
catch
(ArgumentException e) {
Console.Write(
"Exception Thrown: "
);
Console.Write(
"{0}"
, e.GetType(), e.Message);
}
}
public
static
void
displayhexvalue(Array a,
string
name)
{
Console.Write(
"{0, 5}:"
, name);
for
(
int
i = 0; i < a.Length; i++)
Console.Write(
" {0:X16} "
, a.GetValue(i));
Console.WriteLine();
}
public
static
void
displaybytes(Array arr,
string
name)
{
Console.Write(
"{0, 5}:"
, name);
for
(
int
i = 0; i < arr.Length; i++) {
byte
[] bytes = BitConverter.GetBytes((
long
)arr.GetValue(i));
foreach
(
byte
byteValue
in
bytes)
Console.Write(
" {0:X2}"
, byteValue);
}
Console.WriteLine();
}
}