// 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 System.Collections.Generic; namespace ICSharpCode.SharpDevelop.Dom { public interface IMember : IEntity, ICloneable { /// /// Declaration region of the member (without body!) /// DomRegion Region { get; } /// /// Gets/Sets the declaring type reference (declaring type incl. type arguments). /// Never returns null. /// If the property is set to null (e.g. when this is not a specialized member), /// it should return the default type reference to the . /// IReturnType DeclaringTypeReference { get; set; } /// /// Gets the generic member this member is based on. /// Returns null if this is not a specialized member. /// Specialized members are the result of overload resolution with type substitution. /// IMember GenericMember { get; } /// /// Creates a copy of this member with its GenericMember property set to this member. /// Use this method to create copies of a member that should be regarded as the "same member" /// for refactoring purposes. /// IMember CreateSpecializedMember(); IReturnType ReturnType { get; set; } IList InterfaceImplementations { get; } } }