2012-06-21 3 views
2

Mono.CSharp의 평가자를 시험 중입니다. 이 간단한 스크립트 작업 않는 이유 :Mono.CSharp : 수학 표현 평가

int i=2,j=3; i*j;

말 "(1,2) :이 반면

int i=2,j=3; (i*j);

오류를 제공 오류 CS0246을 : 형식 또는 네임 스페이스 이름을`전 '을 (를) 찾을 수 없습니다. 지시문 또는 어셈블리 참조가 누락되었습니다 ( )?

+0

어떤 모노 버전을 사용하고 있습니까? – knocte

+0

.NET 4.0에서 Mono.CSharp 어셈블리를 사용하고 있습니다. –

+0

.NET의 버전을 묻지 않았습니다. 모노의 버전을 묻습니다 .CSharp – knocte

답변

3

모노 .CSharp 평가자는 C# 표준 문법 규칙을 따릅니다. 두 번째 예제에서는 실제로 C# 문법에 따라 로컬 변수를 선언합니다.

는 그것은

int i = 2, j = 3; 
i* j; 

컴파일러는 다른 변수 선언으로 두 번째 줄을 구문 분석하고 그것을 포인터를 "*"적용하기 전에 "I"타입으로 해결하려고 쉬운 인간의 구문 분석이에 다시 작성할 수 있습니다.

+0

감사합니다. 감각. 그러나 이러한 진술은 놀랍게도 효과가 있습니다. int i = 2; i; 여기에 관련된 유형으로 해결되지 않는 이유는 무엇입니까? –

+0

나는 그 이상을 확인했다 : 'i + j' 또는'i/j' 괜찮 으면 'i * j' 만이 오류를 준다. 내장 된 파서의 버그 일 수 있습니까? –