BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ Language Design に関するすべてのコンテンツ

  • C# 8.xのプレビュー

    C# 8.0はまだ数ヶ月先であるが、C# 8.xの計画は始まっている。これらの機能の中には新しいものもあるが、以前にC# 8向けに検討されたものもある。

  • C# 8 Null許容参照型のアップデート

    C# 8のNull許容参照型(nullable refence types)の作業は継続されており、最終リリース前に対処する必要があるエッジケースと、開発者が書く必要がある定型コードを削減する新しい機会を明らかにしている。

  • C# 8パターンマッチングの機能強化

    C# 7はパターンマッチングの基礎を築いたが、多くの機能をCutting Room Floorに置いたままにせざるを得なかった。C# 8で追加の時間をかけて、これらのうちの多くが採用されている。

  • C#のデフォルトインターフェイスメソッドの更新

    Default Interface Methodsのサポートが完了に近づくにつれて、潜在的な問題が発生します。 多くのことが達成されているが、これは複雑な機能であり、細部の多くはまだ解決されていない。

  • C#機能: Deferredエラー処理

    堅牢なソフトウェアを書くときに、再実行可能な操作を実行することがある。システムを堅牢にするために、各操作は以前の操作状況から独立しているようにコード化できる。deferredエラーハンドリングより前は、退屈なコードであった。

  • F# 5のnull許容参照型

    C# においてnull許容参照型が導入されれば、.NET開発者によるコードの書き方がasync/await以来最も大きく変化することになる。null許容参照型が正式に利用可能になったなら、この機能を正しく動作させるために、null許容の注釈を付けて更新しなければならないライブラリーが無数にある。そして相互運用性を保証するため、F# も同じように対応する必要がある。

  • C# の機能: Defer

    GoとSwiftでよく知られるものなのであるが、C#でも提案#1398にてDeferステートメントの希望がされている。概念について把握していない方のために解説をすると、これはfinallyブロックがコードの最後でなく最初に現れるものと説明できる。

  • C#の機能 - ポインタ演算

    ネイティブプラットフォームと相互運用する場合、ポインタ操作に関して極めて特殊なコーディングパターンが必要となることがよくある。Cで記述したシム(shim)を経由すれば可能だが、 "Operators should be exposed for System.IntPtr and System.UIntPtr"と題した提案では,C#から直接提供する方法について論じている。

  • C#機能: 静的デリゲートと関数ポインター

    C#のリリースごとに低レベルの機能が追加される。ほとんどのビジネスアプリケーション開発者には不要だが、グラフィック処理、機械学習、数学的パッケージに適したハイパフォーマンスのコードを可能にする。この2つの提案で、新しく関数への参照と呼び出し方法が提供される。

  • C#機能: ラムダ属性

    属性は.NETのメタデータ処理機能の重要な部分である。属性は、コンパイラ、スタティックアナライザ、ランタイムライブラリによってさまざまな目的で使用される。通常の関数/メソッドは属性を持つことができるが、この提案以前はラムダと無名関数は持つことができなかった。

  • C# 8:ジェネリック属性

    属性は初期から.NETの一��であった。そういうものとして、ジェネリクスが導入される前に始まり、全く触れられることはなかった。CLRによってサポートされているが、この提案まではC#はジェネリック属性を使用する機能を提供していなかった。

  • C# 8:アサーションと自動テストのためのCaller Expression Attribute

    現在C#は、ファイル名/パス、行番号、呼び出し元のメソッドまたはプロパティの名前について、呼び出し元情報属性をサポートしている。Caller Expression Attributeの提案で、式がそのリストに追加される。

  • C# 8:新しいキーワードの型推論

    多くの状況では、特定の場所で許可されるタイプは1つだけである。それでもC#では、型を明示的に表記する必要がある。もしターゲット型が定まっている「new」式の提案が採用されれば、そのような定型コードは必要なくなるであろう。

  • C# と F# のデフォルトインターフェイスメソッドにおけるアップデート

    議論が盛り上がっているデフォルトインターフェイスメソッド機能はF#でも検討されている。しかしこの機能は .NET Core に限定される可能性があり、提案全体は危機に瀕している。

  • C# 7.3の新機能

    比較的小さなリリースだが、C# 7.3では、overload解決や、enumやdelegateが動作するジェネリック制限などのC# 1と2から長い間残った苦情に対応している。

BT