タグ

ブックマーク / ufcpp.net (10)

  • C# での破壊的変更の今後の扱い(案)

    C# は、進化していくにあたって、破壊的変更を極力起こさないようにかなり気を使っているプログラミング言語です。 細かい話をすると破壊的変更も皆無ではないんですが、 破壊的変更を認める(認めてでも追加したい新機能を実装する)ハードルは結構高めです。 そんな C# ですが、ちょっとそのハードルの基準を緩められないかというような話が出ています。 Dealing with limited breaking changes in C# その後の Design Meeting 議事録 補足: 影響範囲と、影響力の軽減 補足として、 ハードルを緩めるといっても当にちょっとです。 C# チームは、「GitHub の public リポジトリを検索して、実際に影響を受けたコードを探す」とかやって既存のコードに対する影響を評価してたりするんですが、 これまで: 単体テストとかでわざと変なコードを書いているも

    C# での破壊的変更の今後の扱い(案)
    Wacky
    Wacky 2023/03/13
  • 【C# 12 候補】 Extensions

    今日は「拡張」(拡張メソッド的なものの改良)の話。 (今日のこれは、C# 12 で全て実装されるかどうか怪しく、 一部 13 以降になる可能性も結構高いです。) 提案ドキュメント: Extension types Working Group 議事録 2022/11/10 2023/1/23 2023/1/25 2023/2/15 結構昔から、 Extension everything: 拡張メソッドと同じような仕組みでプロパティ、インデクサー、演算子などを「拡張」したい Roles: 「拡張」をある種の「型」扱いしたい みたいな案があったんですが、結局、この Roles をベースに、Extensions とか Extension types という名称で実装が進みそうです。 原案で「Roles/Extensions」と呼ばれていたものは、「Explicit /Implicit extens

    【C# 12 候補】 Extensions
    Wacky
    Wacky 2023/03/07
  • await って言う単語

    C# 5.0で非同期メソッドが導入されてから、 正式リリースを基準にしても5年以上、 最初の発表からだと7年以上経っています。 で、5年経っても、「なんて読むの」「asyncのaとawaitのaは違う」などなどが「定番ネタ」として定期的に出てくるわけですが。 特に、ECMAScript 2017がasync/awaitを導入したり、 Unity 2017がやっとC#のバージョンを6.0に上げれる感じになってきたり、 5年の断絶を経て去年からasync/awaitに触れる人が増えているようです。 5年も離れたら、世代断絶も起こりますよね… そりゃ、「定番ネタ」が改めて増えもしますよね… ということで、5年くらい前に同じようなことをどこかで書いてるはずなんですけど、改めて。 英単語 えいしんく まず読み方。 async: エイシンク await : アウェイト ってやつ。async の方が「ア

    await って言う単語
    Wacky
    Wacky 2020/12/13
  • 祝 .NET 5.0 リリース: .NET Core 3.1 からの移行話

    祝 .NET 5.0 GA。 Announcing .NET 5.0 C# 9.0 on the record Visual Studio 2019 v16.8 and v16.9 Preview 1 Release Today Announcing ASP.NET Core in .NET 5 Visual Studio 2019 16.8 リリースノート Visual Studio 2019 18.9 Preview 1 リリースノート .NET Conf 2019 - Day 1 ライブ配信 一応注釈なんですが、 .NET は以下のような状態です。 .NET 5.0 からは単に「.NET」になります .NET Framework, Standard, Core の統合結果です TargetFramework 名、 net5.0 で、 netstandard2.1 と netcorea

    祝 .NET 5.0 リリース: .NET Core 3.1 からの移行話
    Wacky
    Wacky 2020/11/24
  • [雑記] 仮想関数テーブル

    概要 「仮想メソッド」というものがどういう仕組みで実現されているのかを説明します。 (C / C++ の知識がある程度必要なので、 その辺りが全く分からない場合には内容が高度すぎるので読み飛ばし推奨。) 「.NET Framework」 の 「IL」 は、 仮想メソッド呼び出し用の命令を持っていたりします。 ですが、一般的な PC に使われている CPU が「仮想メソッド呼出し命令」みたいなものを持っているわけではなく、 .NET Framework が適切な命令に置き換えて仮想メソッド呼び出しを実現してくれています。 (要するに、C# プログラマにとっては気にする必要のない部分です。 このページの内容は、「でも中身の分からないものを使うのはなんとなく不安」という人向けです。) 一般に、仮想メソッド呼び出し(C++ など、言語によっては仮想関数呼び出しという言い方をします)は、 仮想関数テ

    [雑記] 仮想関数テーブル
  • ++C++ ; // 未確認飛行 C // .NET Framework 3.0

    クラスライブラリ 正規表現(文字列パターン マッチング) 文字列の書式設定 コレクション コレクションの内部実装 .NET Framework 概要 Windows Presentation Foundation 概要(WPF) XAML 概要(WPF) XAML の基構造(WPF) XAML の高度な機能(WPF) WPF のコンテナ(WPF) WPF の GUI 要素(WPF) XAML とプログラムコード(WPF) データバインディング(WPF) テンプレート(WPF) アニメーション(WPF) Windows Communication Foundation 概要(WCF)

    ++C++ ; // 未確認飛行 C // .NET Framework 3.0
    Wacky
    Wacky 2008/02/10
  • C# によるプログラミング入門 [データ処理] LINQ

    概要 Ver. 3.0 C# 3.0(そして、同時に発表された VB 9.0)の目玉となる新機能は、 Language Integrated Query、略して LINQ と呼ばれるもので、 リレーショナルデータベースや XML に対する操作をプログラミング言語に統合するものです。 LINQ を用いることで、様々なタイプのデータソースに対する検索や操作を、 共通の構文で行うことができます。 IEnumeable を実装するコレクションクラスに対するもの(LINQ to Object)や、 XML に対するもの(LINQ to XML)、 それに、リレーショナルデータベースサーバに対する SQL クエリを生成するもの(LINQ to SQL)などがあります。 LINQ には以下のような利点があります。 オブジェクト指向言語らしい書き方でデータベースへの問い合わせができます。 in-memor

    C# によるプログラミング入門 [データ処理] LINQ
    Wacky
    Wacky 2008/01/11
  • ジェネリック

    概要 C# 2.0 で、 C++でいうところのテンプレート、一般にはジェネリック(ジェネリクス)などと呼ばれるものが実装されました。 (C++ のテンプレートとは少し仕様が異なりますが。) ジェネリック※(generics:総称性)、 あるいは、総称的プログラミング(generic programming)とも呼ばれますが、 この機能は、 さまざまな型に対応するために、型をパラメータとして与えて、その型に対応したクラスや関数を生成するもの機能です。 ポイント ジェネリック: 型だけ違って処理の内容が同じようなものを作るときに使う。 ジェネリッククラス:IComparable<T> { int CompareTo(T x, T y); } ジェネリックメソッド:T max<T>(T x, T y) { ... } ※genericsの訳語 英語だと、名詞では generics、形容詞が ge

    ジェネリック
    Wacky
    Wacky 2007/03/11
    型引数で与えた型でメソッド呼び出しをしたい場合などには、 where キーワードを使って型に制約条件を付加します。
  • C# 3.0 の新機能

    2005年9月、C# 2.0 の正式出荷を目前にして、 C# の次世代拡張 C# 3.0 の言語仕様が公開されました。 C# 3.0(そして、同時に発表された VB 9.0)の目玉となる機能は、 Language Integrated Query、略して LINQ と呼ばれるもので、 リレーショナルデータベースや XML に対する操作をプログラミング言語に統合するものです。 (データベースや XML 操作用のライブラリと、 プログラミング言語中にSQL 風の問い合わせ構文を埋め込めるようにする言語拡張から成ります。) C# 3.0 に追加された機能の多くは、基的にこの LINQ を使うために必要な機能、 あるいは、より便利に LINQ を使うための機能になります。 ちなみに、詳しくは「小さな機能の組み合わせ」で説明していますが、 LINQという大きな目的を、小さな機能の組み合わせで実現し

    C# 3.0 の新機能
    Wacky
    Wacky 2006/02/04
  • C# によるプログラミング入門 / ++C++;// 未確認飛行 C

    C# によるプログラミング入門です。C# 初心者の方はもちろん、これからプログラミングを始めようという方も対象としています。

    C# によるプログラミング入門 / ++C++;// 未確認飛行 C
  • 1