PERWAPI.Member.WriteFlags C# (CSharp) Метод

WriteFlags() защищенный Метод

protected WriteFlags ( CILWriter output, uint flags ) : void
output CILWriter
flags uint
Результат void
        protected void WriteFlags(CILWriter output, uint flags)
        {
            uint vis = (flags & 0x07);  // visibility mask
            switch (vis) {
                case 0 : output.Write("compilercontrolled "); break;
                case 1 : output.Write("private "); break;
                case 2 : output.Write("famandassem "); break;
                case 3 : output.Write("assembly "); break;
                case 4 : output.Write("family "); break;
                case 5 : output.Write("famorassem "); break;
                case 6 : output.Write("public "); break;
            }
            if ((flags & (ushort)FieldAttr.Static) != 0) {
                output.Write("static ");
            }
            if ((flags & (ushort)FieldAttr.Initonly) != 0) {
                if (this is MethodDef) {
                    output.Write("final ");
                } else {
                    output.Write("initonly ");
                }
            }
            if ((flags & (ushort)FieldAttr.Literal) != 0) {
                if (this is MethodDef) {
                    output.Write("virtual ");
                } else {
                    output.Write("literal ");
                }
            }
            if ((flags & (ushort)FieldAttr.Notserialized) != 0) {
                if (this is MethodDef) {
                    output.Write("hidebysig ");
                } else {
                    output.Write("notserialized ");
                }
            }
            if (this is MethodDef) {
                // more flags required here
                if ((flags & (ushort)MethAttr.Abstract) != 0) {
                    output.Write("abstract ");
                }
                if ((flags & (ushort)MethAttr.SpecialName) != 0) {
                    output.Write("specialname ");
                }
                if ((flags & (ushort)MethAttr.RTSpecialName) != 0) {
                    output.Write("rtspecialname ");
                }

            } else {
                // more flags required here
                if ((flags & (ushort)FieldAttr.SpecialName) != 0) {
                    output.Write("specialname ");
                }
                if ((flags & (ushort)FieldAttr.RTSpecialName) != 0) {
                    output.Write("rtsspecialname ");
                }
            }
        }