Note

Access to this page requires authorization. You can try signing in or .

Access to this page requires authorization. You can try .

MethodBase.IsFamilyOrAssembly Property

Definition

Namespace:
System.Reflection
Assemblies:
mscorlib.dll, System.Reflection.dll
Assemblies:
netstandard.dll, System.Runtime.dll
Assembly:
System.Reflection.dll
Assembly:
System.Runtime.dll
Assembly:
mscorlib.dll
Assembly:
netstandard.dll
Source:
MethodBase.cs
Source:
MethodBase.cs
Source:
MethodBase.cs
Source:
MethodBase.cs
Source:
MethodBase.cs

Important

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

Gets a value indicating whether the potential visibility of this method or constructor is described by FamORAssem; that is, the method or constructor can be called by derived classes wherever they are, and by classes in the same assembly.

public:
 property bool IsFamilyOrAssembly { bool get(); };
public bool IsFamilyOrAssembly { get; }
member this.IsFamilyOrAssembly : bool
Public ReadOnly Property IsFamilyOrAssembly As Boolean

Property Value

true if access to this method or constructor is exactly described by FamORAssem; otherwise, false.

Implements

Examples

The following code example defines methods with varying levels of visibility, and displays the values of their IsAssembly, IsFamily, IsFamilyOrAssembly, and IsFamilyAndAssembly properties.

using System;
using System.Reflection;

public class Example
{
 public void m_public() {}
 internal void m_internal() {}
 protected void m_protected() {}
 protected internal void m_protected_public() {}
 private protected void m_private_protected() {}

 public static void Main()
 {
 Console.WriteLine("\n{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly");
 Console.WriteLine("{0,-21}{1,-18}{2,-18}{3}\n",
 "", "IsPublic", "IsFamily", "IsFamilyAndAssembly");

 foreach (MethodBase m in typeof(Example).GetMethods(
 BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
 {
 if (m.Name.Substring(0, 1) == "m")
 {
 Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}",
 m.Name,
 m.IsPublic,
 m.IsAssembly,
 m.IsFamily,
 m.IsFamilyOrAssembly,
 m.IsFamilyAndAssembly
 );
 }
 }
 }
}

/* This code example produces output similar to the following:

 IsAssembly IsFamilyOrAssembly
 IsPublic IsFamily IsFamilyAndAssembly

m_public True False False False False
m_internal False True False False False
m_protected False False True False False
m_protected_public False False False True False
m_private_protected False False False False True
 */
Imports System.Reflection

Public class Example

 Public Sub m_Public() 
 End Sub
 Friend Sub m_Friend() 
 End Sub
 Protected Sub m_Protected() 
 End Sub
 Protected Friend Sub m_Protected_Friend() 
 End Sub
 Private Protected Sub m_Private_Protected() 
 End Sub

 Public Shared Sub Main()
 
 Console.WriteLine(vbCrLf & _
 "{0,-30}{1,-18}{2}", "", "IsAssembly", "IsFamilyOrAssembly") 
 Console.WriteLine("{0,-21}{1,-18}{2,-18}{3}" & vbCrLf, _
 "", "IsPublic", "IsFamily", "IsFamilyAndAssembly")
 
 For Each m As MethodBase In GetType(Example).GetMethods( _
 BindingFlags.Instance Or BindingFlags.NonPublic Or BindingFlags.Public)
 
 If Left(m.Name, 1) = "m"
 
 Console.WriteLine("{0,-21}{1,-9}{2,-9}{3,-9}{4,-9}{5,-9}", _
 m.Name, _
 m.IsPublic, _
 m.IsAssembly, _
 m.IsFamily, _
 m.IsFamilyOrAssembly, _
 m.IsFamilyAndAssembly _
 )
 End If
 Next
 End Sub
End Class

' This code example produces output similar to the following:
'
' IsAssembly IsFamilyOrAssembly
' IsPublic IsFamily IsFamilyAndAssembly
'
'm_Public True False False False False
'm_Friend False True False False False
'm_Protected False False True False False
'm_Protected_Friend False False False True False
'm_Private_Protected False False False False True

Remarks

If a type member has MethodAttributes.FamORAssem visibility, it can be called from any member in a derived class or any member in the same assembly, but not from any other type.

The actual visibility of a method is limited by the visibility of its type. The IsFamilyOrAssembly property might be true for a method, but if it is a method of a private nested type then the method is not visible outside the containing type.

The visibility of a method or constructor is exactly described by MethodAttributes.FamORAssem if the visibility modifier is protected internal in C# (Protected Friend in Visual Basic).

Applies to

See also


Feedback

Was this page helpful?