Mono.CSharp.ModifiersExtensions.MethodAttr C# (CSharp) Method

MethodAttr() public static method

public static MethodAttr ( Mono.CSharp.Modifiers mod_flags ) : MethodAttributes
mod_flags Mono.CSharp.Modifiers
return MethodAttributes
		public static MethodAttributes MethodAttr (Modifiers mod_flags)
		{
			MethodAttributes ma = MethodAttributes.HideBySig;

			switch (mod_flags & Modifiers.AccessibilityMask) {
			case Modifiers.PUBLIC:
				ma |= MethodAttributes.Public;
				break;
			case Modifiers.PRIVATE:
				ma |= MethodAttributes.Private;
				break;
			case Modifiers.PROTECTED | Modifiers.INTERNAL:
				ma |= MethodAttributes.FamORAssem;
				break;
			case Modifiers.PROTECTED:
				ma |= MethodAttributes.Family;
				break;
			case Modifiers.INTERNAL:
				ma |= MethodAttributes.Assembly;
				break;
			default:
				throw new NotImplementedException (mod_flags.ToString ());
			}

			if ((mod_flags & Modifiers.STATIC) != 0)
				ma |= MethodAttributes.Static;
			if ((mod_flags & Modifiers.ABSTRACT) != 0) {
				ma |= MethodAttributes.Abstract | MethodAttributes.Virtual;
			}
			if ((mod_flags & Modifiers.SEALED) != 0)
				ma |= MethodAttributes.Final;

			if ((mod_flags & Modifiers.VIRTUAL) != 0)
				ma |= MethodAttributes.Virtual;

			if ((mod_flags & Modifiers.OVERRIDE) != 0) {
				ma |= MethodAttributes.Virtual;
			} else {
				if ((ma & MethodAttributes.Virtual) != 0)
					ma |= MethodAttributes.NewSlot;
			}
			
			return ma;
		}