C# structとobjectをマッピングする

C#からC言語で記述されたDLLを呼び出す機会が少なからずある。
その時に必ずstruct定義を引数としてデータ設定・取得を行う。

組み込み系だと1バイトのビットフィールドに情報を詰め込むことがあり、 これをそのままアプリケーション側に渡すと使いづらいし面倒だしやっかいになる。
なのでDLLから取得した時点でobjectにマッピングし、アプリケーション側で使いまわしやすくしてやる。

struct MainteStruct
{
    public byte status1;
    public byte status2;
    public byte status3;
}

class MainteObject
{
    bool error1;
    bool error2;
    bool error3;
    bool error4;

    public MainteObject(MainteStruct mainteStruct)
    {
        error1 = ((mainteStruct.status1 & 0x01) == 0x01) ? (true) : (false);
        error2 = ((mainteStruct.status1 & 0x02) == 0x02) ? (true) : (false);
        error3 = ((mainteStruct.status1 & 0x04) == 0x04) ? (true) : (false);
        error4 = ((mainteStruct.status1 & 0x08) == 0x08) ? (true) : (false);
    }
}