Type.IsNestedFamANDAssem Proprietà
Definizione
public:
property bool IsNestedFamANDAssem { bool get(); };
public bool IsNestedFamANDAssem { get; }
member this.IsNestedFamANDAssem : bool
Public ReadOnly Property IsNestedFamANDAssem As Boolean
Valore della proprietà
true
se Type è annidato e visibile soltanto alle classi della stessa famiglia e dello stesso assembly; in caso contrario, false
.true
if the Type is nested and visible only to classes that belong to both its own family and its own assembly; otherwise, false
.
Implementazioni
Esempio
Nell'esempio seguente viene creata una classe esterna con un numero di classi annidate con vari tipi di visibilità.The following example creates an outer class with a number of nested classes that have various types of visibility. Recupera quindi il valore di un numero di proprietà correlate alla visibilità Type per il tipo padre e ognuno dei relativi tipi annidati.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
' Create a Class with a number of nested Classes.
Public Class OuterClass
Private Class PrivateClass
End Class
Protected Class ProtectedClass
End Class
Friend Class InternalClass
End Class
Protected Friend Class ProtectedInternalClass
End Class
Public Class PublicClass
End Class
Public Shared Sub Main()
' Create an array of Type objects for all the Classes.
Dim types() As Type = { GetType(OuterClass),
GetType(OuterClass.PublicClass),
GetType(OuterClass.PrivateClass),
GetType(OuterClass.ProtectedClass),
GetType(OuterClass.InternalClass),
GetType(OuterClass.ProtectedInternalClass) }
' Display the property values of each nested Class.
For Each type In types
Console.WriteLine("{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)
Console.WriteLine()
Next
End Sub
End Class
' 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
Commenti
Se l'oggetto corrente Type rappresenta un parametro di tipo di un tipo generico, questa proprietà restituisce sempre false
.If the current Type represents a type parameter of a generic type, this property always returns false
.
TypeAttributes.VisibilityMask Seleziona gli attributi di visibilità.TypeAttributes.VisibilityMask selects the visibility attributes.
Nota
I linguaggi C# e Visual Basic non includono la semantica che consente di definire un tipo annidato visibile solo ai tipi protetti nel relativo assembly.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
visibilità in C# e Protected Friend
visibilità in Visual Basic definire un tipo annidato visibile sia ai tipi protetti che ai tipi nello stesso 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.
La Type famiglia di un oggetto viene definita come tutti gli oggetti dello stesso Type e dei relativi sottotipi.A Type object's family is defined as all objects of the same Type and of its subtypes.