2010-12-23 4 views
1

(Iron) Ruby와 같은 동적 언어로 .NET을 작성할 가능성에 혼란 스럽습니다. 특히 제네릭 (...foo[String])을 사용하는 IronRuby의 코드를 보았지만 동적 언어로 나에게는 나에게 넌센스 인 것처럼 루비에서이 기능을 알지 못합니다..NET을 동적 언어로 작성 하시겠습니까?

IronRuby에서 .NET 응용 프로그램을 작성할 때 유형 안전성 및 컴파일 기능은 어떻게됩니까? Ruby만큼 강력하다고 생각했습니다. 루비 구문이 괜찮 으면 모든 유형 검사가 런타임에 완료 될 것이라고 생각했습니다.

또한 내가 아는 한 .NET 자체는 유형 지향적입니다. 언급 된 제네릭을 많이 사용하는 클래스가 있습니다. 어떻게 처리됩니까?

그리고 대표는 어떻습니까? 동적 인 언어에서 나는 거의 기능 - 스파게티를 가끔 가질 수있다. 자바 스크립트에서 UI를 해킹하는 것처럼 잘한다.

일반 대표자에 대해서도 신경 써야합니까?

dynamic dynamicReference = "Hello"; 

따라서 : C# 및 VB .NET과 같은 심지어 언어는 이제 할 수있는 대신 .NET 4 이후

string strongTypedReference = "Hello"; 

의 (선택) 동적 예를 들어 지금 마음에

+0

일반 Ruby에서와 같이 코드를 작성합니다. 제 생각에는 네이티브 확장 (C로 작성)을 사용할 수 없습니다. 어쨌든 IronRuby를 대상으로 qutie 대형 스크립트를 작성했습니다. 그런 다음 변경없이 일반 Ruby 1.9로 전환했습니다. 유일한 차이점은 : 루비 1.9는 10 배 빠른 시작 :) – Alexey

답변

1

곰 :

strongTypedReference.Foo() // gives a compile-time error as expected. 
dynamicReference.Foo() // compiles, but will give a run-time error. 
dynamicReference.ToString() // compiles and binds to the correct call at run-time. 

동적으로 컴파일러는 메서드 호출, 속성 접근 자 컴파일 타임에하지만 런타임에 대신. 이는 .NET에서 동적 타이핑을 제공하는 모든 언어에 적용됩니다. IronRule, IronPython, C#, VB 등

관련 문제