2009-02-19 14 views
7

Mit neuen Funktionen in .NET 3.5 (wie var, Lambda, linq, etc) und mehr auf dem Weg können wir feststellen, dass C# nicht nur statisch typisierte Sprache, sondern auch Dynamisch eingegeben?C# Dynamisch typisierte Sprache

Warum oder warum nicht?

Edit # 1

Wie viele Plakate unten Anspruch, .net 4.0 wird das dynamische Typ-ness der Sprache hinzuzufügen. Wird das die Sprache verlangsamen?

Mit jeder Veröffentlichung nimmt csharp etwas aus verschiedenen Sprachen. Soweit .Net1.1 wollen unsere Vorfahren auch funktionale Sprache es nicht machen ....

Edit # 2

Ich denke, viele von Ihnen die Frage falsch verstanden; wie ich C# Sprache insgesamt, einschließlich der bevorstehenden Version 4.0 beziehen. Daher ist es fair zu sagen, dass die Sprache dynamisch typisiert ist ...

+0

Schön - Sie haben das Wort "dynamisch" erfunden. Ich mag das. –

+0

+1 das ist eine wichtige Unterscheidung - gute Frage! –

Antwort

12

C# wird nicht dynamisch typisiert - alle Typen werden in den von Ihnen erwähnten Beispielen statisch abgeleitet. Die nächste Version von C# wird einige dynamische Features für die Arbeit mit COM und wirklich dynamischen Sprachen enthalten.

[Bearbeiten # 1] Ja C# 's neues dynamisches Feature wird langsamer sein, da alles, was es verwendet, spätes Binden erfordert. Es wird jedoch nur verlangsamen Ihre Anwendung, wenn Sie es verwenden - es ist keine Änderung der Kernsprache selbst. C# 4 ist eine statisch typisierte Sprache mit der Fähigkeit, mit spät gebundenen Typen zu arbeiten.

[Bearbeiten # 2] Nein C# 4 wird keine dynamisch typisierte Sprache sein. C# 4 führt einen neuen dynamic-Typ ein, der anstelle von statischer Typüberprüfung Elemente vom Typ Late-Binding ersetzt. Dynamische Funktionen sind nur für diese dynamischen Typen verfügbar. Das zugrunde liegende Typsystem von C# hat sich nicht geändert.

2

Nein, ist es immer noch statisch typisierte, var/Lambda/Linq verwenden alle inferance vom Compiler so die Art zum Zeitpunkt der Kompilierung bekannt ist, dynamisch/Duck Typing mit kommen C# 4.0

+0

sollte es lesen: "Nein, es ist immer noch statisch getippt, var/lambda/linq verwenden alle vom Compiler inferance, so dass der Typ bekannt ist um ** Kompilierzeit **, dynamische/Ente Typisierung wird mit C# 4.0 kommen" –

1

Dynamisch typisierte ?! Nee. Technisch gesehen ist C# eine statisch typisierte Sprache. Es verfügt über dynamische Methoden Dispatching-Funktionen durch CLR-Reflection-Dienste von .NET-Laufzeit (die seit v1.0 verfügbar ist und hat nichts mit .NET 3.5 Funktionen zu tun, C# 3.0 Features sind noch statisch typisiert). C# 4.0 wird echte dynamische Typisierung haben.

0

Kommentare: Sind Sie dass sicher, dass dynamische Typen so leicht enthalten sein können? Ich habe das Gefühl, dass sich ihre Effekte ausbreiten werden.

+0

Interessant , auf welche Weise werden sich die Auswirkungen Ihrer Meinung nach ausbreiten? –

+0

Auf einen Blick, ich denke, dass es Methodensignaturen oder Überlastungsauswahl beeinflussen kann. Es wird interessant sein, auf diese Frage in ein paar Jahren zurückzublicken. – brianary

Verwandte Themen