DelphiはC#言語にどのように影響しましたか


8

私は特に(フレームワークではなく)言語の影響を探しています。一見すると、C#はC / C ++またはJavaの進化のようです。しかし、C#はDelphiと同じデザイナーを持っていることを知っています。彼はいくつかの類似点を認め、「優れたアイデアはただ消えるだけではない」とさえ述べています。JavaまたはC / C ++にないC#の何かについて私が見た1つの例はプロパティです。それですか?他にありますか?


彼らの一部が実際にしたのは本当の恥です。それはDelphiのは、中に利用できる持っていたことを、動的機能再実装する.NETの人々がかかった時間を見てvariant、かなり永遠以来のタイプを...
メイソンウィーラー

ありがたいことに、彼らはBEGINとENDにこだわらなかった...
ニュートピア

2
@Newtopian:では、読みやすい単語よりも句読点を好むのですか?APLの一種のプログラマーですか?
ジムマッキース、2011

Turbo Pascal(Delphiの祖先)は、MicrosoftのC#言語のチーフアーキテクトであるAnders Hejlsbergによって書かれました。点を結びます。
ロバートハーベイ

5
私はそれが可能だと思うので、APERSANDJim結腸yesCOMMAは、私はずっと彼らの英語pronounciationEXCLAMATIONMARKの上に句読点を好む全部はるかreadablePOINT COLONのDASHのSEMICOLON
Newtopian

回答:


4

プログラマには見えないほどですが、舞台裏ではかなりですが、それらの多くは言語自体ではなく、IDEおよびWindowsフォームコントロールのデザインにありました。私はDelphi 7を約10年間使用していますとC#は約5なので、いくつか取り上げました:

1)anchorsプロパティはDelphiと同じです

2)フォームのデフォルト位置

3)コントロールのオブジェクト階層

4)フォームデザイナーは一般的に非常によく似ています。

私が気づいた言語自体のいくつかのこと:

1)特定のデータ型、別名通貨/ 10進数

非常に異なる言語のいくつかのこと:

1)コンストラクターの継承(すべてのコンストラクターを継承するために使用されたDelphiは、子孫クラスで再度定義する必要がなかった基本オブジェクトへ)

2)Delphiには、子孫クラスのメソッドまたはプロパティの可視性をダウングレードする機能がありますが、ポリモーフィズムはそのままにしてください。C#ではこれを許可していません(これは非常に見逃しています)。

たぶん、見逃してしまいました。思いついたら追加してください。


言語設計者に、基本クラスから継承された外部のインターフェイス、派生クラスの外部のインターフェイス、および基本クラスが派生クラスに提示するインターフェイスを明確に認識してほしいと思います。さまざまなクラスが機能のセットを重複させる場合、それらの異なる組み合わせを公開するさまざまなクラスをラップするよりも、メンバーと一緒にそれらのすべての機能を公開する共通の基本クラスまたはインターフェースをラップして、どれが実際に使用できるかを示す方がはるかに簡単です能力; ただし、派生クラスがなぜしなければならないのかという理由はありません...
supercat

... expose-(基本タイプとは対照的に)独自のタイプのメンバーとして-独自のタイプで実際に使用できないメンバー。CanWoozleプロパティがtrueを返す派生クラスは使用可能なWoozle()実装を提供する必要があるが、特定の派生クラスは常にfalseを返しCanWoozle、正当に使用できないWoozle実装があると基本クラスのコントラクトが言っている場合、派生クラスがそのWoozleメンバーを公​​開する必要がある理由はありません。
スーパーキャット2015年

2

アンダースはDelphi 3までBorlandに在籍していました-彼はDelphiとTurbo Pascalの最初の建築家でした。Delphi 1をロードする場合は、aboutボックスを表示して入力すると、ウィンクしているAndersの画像が表示されます。

彼がMSのためにボーランドを去ったとき、彼は最初にJ ++をしました。次に、C#を作成しました。参加する必要があるドットは、Borland Object Pascal-> Java / J ++-> C#から移動します。

C#は、より優れたJavaを作成するためのMicrosoftの試みです。古いDelphiコーダーとして、私はおそらくそれらが成功したことを受け入れます。


1
C#が「より良いJavaを作成する」ための試みであることには同意しません。C#設計チームにはJavaの専門家がいますが、言語機能を設計するときにJavaと明示的に比較することはほとんどありません。
Eric Lippert、2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.