Отражение — это получение информации о типе, с помощью объекта класса Type.
Требуется подключить пространство имен System.Reflection
Требуется подключить пространство имен System.Reflection
Main.cs
using
System;
//подключить пространство имен
using
System.Reflection;
public
class
Counter {
-
ushort
showStart;
-
ushort
showEnd;
-
decimal
price;
-
public
Counter(
ushort
arg0,
ushort
arg1,
decimal
arg2) {
-
showStart = arg0;
-
showEnd = arg1;
-
price = arg2;
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(showEnd-showStart);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow()*price), 2);
-
}
}
class
Program {
-
public
static
int
Main() {
-
Console.WriteLine(
"оплата за электроэнергию\n"
);
-
Console.Write(
"Введите начальные показания счетчика : "
);
-
ushort
show_start =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите конечные показания счетчика : "
);
-
ushort
show_end =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите цену за 1 кВт/ч : "
);
-
decimal
price =
decimal
.Parse(Console.ReadLine());
-
Counter C =
new
Counter(show_start, show_end, price);
-
Console.WriteLine(
"Сумма за электроэнергию : {0}"
, C.Sum());
-
Console.WriteLine();
-
//создаем объект класса Type и присваиваем ему значение - тип класса
-
Type T =
typeof
(Counter);
-
//получаем список членов класса
-
MemberInfo[] arrayMembers = T.GetMembers();
-
foreach
(var i
in
arrayMembers) {
-
if
(i !=
null
) {
-
Console.WriteLine(
"член класса {0}"
, i);
-
}
-
else
{
-
Console.WriteLine(
"член класса отсутствует"
);
-
}
-
}
-
Console.WriteLine();
-
//получаем список конструкторов класса
-
ConstructorInfo[] arrayConstructors = T.GetConstructors();
-
foreach
(var i
in
arrayConstructors) {
-
if
(i !=
null
) {
-
Console.WriteLine(
"конструктор класса {0}"
, i);
-
}
-
else
{
-
Console.WriteLine(
"конструктор класса отсутствует"
);
-
}
-
}
-
Console.WriteLine();
-
//получаем список методов класса
-
MethodInfo[] arrayMethods = T.GetMethods();
-
foreach
(var i
in
arrayMethods) {
-
if
(i !=
null
) {
-
Console.WriteLine(
"метод класса {0}"
, i);
-
}
-
else
{
-
Console.WriteLine(
"метод класса отсутствует"
);
-
}
-
}
-
Console.ReadKey();
-
return
0;
-
}
}
using
System;
//подключить пространство имен
using
System.Reflection;
public
class
Counter {
-
ushort
showStart;
-
ushort
showEnd;
-
decimal
price;
-
public
Counter(
ushort
arg0,
ushort
arg1,
decimal
arg2) {
-
showStart = arg0;
-
showEnd = arg1;
-
price = arg2;
-
}
-
public
ushort
ResultShow() {
-
return
(
ushort
)(showEnd-showStart);
-
}
-
public
decimal
Sum() {
-
return
Math.Round((
decimal
)(ResultShow()*price), 2);
-
}
}
class
Program {
-
public
static
int
Main() {
-
Console.WriteLine(
"оплата за электроэнергию\n"
);
-
Console.Write(
"Введите начальные показания счетчика : "
);
-
ushort
show_start =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите конечные показания счетчика : "
);
-
ushort
show_end =
ushort
.Parse(Console.ReadLine());
-
Console.Write(
"Введите цену за 1 кВт/ч : "
);
-
decimal
price =
decimal
.Parse(Console.ReadLine());
-
Counter C =
new
Counter(show_start, show_end, price);
-
Console.WriteLine(
"Сумма за электроэнергию : {0}"
, C.Sum());
-
Console.WriteLine();
-
//создаем объект класса Type и присваиваем ему значение - тип класса
-
Type T =
typeof
(Counter);
-
//получаем список членов класса
-
MemberInfo[] arrayMembers = T.GetMembers();
-
foreach
(var i
in
arrayMembers) {
-
if
(i !=
null
) {
-
Console.WriteLine(
"член класса {0}"
, i);
-
}
-
else
{
-
Console.WriteLine(
"член класса отсутствует"
);
-
}
-
}
-
Console.WriteLine();
-
//получаем список конструкторов класса
-
ConstructorInfo[] arrayConstructors = T.GetConstructors();
-
foreach
(var i
in
arrayConstructors) {
-
if
(i !=
null
) {
-
Console.WriteLine(
"конструктор класса {0}"
, i);
-
}
-
else
{
-
Console.WriteLine(
"конструктор класса отсутствует"
);
-
}
-
}
-
Console.WriteLine();
-
//получаем список методов класса
-
MethodInfo[] arrayMethods = T.GetMethods();
-
foreach
(var i
in
arrayMethods) {
-
if
(i !=
null
) {
-
Console.WriteLine(
"метод класса {0}"
, i);
-
}
-
else
{
-
Console.WriteLine(
"метод класса отсутствует"
);
-
}
-
}
-
Console.ReadKey();
-
return
0;
-
}
}
оплата за электроэнергию
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Введите цену за 1 кВт/ч : 0,3084
Сумма за электроэнергию : 30,84
член класса UInt16 ResultShow()
член класса System.Decimal Sum()
член класса System.String ToString()
член класса Boolean Equals(System.Object)
член класса Int32 GetHashCode()
член класса System.Type GetType()
член класса Void .ctor(UInt16, UInt16, System.Decimal)
конструктор класса Void .ctor(UInt16, UInt16, System.Decimal)
метод класса UInt16 ResultShow()
метод класса System.Decimal Sum()
метод класса System.String ToString()
метод класса Boolean Equals(System.Object)
метод класса Int32 GetHashCode()
метод класса System.Type GetType()
Введите начальные показания счетчика : 0
Введите конечные показания счетчика : 100
Введите цену за 1 кВт/ч : 0,3084
Сумма за электроэнергию : 30,84
член класса UInt16 ResultShow()
член класса System.Decimal Sum()
член класса System.String ToString()
член класса Boolean Equals(System.Object)
член класса Int32 GetHashCode()
член класса System.Type GetType()
член класса Void .ctor(UInt16, UInt16, System.Decimal)
конструктор класса Void .ctor(UInt16, UInt16, System.Decimal)
метод класса UInt16 ResultShow()
метод класса System.Decimal Sum()
метод класса System.String ToString()
метод класса Boolean Equals(System.Object)
метод класса Int32 GetHashCode()
метод класса System.Type GetType()