public int Sum() { return x+y;
}
public bool IsBetween(int i) {
if ( (x < i) && (i < y)) return true;
else return false;
}
public void Set(int a, int b) {
Console.Write('В методе Set(int, int). '); x = a;
У = b;
Show();
}
// Перегрузить.метод Set.
public void Set(double a, double b) {
Console.Write('В методе Set(double, double). '); x = (int) a; у = (int) b;
Show () ;
}
public void Show() {
Console.WriteLine ('Значение x: {0}, значение у: {1}', x, у);
}
}
class AnotherClass { string msg;
public AnotherClass(string str) { msg = str;
}
public void Show() {
Console.WriteLine(msg);
class Demo {
static void Main() {
Console.WriteLine('Это заполнитель.');
}
}
Этот файл содержит класс MyClass, неоднократно использовавшийся в предыдущих примерах. Кроме того, в файл добавлены второй класс AnotherClass и третий класс Demo. Следовательно, сборка, полученная из исходного кода, находящегося в этом исходном файле, будет содержать три класса. Затем этот файл компилируется, и из него формируется исполняемый файл MyClasses . ехе. Именно эта сборка и будет опрашиваться программно.
Ниже приведена программа, в которой будут извлекаться сведения о файле сборки MyClasses . ехе. Ее исходный текст составляет содержимое второго файла.
/* Обнаружить сборку, определить типы и создать объект с помощью рефлексии. */
using System;
using System.Reflection;
class ReflectAssemblyDemo { static void Main() { int val;
// Загрузить сборку MyClasses.exe.
Assembly asm = Assembly.LoadFrom('MyClasses.exe');
// Обнаружить типы, содержащиеся в сборке MyClasses.exe.
Туре[] alltypes = asm.GetTypes(); foreach(Type temp in alltypes)
Console.WriteLine('Найдено: ' + temp.Name);
Console.WriteLine() ;
// Использовать первый тип, в данном случае — класс MyClass.
Type t = alltypes[0]; // использовать первый найденный класс Console.WriteLine ('Использовано: ' + t.Name);
