タグ

dotnetとcsharpに関するamberjack115のブックマーク (10)

  • .NET非同期処理(async-await)を制御する、様々な方法

    async-awaitベースの非同期処理を制御する方法をまとめました。コードはわざと冗長に書いています。 概要: Taskベースのワーカースレッド生成 他の非同期I/Oと連携してタスクを制御する方法 TaskとLINQを応用して、多量の計算を安全に並列実行させる方法 Taskを使っていない非同期処理をTask化する方法 非同期処理のキャンセルの実現方法 WinRT・ユニバーサルWindowsアプリケーション(UWP)での非同期処理とTaskの連携方法 読む前に補足 C#でTaskやasync-awaitを使った非同期処理の書き方を探しているのであれば、ポイントに絞って書いた、こちらの記事をお勧めします: 「できる!C#で非同期処理(Taskとasync-await)」 Taskクラスの使用例として、ワーカースレッドを起動するという例が良く挙げられます。記事も最初にTask.Runによるワ

    .NET非同期処理(async-await)を制御する、様々な方法
  • プライマリコンストラクタ - xin9le.net

    今回取り上げるのは「プライマリコンストラクタ」です。テキトーな日語に直すと「一次コンストラクタ」などといった感じになるのでしょうか。この機能を簡単に説明すると、コンストラクタをひとつだけ定義する機能です。それでは順番に見て行きましょう。 とりあえず使ってみる 最小限のサンプルを書いてみるとすると以下のようになります。クラス名の横に関数の引数のような記述がされているのが分かります。このクラス定義 + コンストラクタみたいな書き味がプライマリコンストラクタです。これだけで、「string型のtitleという名前の変数を1つだけ引数に取るコンストラクタを持つBookクラス」が表現できます。 class Book(string title) {} このプライマリコンストラクタの引数は、前回紹介した自動実装プロパティ初期化子やフィールドの初期化に利用できます。例えば以下のような感じです。 clas

    プライマリコンストラクタ - xin9le.net
  • 自動実装プロパティ初期化子 - xin9le.net

    「Try! C# vNext」ということで、次期C#の新機能を少しずつ試していきたいと思います。まず最初は自動実装プロパティ初期化子 (= Auto-property initializers) です。これまではメンバー変数の初期化はクラス宣言と同時にできたのですが、自動実装プロパティはコンストラクタなどでしか初期化ができませんでした。その制約を取り払い、より簡潔な記述を可能にしようというものです。 とりあえず使ってみる 使い方は簡単で、以下のように自動実装プロパティに対して値を代入するように記述するだけです。 class Book { public string Title{ get; set; } = "Untitled"; public int Price{ get; set; } = 100; } これは以下の書き方と等価です。定型的な初期化するだけのコンストラクタがほぼほぼ不要に

    自動実装プロパティ初期化子 - xin9le.net
  • 例外フィルター - xin9le.net

    例外処理はtry句でスローされる例外の型に応じて処理を書き分けます。また、ひとつの例外の型でエラー条件が分かれる場合はcatch句の中にif文を書いて分岐します。例えば以下のような感じです。 try { //--- SQL Serverへの何らかのアクセス } catch (SqlException ex) //--- SqlExceptionの派生クラスに関する例外処理 { if (ex.Number == 1205) { //--- デッドロック発生時 } else { //--- デッドロック以外のSqlExceptionに関する処理 } } catch (Exception ex) { //--- その他のすべての例外 } C# vNextではこのエラーの条件分岐 (= if文) に当たる部分をcatch句の一部として書けるようになりました。つまり、catch句で引っ掛ける例外のフ

    例外フィルター - xin9le.net
    amberjack115
    amberjack115 2014/08/31
    #ILSpyよ…
  • nameof演算子 - xin9le.net

    これまでC# vNextの新機能についていくつか紹介してきましたが、個人的にラムダ形式プロパティよりも、null伝搬演算子よりも、catch/finally句で利用できるawait演算子よりもずっと ×2 興奮したのが今回取り上げるnameof演算子 (nameof operator) です。簡単に言うと、変数名や関数名などをサクッと取得するためのキーワードです。 とりあえず使ってみる nameof演算子の利用方法は以下のような感じです。このように、非常にカジュアルに利用することができます。 var n1 = nameof(value); var n2 = nameof(Console); var n3 = nameof(Console.Title); var n4 = nameof(Console.WriteLine); //--- それぞれの変数の値 /* n1 = value n2

    nameof演算子 - xin9le.net
    amberjack115
    amberjack115 2014/08/31
    #これは良い。もっと早く欲しかった / 実行時に評価されるわけじゃないってのはちと落とし穴っぽいが
  • null条件演算子 - xin9le.net

    三項演算子はひとつの式の中で条件式を表現できて非常に便利です。言うまでもないかもしれませんが、例えば以下のような書き方ができます。 var name = "じんぐる"; return name == null ? "不明" : name; /* //--- 以下と同じ意味 var name = "じんぐる"; if (name != null) return name; return "不明"; */ 上記のような書き方は全然問題ないのですが、「値をnullと比較して、nullでなければそのまま値を返し、nullだったら既定値を返す」という処理は定型句として結構あります。そこでこの定型句をより短く記述するため、C# 2.0でnull合体演算子という短縮形が追加されました。とても簡潔ですね。 var name = "じんぐる"; return name ?? "不明"; null条件演算子

    null条件演算子 - xin9le.net
    amberjack115
    amberjack115 2014/08/31
    #null合体演算子との組み合わせ良いな
  • Browse learning | Microsoft Docs

    Created with Sketch. image/svg+xml image/svg+xml image/svg+xml

    Browse learning | Microsoft Docs
  • C#で始めるテスト駆動開発 ~TDDBC横浜の課題をやってみよう

    はじめに 各地でTDD Boot Camp(TDDBC)が開催されるようになり、このところTDD(テスト駆動開発)が注目を浴びています。ただ、自分でも試してみようと思った時に目につく書籍や記事などは、JavaRubyPHPといった、いわゆるオープンソース系の言語ばかり。.NET Framework(Windows)で開発の仕事をしているとTDDは関係ないんだろうか、…とさえ思えてくるかもしれません。 しかし、そんなことはありません。.NET FrameworkでのTDDに必須のユニットテストフレームワークとして有名なNUnitの最初のバージョンは、Visual Studio .NET 2002がリリースされる以前の2001年に公開されています。.NET Frameworkは、生まれたときからTDDと共にあると言っても過言ではないでしょう。 この記事では、TDDとTDDBCについて簡単に

    C#で始めるテスト駆動開発 ~TDDBC横浜の課題をやってみよう
  • What's New in SQL2016 CTP2 Release - MSDN Blogs

    In Visual Studio 2022 17.10 Preview 2, we’ve introduced some UX updates and usability improvements to the Connection Manager. With these updates we provide a more seamless experience when connecting to remote systems and/or debugging failed connections. Please install the latest Preview to try it out. Read on to learn what the Connection ...

    What's New in SQL2016 CTP2 Release - MSDN Blogs
  • C#ラムダ式 基礎文法最速マスター - @IT

    ■0. まえがき 稿では、小さいテーマではあるが、まだまだ慣れ親しんでいない開発者が少なくないと考えられる「ラムダ式(C#)」についての基礎文法を簡潔にまとめる。「ラムダ式、どう書くんだっけ?」という場合のリファレンスとして活用していただけるとうれしい。また、ラムダ式を敬遠しているという方は、まず稿が学び始める取っ掛かりになるかもしれない(もちろん稿の説明は充実しておらず、すべてを学べるわけではないので、じっくり学ぶには「連載:C# 3.0入門 第1回 ラムダ式」を参照してほしい)。 今年(2010年)に入ってインターネット上では、プログラミング言語の基文法を簡潔にまとめた「○○言語 基礎文法最速マスター」(以降、最速マスター・シリーズ)というブログ記事が多数投稿されている。参考までに、そのいくつかを示そう(そのほかについては、こちらを参照されたい)。 C#基礎文法最速マスター:n

  • 1