// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.SharpDevelop.Parser; namespace ICSharpCode.SharpDevelop.Dom { /// /// Observable model for a member. /// public interface IMemberModel : IEntityModel { /// /// Resolves the member in the current compilation. /// Returns null if the member could not be resolved. /// new IMember Resolve(); /// /// Resolves the member in the specified compilation. /// Returns null if the member could not be resolved. /// new IMember Resolve(ICompilation compilation); /// /// Gets the unresolved member. /// IUnresolvedMember UnresolvedMember { get; } /// /// Gets if the member is virtual. Is true only if the "virtual" modifier was used, but non-virtual /// members can be overridden, too; if they are abstract or overriding a method. /// bool IsVirtual { get; } /// /// Gets whether this member is overriding another member. /// bool IsOverride { get; } /// /// Gets if the member can be overridden. Returns true when the member is "abstract", "virtual" or "override" but not "sealed". /// bool IsOverridable { get; } } }