2016-08-15 1 views
-1

는 I는 주어진Dummy를 전역 네임 스페이스에서 내 네임 스페이스로 이동할 수 있습니까?

  • 모두 복소수 x 및 y의 관점에서 수학 식의 입력을위한 수학 식 계산기로 복소수 인 X의
  • 입력 방법을 만들려
  • 또한 복소수 인 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 메소드의 매개 변수를 정의합니다. 매개 변수 이름은 globalsType입니다.이 항목은 [CSharpScript.cs] (http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp.Scripting/CSharpScript.cs)에서 찾을 수 있습니다. Csharp에서는 기본적으로 메소드에 대한 특정 매개 변수를이 표기법으로 설정하여 설정할 수 있습니다. –

관련 문제