2016-08-15 13 views
-1

私は両方の複素数、複素数xの ダミーをグローバル名前空間から自分の名前空間に移動できますか?

  • 入力され、xとyの点で数学式の所与

    • 入力するための数学式エバリュエータような方法を作成します、
    • yの入力もまた複素数である。

    using Microsoft.CodeAnalysis.CSharp.Scripting; 
    using Microsoft.CodeAnalysis.Scripting; 
    using System; 
    using System.Numerics; 
    using System.Text.RegularExpressions; 
    
    public class Dummy 
    { 
        public Complex x; 
        public Complex y; 
    } 
    
    namespace Simpler 
    { 
        static class Program 
        { 
    
         public static Complex Function(this string e, Complex x, Complex y) 
         { 
          Script<Complex> s = CSharpScript.Create<Complex>(e, globalsType: typeof(Dummy)); 
    
          Complex z = s.RunAsync(new Dummy { x = x, y = y }).Result.ReturnValue; 
    
          return z; 
         } 
    
         static void Main(string[] args) 
         { 
          Complex x = new Complex(1, 1); // x = 1 + i 
          Complex y = new Complex(0, 1); // y = i 
    
          //string e = "x*y"; // x*y = (1 + i)* i = i + i^2 = i - 1 = -1 + i 
          string e = "x/y"; // x/y = (1 + i)/ i = 1/i + 1 = -i + 1 = 1 - i 
    
          string lhs = Regex.Replace(e, "x", x.ToString()); 
          lhs = Regex.Replace(lhs, "y", y.ToString()); 
    
          Console.WriteLine($"{lhs} = {e.Function(x, y)}"); 
    
    
         } 
        } 
    } 
    

    質問

    私たちは自分の名前空間Simplerにグローバル名前空間からDummyを移動することはできますか?

  • +0

    はい..試しましたか? – Nico

    答えて

    1

    はちょうどこのようなあなたのnamepspaceにクラスをコピーします。

    namespace Simpler 
    { 
    
        public class Dummy 
        { 
         public Complex x; 
         public Complex y; 
        } 
    } 
    

    私はDummy.csまたは類似した何かと呼ばれる別のファイルにそれを置くことをお勧めします。これを済ませたら、簡単に名前空間からこのクラスにアクセスする必要があります。

    +0

    globalsType:typeof(Dummy)は、CSharpScriptメソッドのパラメータを定義します。 Parametersの名前はglobalsTypeです。これは[CSharpScript.cs](http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp.Scripting/CSharpScript.cs)で調べることができます。 Csharpでは、基本的に、メソッドのための特定のパラメータをこの表記法で設定して設定できます。 –

    関連する問題