ブラウザだけで様々な言語のコードを即時実行できる、超便利なオンラインプログラミング環境 paiza.IO。前の記事で C# で実行環境を調査するという遊びをやっていました。 C#もOK! paiza.IOでお手軽オンラインプログラミング - xin9le.net 今回はその延長と…
前回書いたオープンデータの記事 (オープンデータ先進県「福井」の残念なデータに思う) が大反響で、非常に多くの方に読んで頂けました。通常の 10 倍以上のページビューが出て、ただただ驚くばかりでした。 オープンデータ先進県「福井」の残念なデータに思…
2013 年 6 月 14 日に閣議決定された世界最先端 IT 国家創造宣言。政府が打ち出した「日本は IT で 1 位になるんです!2 位じゃダメなんです!」というアレです。この方針に従うべく、日本中のアチコチの自治体/行政が自分たちの持っているデータを一般に公…
Obsolete 属性、使ってますか?「もう古い API だから使わないでねー」とコンパイラ警告を出すて注意喚起するための便利属性です。以下のように利用します。 class Program { [Obsolete("NewMethod を利用してください")] public static void OldMethod(){ .…
稀に出くわす Unicode 文字のエスケープシーケンス。以下のようなヤツです。 var text = @"\u3053\u3093\u306b\u3061\u306f\u3001\u4e16\u754c\uff01"; その文字をプログラムで戻さなければならない場合があります。今回はそんな方法のメモ。 正規表現の置換…
C#er な私が PHP の記事なんて書くことになるとは...。ペチパーな方には当たり前かもしれませんが、最近業務でハマったのでメモとして残します。 こんな時間まで仕事するなんて完全に負け組感ある。チキショー、PHPなんて嫌いだ。— じんぐる (@xin9le) 2015,…
富山合同勉強会 .NET & Java ~ぶりしゃぶで休もう~ という、.NET と Java とブリしゃぶがごった煮になった、激アツな勉強会に参加/登壇してきました。ホテルのイベントルームを貸し切って .NET 部屋と Java 部屋に分けてセッションを行い、興味のある方を…
みなさん PropertyGrid 使ってますか?プロパティ名と値を一覧にして閲覧/入力させてくれるコントロールです。Visual Studio のプロパティでも使われているアイツですね。Windows Forms と言えば DataGridView がすべて!みたいな風潮も多少なり (謎) ありま…
2015/01/16 (金) に渋谷で開催された GoAzure 2015 に参加してきました。とても充実した内容で大変満足度が高いです。本当に参加して良かった。主催者のみなさん、本当にお疲れ様でした。 【Japan Azure User Group】GoAzure 2015 開催決定 Hanselman Unplug…
先日大幅に改修したMSの公式サイトと揶揄されている私の個人サイトである xin9le.net。そこには Carousel と呼ばれるものがあります。いわゆるクルクルと画面が遷移する広告みたいなヤツです。 サイト自体のデザインにはかなり気を配ったし、流行りのレスポ…
本記事は C# Advent Calendar 2014 最終日向けの記事です。なんとか間に合わせようと心底努力しましたが、業務上年末にシステムリリースがある関係で忙殺されていて全く余裕がなく、結局最終日に穴を空ける結果になってしまいました。ここまで繋いで下さった…
2014 年 12 月 20 日 (土) に日本マイクロソフト品川本社で開催された CLR/H in Tokyo 第 7 回に参加してきました 。ドレスコードが仮装というカソウ化デーということで、主催者 (@naoki0311) とその一味 (@miso_soup3) のご要望にお応えしてミニスカサンタ…
先日 2014 年 11 月 29 日 (土) に大阪で開催された Room metro #28 に参加してきました。「XAML Day」ということで、我こそは!という屈強な XAMLer 達が集結し、濃密なセッションが繰り広げられました。僕はと言うと ROM (Read Only Member) としてのほほ…
string.Format メソッドは大変汎用的で便利です。しかし、ちょっとばかり煩雑で、かつ書式文字列内のプレースホルダーの数が合わなかったりするエラーが発生しやすいという傾向にあります。 var p = new Person("xin9le", 30, Sex.Male); var t1 = string.Fo…
バージョン 5.0 現在の C# には「初期化子」と呼ばれる機能が 2 つあります。ひとつはオブジェクト初期化子で、インスタンス生成時にコンストラクタ引数を利用せずにフィールドやプロパティの値を設定するものです。もうひとつはコレクション初期化子で、こ…
もう一か月以上も前になりますが、Microsoft MVP がお届けする参加自由の ICT 勉強会「Microsoft MVP Community Camp」の第1回 Webcast が開催されました。2014年9月22日 (月) ~ 2014年9月26日 (金) の一週間、アジアの MVP が日替わりで、各々のテーマに沿…
しばらく前になりますが、2014/10/6 に Visual Studio 14 CTP 4 がリリースされました。そのリリースの中で .NET Framework も更新され、バージョン 4.5.3 となりました。少し触っていたら、Task 型 (System.Threading.Tasks 名前空間) に新しいプロパティと…
WebアプリケーションやMVVMに則ったクライアントアプリケーションを作っていると、ModelとViewModelの相互変換がよく行われます。設計におけるレイヤーの違いを埋めるこの型変換ですが、基本的に同じような名前/型のプロパティが並ぶため、変換コードの実装…
2014年8月30日 (土)、我らがHokuriku.NET主催の定期勉強会Hokuriku.NET vol.15に参加/登壇してきました。今回は小島さん (@Fujiwo) と一緒にC# MVPsとしてC# vNextの新機能を紹介し、ひとつひとつ解説していきました。参加者のみなさんとの緩いディスカッシ…
ASP.NET Web APIで開発している際、パフォーマンスを上げるためにリクエスト中で取得/生成した値をキャッシュして使い回したいケースがあります。特にWeb APIにはHTTP Message Handlerという機構があるので、外側のレイヤー (Handler) で共通処理として認証…
Azure Web SitesチームがWeb Sites上でWordPressを利用者している人をどのように判定しているのか、Azure Web Sitesプログラムマネージャーの Erez Benari さんに教えて頂きました。そんなちょとしたドキュメンタリー。 コトの発端 先日、Azure Web Sitesチ…
C# 3.0で導入されたコレクション初期化子をご存知の方は多いと思います。要素を追加した状態でコレクションを生成する機能です。以下のようなものです。 var languages = new List<string> { "C#", "Visual Basic", "JavaScript", }; これは次のコードの糖衣構文です</string>…
これまでC# vNextの新機能についていくつか紹介してきましたが、個人的にラムダ形式プロパティよりも、null伝搬演算子よりも、catch/finally句で利用できるawait演算子よりもずっと ×2 興奮したのが今回取り上げるnameof演算子 (nameof operator) です。簡単…
前回ラムダ形式プロパティを紹介しました。ラムダ式チックなメンバー (Expression-bodied members) は、Visual Studio 14 CTP 2まではプロパティしか実装されていませんでしたが、一昨日 (2014/08/19) リリースされたVisual Studio 14 CTP 3にはメソッド版も…
みなさんもGetterだけのプロパティを作った経験があるかと思います。例えば以下のようなものです。 using System.Math; using System.Windows; namespace CSharpVNext { class Circle { public double Radius{ get; }; public Point Origin{ get{ return new…
三項演算子はひとつの式の中で条件式を表現できて非常に便利です。言うまでもないかもしれませんが、例えば以下のような書き方ができます。 var name = "じんぐる"; return name == null ? "不明" : name; /* //--- 以下と同じ意味 var name = "じんぐる"; i…
例外処理はtry句でスローされる例外の型に応じて処理を書き分けます。また、ひとつの例外の型でエラー条件が分かれる場合はcatch句の中にif文を書いて分岐します。例えば以下のような感じです。 try { //--- SQL Serverへの何らかのアクセス } catch (SqlExc…
C# 5.0で搭載された非同期メソッド (async/await) は、非同期処理を非常に簡単に記述できる言語機能として大変重宝し、愛されています。await演算子は通常のメソッドだけでなくラムダ式内でも利用できるなど、かなり広範囲への適用が可能です。しかし例外処…
これまで、以下のようなコードを面倒に感じたことはありませんか? static void Main() { try { Console.WriteLine(int.Parse("123")); //--- intに変換できなかったら例外発生! } catch { //--- 失敗したとき } } 絶対失敗しないと保証されているなら例外…
C#で提供されているusingキーワードは「usingステートメント」と「usingディレクティブ」の2種類あります。このうちusingディレクティブは以下の2つの場合に利用できました。 名前空間の省略 (= 指定された名前空間内の型は名前空間を修飾しないで使用可能) …