クラスを宣言し、呼び出すときは次のようにするとインスタンス化されます。
-- code ---------
namespace Sample
{
public class Processor
{
private int val1;
private int val2;
public int Val1
{
get{ return val1; }
set{ val1 = value; }
}
pucblic int Val2
{
get{ return val2; }
set{ val2 = value; }
}
public Processor(int _val1, int _val2)
{
val1 = _val1;
val2 = _val2;
}
public int Run()
{
return val1 + val2;
}
}
public class Startup
{
public static void Main(string [] args)
{
Processor processor = new Processor(1, 1);
Console.WriteLine(processor.Run());
}
}
}
----------------
new キーワードを用いてインスタンス化します。
別の方法で文字列にクラス名を指定してインスタンスする方法もあります。
-- code ----------
public class Startup
{
public static void Main(string [] args)
{
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
Processor processor =
(Processor)
asm.CreateInstance("Sample.Processor",
false,
System.Reflection.BindingFlags.CreateInstance,
null,
new object[]{1,1},
null,
null);
Console.WriteLine(processor.Run());
}
}
-----------------
といった具合に可能です。
インターフェースや継承を利用すれば、もっと柔軟にクラスの作成が可能になります。