ClearScript으로 인터페이스되는 내 응용 프로그램의 사용자 정의 클래스에 대한 사용자 지정 연산자를 활용하려고합니다.ClearScript의 연산자 오버로드
public class Vector3 {
public float x { get; set; }
public float y { get; set; }
public float z { get; set; }
public Vector3(float x, float y, float z) {
this.x = x;
this.y = y;
this.z = z;
}
public static Vector3 operator +(Vector3 a, Vector3 b) {
return new Vector3(a.x + b.x, a.y + b.y, a.z + b.z);
}
}
내 ClearScript 엔진이 제대로 초기화되고, 나는 제대로 자바 스크립트를 통해 Vector3
객체를 초기화하고, 그에 따라 속성을 수정할 수 있습니다 : 다음은 내 예를 들어, 사용자 정의 클래스의 조각이다.
그러나 Javascript 환경에서 2 Vector3
개체를 초기화하고 Javascript 추가 연산자를 사용하려고하면 추가 연산자가 내 사용자 지정 연산자가 아니라 문자열 연결로 평가됩니다.
예 :
var a = new Vector3(1, 1, 1);
var b = new Vector3(0, 2, -1);
var c = a + b;
print(typeof a); //returns "function" (which is correct)
print(typeof b); //returns "function" (which is also correct)
print(typeof c); //returns "string" (should return function)
가변 c
만 string
([object HostObject][object HostObject]
)를 포함하는 대신 Vector3
개체.
ClearScript를 사용하여 기본 Javascript 연산자를 사용하는 대신 Javascript 엔진에서 사용자 지정 연산자를 호출하도록하려면 어떻게해야합니까?
Darn, 그게 내가 생각했던 것인데, ClearScript의 측면에서 이상한 일이 있었으면 좋겠다. 나는 당신의 솔루션을 사용할 것입니다, 고마워요! –