C#
[StructLayout(LayoutKind.Explicit)]
public struct SampleUnion
{
[FieldOffset(0)] public uint dword;
[FieldOffset(0)] public byte[] bytes;
[FieldOffset(0)] public uint byte3;
[FieldOffset(8)] public uint byte2;
[FieldOffset(16)] public uint byte1;
[FieldOffset(24)] public uint byte0;
};
uint S(SampleUnion x, uint y)
i am calling a function "S". Depending on the value y, the function should return the value of the expression "SBoxes[y][x.bytes##y])" (this expression is written in c)... suppose y=1, then SBoxes[1][x.bytes1]... where bytes1 is a member of the C# representation of C union. In the same way for y=2,3,.... i should be able to compute the expression by calling this function "S"...
In C, this can be done as..
uint S(SampleUnion x, uint y)
{
return(SBoxes[y][x.bytes##y]);
}
Here y is appended to bytes using "##". But i donot how i can do it in C#....Due to this i am not able to proceed further.So any kind of help is highly appreciated and will be waiting for any reply...
Thanku
|