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.
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System.Booleantrue 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.IsNestedFamANDAssemIf the current Type represents a type parameter of a generic type, this property always returns false.
TypeAttributes.VisibilityMask selects the visibility attributes.
Note |
|---|
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
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
