C#
using System;
namespace ConsoleMySum
{
class Program
{
static void Main(string[] args)
{
// проверяем количество аргументов
if (args == null || args.Length < 1)
throw new ArgumentNullException("args");
// конвертируем первый аргумент в число
int number = 0;
if (!Int32.TryParse(args[0], out number))
throw new ArgumentException("не возможно преобразовать строку в число");
if (number < 1)
throw new ArgumentException("число не должно быть меньше 1");
// считаем сумму
int result = 1;
for (int i = 1; i <= number; i++)
{
result += i;
}
// показываем сумму на экране
Console.WriteLine("Сумма числа {0} равен {1}", number, result);
}
}
}
C#
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// создаем второй домен
AppDomain factorialDomain = AppDomain.CreateDomain("My second Domain");
factorialDomain.DomainUnload += SecondaryDomain_DomainUnload;
// определяем аргументы для программы
int calcSumForNumber = 15;
string[] arguments = new string[] { calcSumForNumber.ToString() };
// полный путь к файлу программы - bin/Debug/ConsoleMySum.exe
string assemblyPath = factorialDomain.BaseDirectory + "ConsoleMySum.exe";
// загрузка и выполнение программы
factorialDomain.ExecuteAssembly(assemblyPath, arguments);
// выгрузка домена
AppDomain.Unload(factorialDomain);
Console.Read();
}
private static void SecondaryDomain_DomainUnload(object sender, EventArgs e)
{
Console.WriteLine("Домен 'My second Domain' выгружен из процесса");
}
}
}