タグ

c#に関するbasyuraのブックマーク (45)

  • 新しい csproj 形式

    Visual Studio 2017で、csproj 形式が新しくなりました。 背景としては、 一時期、脱msbuildをしようとしてた -脱msbuildのついでに、csprojを辞めて、project.json 形式にプロジェクト設定全部入れようとしてた時期があった 結局、msbuildに戻ったけども、既存のcsprojをもっとシンプルにしたいという要件だけが残った というものです。過渡期に関しては昔書いたブログ参照: .csproj + project.json 「project.json辞めます」の意味 最近、やっと新形式のcsprojの扱いに慣れてきたのでブログに書き残しておきます。 サンプル: https://github.com/ufcpp/UfcppSample/tree/master/Demo/2017/NewCsproj 新形式 これまで、Visual StudioでC

    新しい csproj 形式
    basyura
    basyura 2017/05/15
    ワイルドカード便利そう。マージするときの sln の衝突もなんとかならぬものか。
  • neue cc - Microsoft Fakes Frameworkの使い方

    Fakes FrameworkはVisual Studio 2012から搭載されたユニットテスト用のもっきゅっきゅライブラリです。いや、ライブラリというには大掛かりなので、やっぱFrameworkでしょうか。ともあれ、そんなもののようなものです。ドトネトだと競合で最も有名なのはMoqですね。競合との大きな違いは、通常のもっきゅっきゅライブラリがinterfaceやvirtualなメソッド類しか上書きできないのに対して、FakesはStaticメソッドやふつーの非virtualメソッドすらも上書き出来ちゃうところにあります。つまり、なんでもできます。 そして、Visual Studio Ultimateじゃないと使えません。……うぉーん。と、いうわけで、強力さはよーく分かるんですが、Ultimateでしか使えないところに萎えていたりしました。が、Visual Studioへの要望を出すFor

    basyura
    basyura 2017/03/04
    そんなことができるのか! > .fakesの中身(XML)を編集して、明示的に生成するものを指定してあげれば解決します。
  • C#基礎講座:HttpClient詳説 - ikarosの作業場

    予備校が忙しすぎて一週間ほどポストしておりませんでした。 これからはもうちょっと更新頻度あげていきたいですね、はい。 では今回はWindows GUIに標準で搭載されたHttpClientについて解説したいと思います 注:今回使うアセンブリは「System.Net.Http」です。他のアセンブリのHttpClientクラスと混同なされませんようご注意ください 1.GETリクエストを送信する HttpClientクラスのGetAsyncメソッドを用いてGETリクエストを送信することができます //親となる呼び出しメソッドには非同期メソッドである必要があります(asyncが必要) private async Task<string> getrequest() { var client = new HttpClient(); var response = new HttpResponseMess

    C#基礎講座:HttpClient詳説 - ikarosの作業場
    basyura
    basyura 2017/01/07
  • Taskを極めろ!async/await完全攻略 - Qiita

    この記事は、 Task.Runを書けばとりあえず非同期で動くのはわかる 時々なんかうまく動かなかったりするけどどうして動かないのかはよくわからない よくわからないまま書いてよくわからないまま動いてるけどこれで大丈夫なのかわからなくてこわい みたいな人を対象にしています。 Taskクラスとasync/await 皆さん、非同期してますか?当然してますね。同期処理が許されるのはC#2.0までだよねーじゃなくて、async/awaitはC# 5.0から導入された、Taskクラスと紐付いた言語構文の一つです。登場はもう数年前なはずなんですが、未だに新しい言語仕様な感じがしてフシギです。それでもさすがに今は馴染んでいて、どこにでも遠慮なく飛び出てくるようになっています。 Taskの難しさ Taskは、難しいです。 Taskがというよりは、非同期処理自体が持つ複雑さが根に存在するため、いくらシンプル

    Taskを極めろ!async/await完全攻略 - Qiita
    basyura
    basyura 2016/12/11
  • C# 非同期、覚え書き。 - Qiita

    記憶力の悪い自分のために、C# における非同期処理の書き方を記述しておきたいと思います。 専門家ではないので、不出来な内容でもあしからず。 目次 Task async / await 並列処理 System.Threading の便利なクラス Task 皆さんおなじみの、非同期操作を表すクラスです。 生成および実行の方法が何通りかあります。 Task.Factory.StartNew 次のようにして Task を生成、実行します。 using System; using System.Threading.Tasks; class Program { static void Main(string[] args) { var task = Task.Factory.StartNew(() => Console.WriteLine("OK")); Console.ReadLine(); } }

    C# 非同期、覚え書き。 - Qiita
    basyura
    basyura 2016/10/29
    Task.Yield 知らんかった。使い所はわからんけど。
  • [C#]foreach文でループカウンタを取得する方法

    C#でforeachを使用してループを行うと、シンプルな表記で集合内のデータを処理する事ができるので便利ですが、何番目の値を処理しているかのループカウンタが無いのが不便です。 このような場合は、以下のようにSelect()メソッドを使用すると処理中データのindexを取得できます。 static void Main(string[] args) { string nameArray = new string[] { "alice", "bob", "charlie", "dave" }; foreach ( var nameObj in nameArray.Select( (value, index) => new { value, index } ) ) { // nameObjのメンバであるindexよりループカウンタを取得可能 Console.WriteLine( "{0}人目: 名

    [C#]foreach文でループカウンタを取得する方法
    basyura
    basyura 2016/05/30
    もっとスマートに書きたいなぁ
  • Microsoft Reference Source Server

    

    basyura
    basyura 2016/05/17
  • How to open a new tab in an existing Internet Explorer instance in C#

    basyura
    basyura 2015/08/15
  • 非同期処理の基礎

    MPAなWebフレームワーク、Astroの紹介 (その1) 2024/05/17の勉強会で発表されたものです。

    非同期処理の基礎
    basyura
    basyura 2014/06/09
  • C#や.NET Frameworkがやっていること

    2014/3/1 Boost勉強会 #14 東京 にて https://sites.google.com/site/boostjp/study_meeting/study14 Boost勉強会なのに.NETの話で、1人だけ1時間(他の人は30分)。 来、自分のペースでは4時間くらいかかってもおかしくない分量を1時間で。Read less

    C#や.NET Frameworkがやっていること
    basyura
    basyura 2014/03/02
  • .NET最先端技術によるハイパフォーマンスウェブアプリケーション

    Behavior Treeという手法を使い、自作ゲームAIを実装してみました Behavior Designer : https://www.assetstore.unity3d.com/jp/#!/content/15277 講演したイベント 【年末だよ】Unity お・と・な のLT大会 2016【ポロりしてもいいのよ】 http://peatix.com/event/212468

    .NET最先端技術によるハイパフォーマンスウェブアプリケーション
    basyura
    basyura 2013/12/30
  • JavaとC#で、フィールドの初期化順序が違う (JavaプログラマーがC#でプログラムを書いて引っかかったところ その5) - 地平線に行く

    C# のを読んでいたら、クラスのフィールドの初期化順序が Java と違っていてびっくりしました。 Java のフィールド初期化順序 Java でインスタンスを作成した場合、親クラスのフィールド初期化 → 親クラスのコンストラクタ実行 → 子クラスのフィールド初期化 → 子クラスのコンストラクタ実行 の順番で処理が行われます。 そのため、下記では Parent クラスのコンストラクタを呼び出した時点では Child クラスの c フィールドは初期化されていないため、System.out.println での出力が初期値である null になっています。 public class Program { public static void main(String[] args) { new Child(); } public static class Parent { // 順序① - 親ク

    JavaとC#で、フィールドの初期化順序が違う (JavaプログラマーがC#でプログラムを書いて引っかかったところ その5) - 地平線に行く
    basyura
    basyura 2013/11/11
  • NullableとOptionの違い - ぐるぐる~

    このエントリの最新版はGithubにあります。 Optionそのものについてのエントリは書く必要ない(世の中に有用なドキュメントが山ほどあるから)かな、 と思っていたのですが、Nullableとの違いについてはそれなりに需要がありそうなので書いておきます。 ちなみに、個人的な嗜好によりOptionを持ち上げ、Nullableを下に扱う感じになっていますが、Nullableも(仕方なく)使うことはあります。 特別な理由がなければNullable使わずにOptionを使う、ということでもありますが、そこは一つよろしくお願いします。 Nullableとは C#ではnullは参照型でしか使えませんでした。 Nullableは、この制限がない(ように見えるよう特別扱いされている)唯一の値型です。 ジェネリック型になっており、任意の値型を扱うことが出来ます。 // Nullable<int>はint?

    NullableとOptionの違い - ぐるぐる~
    basyura
    basyura 2013/06/11
  • Vim で C# を書くなら OmniSharp で決まり! - 永遠に未完成

    Vim Advent Calendar 2012 の 173 日目の記事です。 今回は C# を書くのに便利な OmniSharp と言うツールを紹介します。これさえあれば、エディタとしての Visual Studio はもう必要ありません! 経緯 (興味ない人はここは飛ばしてインストールのところから読むと良いです) 先日、OmniSharp なるものの存在を教えてもらいました。 @thinca これってでどうなんでしょう URL 2013-05-09 23:47:26 via YoruFukurou to @thinca @mizchi お、面白そうですね!私は知らなかったです。明日あたり見てみますー。ありがとうございます。 2013-05-09 23:51:36 via tweetvim to @mizchi と言うわけで調査してみることにしました。 様々な罠にかかりつつ、ソースコード

    basyura
    basyura 2013/05/23
    すげえ
  • 各型のデフォルト値についてのメモ (default, int, long, float, double) - いろいろ備忘録日記

    以下、自分用のメモです。 何故か、忘れる事がめっちゃ多いのでメモ。 #region DefaultValuesSamples-01 /// <summary> /// 各型のデフォルト値についてのサンプルです。 /// </summary> public class DefaultValuesSamples01 : IExecutable { class SampleClass {} struct SampleStruct {} public void Execute() { Console.WriteLine("byte のデフォルト: {0}", default(byte)); Console.WriteLine("char のデフォルト: {0}", default(char) == 0x00); Console.WriteLine("short のデフォルト: {0}", defa

    各型のデフォルト値についてのメモ (default, int, long, float, double) - いろいろ備忘録日記
    basyura
    basyura 2013/02/28
  • クラスのインターフェースに使うコレクションのinterface使い分け - the sea of fertility

    この記事は C# AdventCalender 2012 の12/17日分の記事です。 タイトルなんのこっちゃ?って思われるかもしれませんが、今年はMVVMとは関係ないC#erらしいタイトルを・・・という事自信がなくなるクラスのインターフェースに使う(プロパティの型として使う)コレクションinterfaceの使いわけを自身の整理のためにも書いてみます。 ようは public class Tweet{ } public class TwitterApplication { public [?(なんかコレクションのインターフェース)] Tweets{get; private set;} } みたいな時にこの「?」に何を使うかという問題ですね。 .NET4.5ではIReadOnlyCollection<T>/IReadOnlyList<T>/IReadOnlyDictionary<T>などの読み

    basyura
    basyura 2012/12/18
  • 9/29 RIAアーキテクチャ研究会 第4回セミナーで話してきます! - the sea of fertility

  • ContentPresenterで表示されるコントロールにスタイルを適用するには? - trapemiyaの日記

    ContentPresenterは、そのContentプロパティにバインドしたコントロールを子要素として表示します。 以下はTextBox型のコントロールを子要素として表示する例です。 <ContentPresenter Content="{Binding Path=MyTextBox}" /> ではこの子要素にスタイルを適用するにはどうすれば良いのでしょうか? 試しに以下のように書いてみました。 <Window.Resources> <Style TargetType="{x:Type TextBox}" x:Key="MyStyle"> <Setter Property="Background" Value="Azure" /> </Style> </Window.Resources> <Grid> <!-- このコードはコンパイルが通りません!!! --> <ContentPrese

    ContentPresenterで表示されるコントロールにスタイルを適用するには? - trapemiyaの日記
    basyura
    basyura 2012/03/23
    更に子要素に行く場合はどうすんだろう
  • 型パラメーターの制約 (C# プログラミング ガイド) - MSDN ライブラリ

    制約では、型引数に必要な機能をコンパイラに通知します。 制約のない型引数は、任意の型にすることができます。 コンパイラは、.NET 型の最終的な基底クラスになる、System.Object のメンバーを見なすことができるだけです。 詳細については、「制約を使用する理由」を参照してください。 クライアント コードが制約を満たさない型を使用している場合、コンパイラではエラーが発行されます。 制約を指定するには、where コンテキスト キーワードを使用します。 次の表は、さまざまな制約の種類の一覧です。 制約 説明

    basyura
    basyura 2012/03/08
    クライアント コードでクラスをインスタンス化するときに型引数に使用できる型の種類に制限を適用できます。制約は、where コンテキスト キーワードで指定します。
  • 〔速攻入門〕 C#プログラミング すぐに現場で使える知識

    そろそろ発売っぽいのでこの場でも宣伝を。以下のようなを書きました。 〔速攻入門〕 C#プログラミング すぐに現場で使える知識 C++ もしくは Java の経験者向けに、そこからの差に焦点を当てた C# 入門です。 例えば、if とか while とかの説明はいちいちしていません(構文持ってるよという一覧のみの提示)。 if (条件) の条件の部分は bool しか受け付けないとか、そういう差だけを書いています。あと、言語を変えて一番困るのは、文法なんかじゃなく、むしろライブラリの使い方なので、ライブラリの使い方に触れた章も設けています(第3部がまるまるそう)。 一周廻ってそういうが必要なんだなぁという(C# が出た当初、C# の説明は C++ わかってる人前提のものが多かった)。 4人の共著ですが、最終的に僕が文章の統一を入れているので、共著っぽい読みにくさはないと思います。 一応

    〔速攻入門〕 C#プログラミング すぐに現場で使える知識
    basyura
    basyura 2012/03/08
    あとで買う