コードスニペット


クラス化してりゃ使う機会ないし、いつ使うんだろう。
コピペ連打されて同一処理が多数散らばって悲しい事になるだけなんだよなぁ。

ユーティリティクラスにしてメンテすべきだが。

と言う事を、動的コンパイルを見ながら考えていたが、動的にC#コードをDLL化出来るとして
スクリプトのように使えるぐらいだがIDEついてないといいところないし、何に使えるのかこれも謎。

下記のように値格納型のクラスを自動的にコード作ってDLLに出来るとか?。でも使う側コンパイルするしな。
リフレクション

フィールド演算を.NET化とかアドインスクリプトとか出来るっちゃ出来るけど、メリットが見えない。



static void Test()
{
  string source = @"
public class TestCls
{
    public static double Calc()
    {
        return 1d+1d;
    }
}";

  CodeDomProvider cp = new Microsoft.CSharp.CSharpCodeProvider();
  
  CompilerParameters cparam = new CompilerParameters();
  //cparam.ReferencedAssemblies.Add(//参照増やす際

  cparam.GenerateInMemory = true;
  var cres = cp.CompileAssemblyFromSource(cparam, source);

  Assembly asm = cres.CompiledAssembly;
  
  Type t = asm.GetType("TestCls");
  double d = (double)t.InvokeMember("Calc",
      BindingFlags.InvokeMethod,
      null,
      null,
      null);

  //結果を表示
  Console.WriteLine(d);
}
カテゴリー: 開発, 設計 タグ: パーマリンク