2016-10-18 2 views
-1

그래서 이라는 함수를 만들었습니다. string이 필요합니다. 이제 onclick이 수행하는 버튼이 Something(textBox1.Text)입니다.텍스트 상자 텍스트를 코드가있는 문자열로 바꿉니다.

은 내가 textBox.Text 입력으로 기능이 ""test " + (5+2).toString()" (예를 들어)를 얻을 것이다 이제 "test " + (5+2).toString()

같은 것을 할 수 있도록하려면 그것은 큰 문자열처럼 그 치료 것입니다.

내가 원하는 것은 test 7을 얻고 하나의 큰 문자열처럼 다루지 않습니다.

어떻게해야할까요?

미리 감사드립니다. - 팀

편집 :

이 제 기능을 할 것이다 :

private void Something(string text) 
{ 
    MessageBox.Show(text); 
} 

을 textBox1이

__________________ 
| "hi " + "test" | 
------------------ 

그것은 것처럼 보이는 때 그때

Something(textBox1.Text); 

을 할 경우 디 o "hi" + "test"이 아니라 hi test이 아닌 MessageBox를 만듭니다.

+0

그렇다면 기본적으로 누군가 텍스트 상자에 어떤 종류의 코딩을 넣을 수있게 하시겠습니까? 숫자 추가/빼기로 제한됩니까? – sr28

+0

"큰 문자열 하나"란 무엇을 의미합니까? 질문을 명확히 할 수 있습니까? – SteppingRazor

+0

질문이 명확하지 않습니다 .. 코드를 올리시겠습니까? – A3006

답변

1

Something -method에 입력하기 전에 텍스트 상자의 문자열을 컴파일하고 코드를 실행해야합니다.

Roslyn에서 텍스트 상자의 표현을 쉽게 평가할 수 있습니다.

은 그럼 당신은 얻을 것이다 :

string result = await CSharpScript.EvaluateAsync<string>("\"test \" + (5+2).toString()"); 
Something(result); 
1

나는이 방법으로하려고 생각합니다. res에는 산술 연산에 대한 답이 들어 있습니다.

doSomething(string text) 
    {    
     DataTable dt = new DataTable(); 
     string[] operators = { "+", "*", "/", "-" }; 
     string[] data = text.Split(' '); 
     for(int i=0; i< data.Length; i++) 
     { 
      if((operators.Any(data[i].Contains))) 
      { 
       MessageBox.Show(data[i].ToString()); 
       var res = dt.Compute(data[i],""); 
      } 
     } 

    } 
관련 문제