Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Троелсен Эндрю, "Язык программирования C#9 и платформа .NET5" бесплатно, без регистрации.
Console.WriteLine("Is type generic? {0}", t.IsGenericTypeDefinition); // Обобщенный?
Console.WriteLine("Is type a class type? {0}", t.IsClass); // Тип класса?
Console.WriteLine();
}
Добавление операторов верхнего уровня
Операторы верхнего уровня в файле
Program.cs
Туре.GetType()
System.Туре
Console.WriteLine("***** Welcome to MyTypeViewer *****");
string typeName = "";
do
{
Console.WriteLine("nEnter a type name to evaluate");
// Пригласить ввести имя типа.
Console.Write("or enter Q to quit: "); // или Q для завершения
// Получить имя типа
typeName = Console.ReadLine();
// Пользователь желает завершить программу?
if (typeName.Equals("Q",StringComparison.OrdinalIgnoreCase))
{
break;
}
// Попробовать отобразить информацию о типе.
try
{
Type t = Type.GetType(typeName);
Console.WriteLine("");
ListVariousStats(t);
ListFields(t);
ListProps(t);
ListMethods(t);
ListInterfaces(t);
}
catch
{
Console.WriteLine("Sorry, can't find type");
}
} while (true);
В настоящий момент приложение
MyTypeViewer.exe
Туре.GetType()
•
System.Int32
•
System.Collections.ArrayList
•
System.Threading.Thread
•
System.Void
•
System.10.BinaryWriter
•
System.Math
•
MyTypeViewer.Program
Ниже показан частичный вывод при указании
System.Math
***** Welcome to MyTypeViewer *****
Enter a type name to evaluate
or enter Q to quit: System.Math
***** Various Statistics *****
Base class is: System.Object
Is type abstract? True
Is type sealed? True
Is type generic? False
Is type a class type? True
***** Fields *****
->PI
->E
***** Properties *****
***** Methods *****
->Acos
->Asin
->Atan
->Atan2
->Ceiling
->Cos
...
Рефлексия статических типов
Если вы введете
System.Console
t
null
Туре.GetType(typeName)
typeof
System.Туре
System.Console
Type t = Type.GetType(typeName);
if (t == null && typeName.Equals("System.Console",
StringComparison.OrdinalIgnoreCase))
{
t = typeof(System.Console);
}
Рефлексия обобщенных типов
При вызове
Type.GetType()
'
System.Collections.Generic.List<T>
System.Collections.Generic.List`1