タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

C#に関するspherical-mossのブックマーク (21)

  • neue cc - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの原理原則

    リンク集はこちら。 #01 2009-04-04 linq.js #02 2009-10-29 AnonymousComparer #03 2010-04-07 DbExecutor #04 2010-04-30 DynamicJson #05 2010-07-15 XStreamingReader #06 2010-09-12 ReactiveOAuth #07 2011-02-22 Chaining Assertion #08 2011-10-17 ReactiveProperty #09 2012-02-18 ImplicitQueryString #10 2012-04-02 HashMapper #11 2012-12-03 MemcachedTranscoder #12 2013-02-27 AsyncOAuth #13 2013-04-05 CloudStructures #

  • [C# / WPF] 最新のC# 6.0でMVVMパターンを実装する - Qiita

    こんにちは、Niaです。 C#の最新バージョン「6.0」になって、自動実装プロパティの強化やnull条件演算子など、便利な機能が追加されましたね。 C# 6.0で知っておくべき12の新機能 - Build Insider http://www.buildinsider.net/language/csharplang/0600 今回はC# 6.0でWPFアプリでよく使うMVVM(Model-View-ViewModel)パターンを実装したプログラムを作成し、C# 5.0と比べてコードがどう変化するか見ていきましょう。 ここでは例として、RSSフィードを取得するプログラムを作成します。 1. C# 5.0でMVVMパターンを実装 まずはC# 5.0でRSSフィードを取得するプログラムを以下に示します。 1.1. Model(RSSModelクラス) // *** 中略 *** // RSSリー

    [C# / WPF] 最新のC# 6.0でMVVMパターンを実装する - Qiita
  • 初心者が迷ったReactivePropertyを使用したView Modelの設計 - tmori3y2のブログ

    ReactivePropertyは、 データソースのデータ型(DTO: Data Transfer Object) それに毛(INortifyPropertyChanged)が生えた程度のPOCO (Plain Old CLR Object) との相性が抜群な上、 Rxで処理を記述出来る ので、複雑でない場合はView Modelでの実装が中心になります。 使用方法の詳細は、かずき大先生のこちらの記事が詳しいです。 通常のView Modelを実装する場合との比較もあるので、メリットが良く分かると思います。 blog.okazuki.jp さて、ReactivePropertyの大きな特長は、 通常、ModelやView Modelのクラス体に実装されているINortifyPropertyChangedの実装パターンがプロパティクラスにカプセル化されていること 通常、View Model

    初心者が迷ったReactivePropertyを使用したView Modelの設計 - tmori3y2のブログ
  • MVVMのModelにまつわる誤解 - the sea of fertility

    こちらに移転してきて初めての記事です。 最近たまに話題になるので書いておきます。MVVMのModelについて誤解されやすい部分のお話です。最近よく議論してるasync/awaitの話とは関係がありません。なおこの話は以下のスライドを理解している事が前提となります。 共有したい理解(ゴール) ViewModelはModelの影 ModelについてViewModelが行うことは、イベントに対する反応と戻り値のないメソッドの呼び出ししかない事 これについての理解を共有できるよう説明していきます。 VIewModelはModelの影 スライドにもしつこく書きましたが、MV○(MVVMやMVC/MVP)のModelは大変分厚くなるし、アプリケーション間で使いまわすことなんてできません。ModelはUIを意識しない??いや、何度も言っていますが、意識はする必要があるんです。ただUI実装の知識が必要ない

    MVVMのModelにまつわる誤解 - the sea of fertility
  • WPF + MVVM初心者が躓きReactivePropertyに救われたこと - tmori3y2のブログ

    WPF + MVVMで開発を始めて、半年ほどの初心者です。 WPF+MVVMは初心者に優しくない(=習得が難しい)なっと思った部分をReactivePropertyに拾ってもらって、ようやく先に進めるようになってきました。 多分、同じように躓く人は多いのではないかと思われたので、これまで感じたことを初心者目線で書きたいと思います。 間違っていたら、指摘をお願いします。ブログ始めたのはそれが目的なので。 さて、インターネットを彷徨って、かずき大先生のBlogに辿り着き、 blog.okazuki.jp 「これなら、自分みたいな面倒臭がり屋でもいける。」 「後続の開発者にも、『WPF+MVVMの習得が難しい』と恨まれないだろう」 というわけで、ReactivePropertyでいきなりWPF+MVVMを始めました。(実際には予備調査を散々しましたが・・・) 面倒臭くないっていうのは非常に重要で

    WPF + MVVM初心者が躓きReactivePropertyに救われたこと - tmori3y2のブログ
  • INotifyPropertyChanged実装のありえない面倒くささと、ReactivePropertyの信じられない素晴らしさ - Qiita

    期待 MVVMや双方向バインディングでは、バインドしたViewModelの更新を画面に反映して欲しいです。 そのような場合、ViewModelにINotifyPropertyChangedインターフェイスを実装して実現するようです。 INotifyPropertyChangedを実装する方法 方法 : INotifyPropertyChanged インターフェイスを実装するに、従って実装します。 using System; using System.ComponentModel; using System.Runtime.CompilerServices; namespace WpfApplication1 { public class ViewModel : INotifyPropertyChanged { public event PropertyChangedEventHandler

    INotifyPropertyChanged実装のありえない面倒くささと、ReactivePropertyの信じられない素晴らしさ - Qiita
  • [UWP] 入門007:定期的に処理を行う(タイマーイベント) | 眠るシーラカンスと水底のプログラマー

    [UWP] 入門007:定期的に処理を行う(タイマーイベント) 火曜日 , 1, 3月 2016 mac WinRT(UWP), UWP(Win 10), 入門 Leave a comment 記事はUWP(Universal Windows Platform)の入門記事第7回です。 今回は定期的に(もしくは特定の時間後に)処理を行うタイマーイベントについて紹介します。 概要 記事では以下のことが学習できます。 ・タイマーイベントの方法 ・UIスレッドについて 環境条件 記事は以下の環境を前提としてます。 ・Windows 10 OS(Pro以上) ・Visual Studio 2015(+UWP SDK) ・言語はC#を用いて解説します タイマーイベント(DispatcherTimer) UWPで利用できるシンプルなタイマーはDispatcherTimerです。 Dispatche

    [UWP] 入門007:定期的に処理を行う(タイマーイベント) | 眠るシーラカンスと水底のプログラマー
  • neue cc - asyncの落とし穴Part3, async voidを避けるべき100億の理由

    だいぶ前から時間経ってしまいましたが、非同期の落とし穴シリーズPart3。ちなみにまだ沢山ネタはあるんだから!どこいっても非同期は死にますからね! async void vs async Task 自分で書く場合は、必ずasync Taskで書くべき、というのは非同期のベストプラクティスで散々言われていることなのですけれど、理由としては、まず、voidだと、終了を待てないから。voidだと、その中の処理が軽かろうと重かろうと、終了を感知できない。例外が発生しても分からない。投げっぱなし。これがTaskになっていれば、awaitで終了待ちできる。例外を受け取ることができる。await Task.WhenAllで複数同時に走らせたのを待つことができる。はい、async Taskで書かない理由のほうがない。 んじゃあ何でasync voidが存在するかというと、イベントがvoidだから。はい。b

  • 非同期メソッド入門 - xin9le.net

    .NET Framework 4.5 / C# 5.0 から提供された非同期メソッドについての連載インデックス インデックス 非同期処理の歴史 非同期メソッドの概要 async修飾子とawait演算子 任意の記述場所 UIスレッドとの同期 戻り値 例外処理 非同期メソッドの内部実装 内部実装を覗く コンパイラ要件 Awaitableパターンの自前実装 WinRTとの相互運用 Rxとの相互運用 落ち穂拾い NET Framework 4.5以外でawaitする コンパイラ要件違反 単体テストの記述方法 機械的読み替えに注意 非同期勉強会 / Community Open Day 2012 その他の資料/動画 非同期勉強会 資料 Community Open Day 2012 資料 Three Essential Tips for Async @ITでの連載

  • [C#]タスクのキャンセル方法

    前書き普段C#ではほんとスクリプトみたいなちまーっとしたものしか作らないので、たまにTaskのキャンセル処理を入れようとするとどうやるのか忘れてしまっています。 と言うわけでメモしておきます。 CancellationTokenSourceを作成する何はともあれCancellationTokenSourceを作成します。 Taskに指定するCancellationTokenはこのTokenプロパティが持っています。 また、実際にキャンセルするメッセージを発行するのはCancellationTokenではなくCancellationTokenSourceの方です。ちょっとコードを書いてみましょう。 private CancellationTokenSource _tokenSource = null; private void btnStart_Click(object sender, Ev

    [C#]タスクのキャンセル方法
  • 【雑記】イベントの購読とその解除

    概要 C# の event 構文の問題と、その解消方法について説明します。 サンプル https://github.com/ufcpp/UfcppSample/tree/master/Chapters/Event/Observable ポイント イベントには発生側と受取側があって、発生側に受取側を登録する口が必要。 C# の event 構文は、このイベント登録口を作るための構文。 ただ、結構使いにくい。 Reactive Extensions使うのがいいんじゃないかな。 まず、イベントについておさらい。 ↓こういうの。「発生側」と「受取側」を明確に分離するためのパターン。 イベントの概要 event source, observable, event sender, ... など、呼び方はいろいろありますが、流儀や文脈の差であって、だいたい同じものです。 event 構文のおさらい C#

    【雑記】イベントの購読とその解除
  • ラムダ式(C# によるプログラミング入門)

    概要 Ver. 3.0 ラムダ式(lambda expression)と言うのは、 関数型言語と呼ばれるような種類のプログラミング言語における用語なのですが、 関数(メソッド)を整数などの変数と全く同列に扱う手法のことです。 C# 3.0 で導入されたラムダ式は、 以下のようなものだと思ってください。 「デリゲート」に対して代入すると、「匿名メソッド式」と同じ扱いになる。 Expression 型の変数に代入すると、式木(expression tree)データになる。 ポイント C# 3.0 で導入されたラムダ式には、2通りの意味があります。 匿名メソッドを 2.0 の頃の記法より簡単に書ける。 上述の匿名メソッドと同じ記法で式木を作れる。 例:Func<int, int> square = x => x * x; 匿名メソッドの記法の簡略化 まず、1つ目。 ラムダ式は、 C# 2.0 の

    ラムダ式(C# によるプログラミング入門)
  • ローカル関数と匿名関数

    概要 C# には、関数内に関数を書く方法として、ローカル関数と匿名関数という2つの機能があります。 いずれも共通して、以下のような性質があります。 定義している関数の中でしか使えない 周りの(定義している関数側にある)ローカル変数を取り込める ローカル関数の方ができることは多いですが、書ける場所は少なくなります。 匿名関数はその逆で、できることに少し制限がある代わりに、どこにでも書けます。 サンプル コード: https://github.com/ufcpp/UfcppSample/tree/master/Chapters/Functional/LocalFunctions Ver. 7 C# 7では、関数の中で別の関数を定義して使うことができます。 関数の中でしか使えないため、ローカル関数(local function: その場所でしか使えない関数)と呼びます。 例えば以下のように書けま

    ローカル関数と匿名関数
  • LINQチートシート的なもの - Qiita

    UnityのC#のコード(幾つかの公式Assetとか)読んでたらFindとかいっぱい使ってあって悲しくなったんでLINQのメソッド一覧的なの作ってみました。 お願いだからforeach+List.AddじゃなくてSelect使ってとか お願いだから引数配列じゃなくてIEnumerableにしてとか なんでforeach回すだけなのにToArrayやってるの?とか 明らかに適切な場所じゃないとこで使っていて悲しかったんや・・・ とりあえずこんな事できるよ~的なの作ってみました。 とりあえずC#書く人なら常識的なところ辺りまで ※ファイルの頭に当然using System.Linq;入れています ※ソースコード形式です。各メソッド最後の行は出力を示します ※IEnumerableをシーケンス表記で統一しています。(リストと読み替えてもいいと思います) ※LINQは基的に少しだけ低速ですが気に

    LINQチートシート的なもの - Qiita
  • C# によるプログラミング入門

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

    C# によるプログラミング入門
  • For X Developers: 【C#の定数】const と static readonly の使い分け

    C#で時々迷う定数定義,const と static readonly の使い分けに関するまとめ. const constフィールドは,コンパイル時定数の扱い.(MSDN ) 変数のように扱える定数(暗黙的 static) 宣言時にのみ初期化可能(コンパイル時に値が埋め込まれる) readonly より実行速度が速い switch文やデフォルト引数に使える インスタンスを new した結果は割り当てられない(C#の組み込み型のみ) readonly readonlyフィールドは,実行時定数の扱い.(MSDN) 実際は,読み取り専用の代入不可な変数 宣言時の他に,コンストラクタ内でも初期化可能 定数であるconstよりは,僅かに実行速度が遅い switch文やデフォルト引数には使えない インスタンスを new した結果を割り当てられる static readonly constが使いたいけど

    For X Developers: 【C#の定数】const と static readonly の使い分け
  • neue cc - グラニのC#フレームワークの過去と未来、現代的なASP.NETライブラリの選び方

    Build Insider MEETUP with Graniというイベントで、グラニのC#フレームワーク(というほどのものはない!)の今までとこれからってのを話しました。 そのうちBuild Insiderで文字起こしとか公開されると思います。 2015年の今、どういうライブラリを選んだか、とかNLog大脱却、とかって話が見どころですかね。うちの考えるモダンなやり方、みたいな感じです。 実際、EventSourceやSemantic Logging Application Blockは良いと思いますので、触ってみるといいですね。少なくとも、イマドキにハイパーヒューマンリーダブル非構造化テキストログはないかなぁ、といったところです。 スライドにしたら判別不能になったOWINのStartup部分も置いておきます、参考までに。 // 開発環境用Startup(番では使わないミドルウェア/設定

  • neue cc - C#

    お題を3つ並べましたが、記事は逆順で書いていきます!というわけで、UniTask v2.2.0を出しました。改めてUniTask v2とはUnityのためのゼロアロケーションasync/awaitと非同期LINQを実現するライブラリで、とv2リリース時の解説記事を貼っつけましたが、ちょいちょい細かい改善を続けてまして、今回v2.2.0になります。 PlayerLoopへのループ挿入のカスタマイズ対応 現状のUnityはPlayerLoop上で動いていて、Unity 2020.1のリストをここに置いておきましたが、デフォルトでは120個ぐらいのループがエンジンから駆動されています。UpdateループだけでもScriptRunBehaviourUpdate, ScriptRunDelayedDynamicFrameRate, ScriptRunDelayedTasks, DirectorUpd

  • neue cc - C#とランダム

    古くて新しいわけはない昔ながらのSystem.Randomのお話。Randomのコンストラクタは二種類あって、seed引数アリの場合は必ず同じ順序で数値を返すようになります。 // 何度実行しても同じ結果 var rand = new Random(0); Console.WriteLine(rand.Next()); // 1559595546 Console.WriteLine(rand.Next()); // 1755192844 Console.WriteLine(rand.Next()); // 1649316166 例えばゲームのリプレイなどは、ランダムだけど同一の結果が得られることを期待したいわけなので、大事大事ですね。(とはいえ、Windows-CLIとLinux-monoでは結果が違ったりするので、マルチプラットフォームでの共有などという場合は、別策を取ったほうがよさそう

  • HttpClient詳解、或いは非同期の落とし穴について

    入門 Kubeflow ~Kubernetes機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation

    HttpClient詳解、或いは非同期の落とし穴について