Export (0) Print
Expand All
Expand Minimize

Type.IsNestedFamANDAssem Property

Gets a value indicating whether the Type is nested and visible only to classes that belong to both its own family and its own assembly.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

public bool IsNestedFamANDAssem { get; }

Property Value

Type: System.Boolean
true if the Type is nested and visible only to classes that belong to both its own family and its own assembly; otherwise, false.

Implements

_Type.IsNestedFamANDAssem

If the current Type represents a type parameter of a generic type, this property always returns false.

TypeAttributes.VisibilityMask selects the visibility attributes.

NoteNote

The C# and Visual Basic languages do not include semantics that allow you to define a nested type that is visible only to protected types in its own assembly. protected internal visibility in C# and Protected Friend visibility in Visual Basic define a nested type that is visible both to protected types and to types in the same assembly.

A Type object's family is defined as all objects of the same Type and of its subtypes.

The following example creates an outer class with a number of nested classes that have various types of visibility. It then retrieves the value of a number of visibility-related Type properties for the parent type and each of its nested types.

using System;

// Create a class with a number of nested classes. 
public class OuterClass
{
    private class PrivateClass
    {}

    protected class ProtectedClass
    {}

    internal class InternalClass
    {}

    protected internal class ProtectedInternalClass
    {}

    public class PublicClass
    {}

    public static void Main()
    {
        // Create an array of Type objects for all the classes.
        Type[] types = { typeof(OuterClass),
                         typeof(OuterClass.PublicClass),
                         typeof(OuterClass.PrivateClass),
                         typeof(OuterClass.ProtectedClass),
                         typeof(OuterClass.InternalClass),
                         typeof(OuterClass.ProtectedInternalClass) };
        // Display the property values of each nested class. 
        foreach (var type in types) {
           Console.WriteLine("\n{0} property values:", type.Name);
           Console.WriteLine("   Public Class: {0}", type.IsPublic);
           Console.WriteLine("   Not a Public Class: {0}", type.IsNotPublic);
           Console.WriteLine("   Nested Class: {0}", type.IsNested);
           Console.WriteLine("   Nested Private Class: {0}", type.IsNestedPrivate);
           Console.WriteLine("   Nested Internal Class: {0}", type.IsNestedAssembly);
           Console.WriteLine("   Nested Protected Class: {0}", type.IsNestedFamily);
           Console.WriteLine("   Nested Family Or Assembly Class: {0}", type.IsNestedFamORAssem);
           Console.WriteLine("   Nested Family And Assembly Class: {0}", type.IsNestedFamANDAssem);
           Console.WriteLine("   Nested Public Class: {0}", type.IsNestedPublic);
        }
    }
}
// The example displays the following output: 
//    OuterClass property values: 
//       Public Class: True 
//       Not a Public Class: False 
//       Nested Class: False 
//       Nested Private Class: False 
//       Nested Internal Class: False 
//       Nested Protected Class: False 
//       Nested Family Or Assembly Class: False 
//       Nested Family And Assembly Class: False 
//       Nested Public Class: False 
// 
//    PublicClass property values: 
//       Public Class: False 
//       Not a Public Class: False 
//       Nested Class: True 
//       Nested Private Class: False 
//       Nested Internal Class: False 
//       Nested Protected Class: False 
//       Nested Family Or Assembly Class: False 
//       Nested Family And Assembly Class: False 
//       Nested Public Class: True 
// 
//    PrivateClass property values: 
//       Public Class: False 
//       Not a Public Class: False 
//       Nested Class: True 
//       Nested Private Class: True 
//       Nested Internal Class: False 
//       Nested Protected Class: False 
//       Nested Family Or Assembly Class: False 
//       Nested Family And Assembly Class: False 
//       Nested Public Class: False 
// 
//    ProtectedClass property values: 
//       Public Class: False 
//       Not a Public Class: False 
//       Nested Class: True 
//       Nested Private Class: False 
//       Nested Internal Class: False 
//       Nested Protected Class: True 
//       Nested Family Or Assembly Class: False 
//       Nested Family And Assembly Class: False 
//       Nested Public Class: False 
// 
//    InternalClass property values: 
//       Public Class: False 
//       Not a Public Class: False 
//       Nested Class: True 
//       Nested Private Class: False 
//       Nested Internal Class: True 
//       Nested Protected Class: False 
//       Nested Family Or Assembly Class: False 
//       Nested Family And Assembly Class: False 
//       Nested Public Class: False 
// 
//    ProtectedInternalClass property values: 
//       Public Class: False 
//       Not a Public Class: False 
//       Nested Class: True 
//       Nested Private Class: False 
//       Nested Internal Class: False 
//       Nested Protected Class: False 
//       Nested Family Or Assembly Class: True 
//       Nested Family And Assembly Class: False 
//       Nested Public Class: False

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

.NET for Windows Phone apps

Supported in: Windows Phone 8.1, Windows Phone Silverlight 8.1, Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Show:
© 2014 Microsoft