2013.09.14、お邪魔してきました。OSC2013@北海道。 朝から参加したセッションの内容と感想まとめ。 「オープンソースソフトウェアの翻訳をやらないか」 @okano_tさん。 LibreOfficeを例に、オープンソースソフトウェアの 翻訳活動についての紹介とライブコ…
パソコンとモニタを使って人狼を遊ぶためのWindowsデスクトップアプリです。 もともと自分が人狼という遊びをやってみたくて作って内輪で遊んでたものなんですが、 テレビ番組にもなってなんだか人気沸騰中の人狼ゲームなので いくらか需要もあるかなと思っ…
よっぽど変な勘違いをしていなければ、VisualStudio(MSBuild?)のバグだと思われる話。 再現環境は.NET 4.0, VS2010のC# Express。 あと.NET 4.5, VS Express 2012のfor Desktopでもやっぱり再現した。 正常に動作していたコードで、唐突にビルドが通らな…
先日Enumeratorを使って自前オブジェクトのメンバを列挙するという話をしていたが、 この中の、リフレクションを使ってメンバを自動で列挙しようという話、 実は、列挙されるメンバの順序が不定だという問題がある。 以下はMSDNの記述。 GetProperties メソ…
ADO.NETのDataAdapterとかを使おうとすると、DataSetやDataTable経由で DataRowの値をいじる処理が絡むことが多いと思うが、 このクラスはNull値に関してちょっと直感的でない動きをする。
javaでのtoString()って、C#のToString()よりもデバッグ用的な意味合いが 強いのかなという感じがする。 javadocを見ると、以下のように書いてある。 通常、toString メソッドはこのオブジェクトを「テキストで表現する」文字列を返します。この結果は、人間…
Javaプログラマに、JavaのHashMapに比べてC#のDictionaryは使いにくいと言われたんです。 Mapは存在しないキーでget()したらnullを返してくれるのに、 C#のDictionaryはKeyNotFoundExceptionを返しやがる。 しかも例外処理が重いからいちいちTryGetValueしな…
先日アプリケーションのStartupPathをちゃんと取得するという話を書いたのだけど、 たかがPath、されどPath、ちゃんとやろうとすると なかなか奥が深いというか面倒くさいので、もうちょっと書きます。 けっこう長くなったけど、トピックスは2つ。 ・絶対パ…
表題のとおり、WPFのListBoxで、ItemsSourceとSelectedItemを それぞれバインディング経由で使っていたときに、 バグといっていいかもしれない不具合があったので、一応メモ。 ちなみに手元の環境だと、.NET Framework 4.5では再現せず、 4.0だと再現するPC…
これまでC#からSQLiteを使うときはSystem.Data.SQLiteを使っていたのだけど、 実はLinuxのMonoで使えねぇよって話だったので*1、代わりを探してました。 ちょっと調べた感じだとMono.Data.Sqliteってのを使っている人が多いみたいだったが なんかダウンロー…
.NET 4.0のアプリで、Monoを使ってLinuxで動かしたときに たまたまMonoのバグがあってはまったのでメモ。 LINQ to XMLの話になるのかな。
.NET Framework 4で、配列を返すDirectory.GetFilesメソッドの代わりになる、 IEnumerableを返すDirectory.EnumerateFilesというメソッドが追加された。 GetFilesでは、すべてのファイルの検索を終えてから配列を作る必要があったのに対し、 EnumerateFiles…
ボタンクリックイベント等のハンドラの中で 時間のかかる処理をしてUIを固めてしまうと、 その間に連続してクリックした分がメッセージキューに溜め込まれ UIが動き出してから何度も連続でクリックイベントが発生するような動きになる。 単純に↓こんなふうに…
アプリの実行ファイルがあるディレクトリのパスの取得の仕方について。 例えば実行ファイルと同じディレクトリにテキストを出力したいとき、 File.WriteAllText("hoge.txt", "テキストファイルの本文"); とでも書けば普通はちゃんと実行ファイルのディレクト…
前回クラス間インタフェースの話をしていたのでついでに。 .NETにはFxCopというコード解析ツールがあって、コードの改善ポイントを指摘してくれる。 これが指摘するルールの中に「CA1002: Do not expose generic lists」というのがあって、 Listは継承できな…
作ったきりロクに更新していないブログなわけですけども SyntaxHighlighter Evolvedという、コードを表示するためのプラグインを入れてみたので*1 せっかくなので試してみるための記事を書きます。 最近C#のLinqというものが非常に便利なので クラス間のイン…