タグ

BuildInsiderと.NETに関するmohnoのブックマーク (3)

  • C# 7のタプルが一般的なガイドラインに沿わずに書き換え可能な構造体である背景 - Build Insider

    C#に慣れ親しんだ人からすると、この構造体に少々違和感があるかもしれない。フィールドがpublicで、書き換え可能(mutable)になっている。ガイドライン的に避けるべきとされてきた構造である。一般には以下のことが推奨されている。 (構造体に限らず)単純なデータの読み書きであってもプロパティにするべき 構造体は書き換え不能(immutable)に作るべき 先にいっておくと、別にガイドラインが変わったわけではなく、一般論としてはいまだこのガイドラインが正しい。しかし、C#の進歩によって問題が緩和された面もある。また、少ないながらガイドラインに沿わない方がよい場面もあり、ValueTuple構造体はまさにその例となる。 稿では、このガイドラインや、ValueTuple構造体がこの構造を採用した背景について説明していく。 参照戻り値/参照ローカル変数 C# 7.0でタプルと同時に実装された機

    mohno
    mohno 2017/05/23
    あー、このあたり C++ っぽいというか、C++ の方がわかりやすいと思う部分だなあ。あと、タプルは要らんと思ってたけど、便利そうなんだよなあ。4.7を気にしなくてよくなるのはいつの日か。
  • C# 7.0で知っておくべき10の新機能(後編)

    Visual Studio 2017およびVisual Studio Codeで利用可能になったC#言語の新バージョン「7.0」の新機能を、公開されている議論を基に解説。前編として「パフォーマンス向上」と「コード記述の単純化」に関連する6つの新機能を説明する。 ← 前回 連載 INDEX 前編では「データ中心設計」に関連する4つの新機能を説明した。後編である今回は、その続きとして「パフォーマンス向上」と「コード記述の単純化」に関連する6つの新機能を説明する。 稿ではC# 7.0で追加される機能を10個に分け、さらに「データ中心設計」「パフォーマンス改善」「コードの書きやすさの向上」の3つに分類して紹介する。 【C# 7.0新機能の一覧】 データ中心設計: 1outパラメーター付き引数での変数宣言(Out Var) 2パターンマッチング(Pattern matching) 3タプル(Tup

    mohno
    mohno 2017/02/25
    前編とともによくまとまっているんだが、「リスト31」は「ローカル関数でスタックを消費しない記述」ができるんじゃなく「階乗でスタックを消費しない記述」ができるって話だよな。
  • オープンソースのC#/Roslynプロジェクトで見たこと、感じた教訓

    を代表する「C#(でぐぐれ)」の人、岩永信之氏によるコラムが遂に登場。今回はオープンソースで開発が行われているC#と開発者の関わり方について。 連載 INDEX 次回 → 日はRoslynについての話をしていきたい。Roslynは、オープンソースで開発されている新しいC#とVisual Basicのコンパイラーである。“Roslyn”という名称はコードネームで、最終的な製品名は.NET Compiler Platformとなった。 製品名が決まった一方で、GitHubのリポジトリ名はRoslynのままとなっている。これが、稿のタイトルに「Roslyn」という言葉を残した理由である。つまり、日の主題はオープンソース化され、GitHub上で公開されている「Roslynプロジェクト」自体の話である。 Roslynプロジェクトがオープンソース公開されたのが2014年の4月ごろで、1年半ほ

    mohno
    mohno 2015/11/02
    この連載は期待。「こんな悪夢のような悪用コードも、発見されるまでに結構な時間がかかっている」←Andersが「新機能の導入に保守的なのは、いったん導入すると不都合があってもやめられないから」って言ってたなあ。
  • 1