C# | Type.GetNestedTypes() Method
Type.GetNestedTypes() Method is used to get the types nested within the current Type. There are 2 methods in the overload list of this method as follows:
GetNestedTypes() Method
This method is used to return the public types nested in the current Type.
Syntax: public Type[] GetNestedTypes ();
Return Value: This method returns an array of Type objects representing the public types nested in the current Type (the search is not recursive), or an empty array of type if no public types are nested in the current Type.
Below programs illustrate the use of the above-discussed method:
Example 1:
csharp
using System;
using System.Globalization;
using System.Reflection;
public class Empty { }
class GFG {
public static void Main()
{
Type objType = typeof (Person);
try {
Type[] type = objType.GetNestedTypes();
Console.WriteLine( "NestedType of current type is: " );
for ( int i = 0; i < type.Length; i++)
Console.WriteLine( "{0} " , type[i]);
}
catch (ArgumentNullException e)
{
Console.Write( "name is null." );
Console.Write( "Exception Thrown: " );
Console.Write( "{0}" , e.GetType(), e.Message);
}
}
}
public class Person {
public class Student
{
}
public class Teacher
{
}
}
|
Output:
NestedType of current type is:
Person+Student
Person+Teacher
Example 2:
csharp
using System;
using System.Globalization;
using System.Reflection;
public class Empty { }
class GFG {
public static void Main()
{
Type objType = typeof (Animal);
try {
Type[] type = objType.GetNestedTypes();
Console.WriteLine( "NestedType of current type is: " );
for ( int i = 0; i < type.Length; i++)
Console.WriteLine( " {0}" , type[i]);
}
catch (ArgumentNullException e)
{
Console.Write( "name is null." );
Console.Write( "Exception Thrown: " );
Console.Write( "{0}" , e.GetType(), e.Message);
}
}
}
public class Animal {
public class Cat {
}
public class Dog {
}
public class Mouse {
}
public interface Description {
string getBreed();
string getColor();
string getType();
bool isAlive();
}
}
|
Output
NestedType of current type is:
Animal+Cat
Animal+Dog
Animal+Mouse
Animal+Description
GetNestedTypes(BindingFlags) Method
This method is used to search for the types nested in the current Type, using the specified binding constraints when overridden in a derived class.
Syntax: public abstract Type[] GetNestedTypes (System.Reflection.BindingFlags bindingAttr);
Here, it takes a bitmask comprised of one or more BindingFlags that specify how the search is conducted or, Zero, to return null.
Return Value: This method returns an array of Type objects representing all the types nested in the current Type that match the specified binding constraints (the search is not recursive), or an empty array of type if no nested types are found that match the binding constraints.
Example 1:
csharp
using System;
using System.Globalization;
using System.Reflection;
public class Empty { }
class GFG {
public static void Main()
{
Type objType = typeof (Animal);
try {
Type[] type = objType.GetNestedTypes();
Console.WriteLine( "NestedType of current type is: " );
for ( int i = 0; i < type.Length; i++)
Console.WriteLine( " {0}" , type[i]);
}
catch (ArgumentNullException e)
{
Console.Write( "name is null." );
Console.Write( "Exception Thrown: " );
Console.Write( "{0}" , e.GetType(), e.Message);
}
}
}
public class Animal {
public class Cat {
}
public class Dog {
}
public class Mouse {
}
public interface Description {
string getBreed();
string getColor();
string getType();
bool isAlive();
}
}
|
Output:
NestedType of current type is:
Animal+Empty
Example 2:
csharp
using System;
using System.Globalization;
using System.Reflection;
public class Empty { }
class GFG {
public static void Main()
{
Type objType = typeof (Person);
try {
Type[] type = objType.GetNestedTypes(BindingFlags.Public);
Console.WriteLine( "NestedType of current type is: " );
for ( int i = 0; i < type.Length; i++)
Console.WriteLine( " {0}" , type[i]);
}
catch (ArgumentNullException e)
{
Console.Write( "name is null." );
Console.Write( "Exception Thrown: " );
Console.Write( "{0}" , e.GetType(), e.Message);
}
}
}
public class Person {
public class Student
{
}
public class Teacher
{
}
}
|
Output:
NestedType of current type is:
Person+Student
Person+Teacher
Reference:
Last Updated :
08 Feb, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...