示例#1
0
		static void ApplyModifiers(AbstractUnresolvedMember m, Modifiers modifiers)
		{
			// members from interfaces are always Public+Abstract.
			if (m.DeclaringTypeDefinition.Kind == TypeKind.Interface) {
				m.Accessibility = Accessibility.Public;
				m.IsAbstract = true;
				return;
			}
			m.Accessibility = GetAccessibility(modifiers) ?? Accessibility.Private;
			m.IsAbstract = (modifiers & Modifiers.Abstract) != 0;
			m.IsOverride = (modifiers & Modifiers.Override) != 0;
			m.IsSealed = (modifiers & Modifiers.Sealed) != 0;
			m.IsShadowing = (modifiers & Modifiers.New) != 0;
			m.IsStatic = (modifiers & Modifiers.Static) != 0;
			m.IsVirtual = (modifiers & Modifiers.Virtual) != 0;
			//m.IsPartial = (modifiers & Modifiers.Partial) != 0;
		}
示例#2
0
		IMemberReference ConvertInterfaceImplementation(AstType interfaceType, AbstractUnresolvedMember unresolvedMember)
		{
			ITypeReference interfaceTypeReference = interfaceType.ToTypeReference();
			int typeParameterCount = 0;
			IList<ITypeReference> parameterTypes = null;
			if (unresolvedMember.EntityType == EntityType.Method) {
				typeParameterCount = ((IUnresolvedMethod)unresolvedMember).TypeParameters.Count;
			}
			IUnresolvedParameterizedMember parameterizedMember = unresolvedMember as IUnresolvedParameterizedMember;
			if (parameterizedMember != null) {
				parameterTypes = new ITypeReference[parameterizedMember.Parameters.Count];
				for (int i = 0; i < parameterTypes.Count; i++) {
					parameterTypes[i] = parameterizedMember.Parameters[i].Type;
				}
			}
			return new DefaultMemberReference(unresolvedMember.EntityType, interfaceTypeReference, unresolvedMember.Name, typeParameterCount, parameterTypes);
		}