C#
IronRuby は衰退しました Mirah という JVM 上で動く Ruby 風言語があるそうで、ググっていたところ .NET Framework 上で動く Ruby 風言語を作りたいなーと思ってしまった。 まずは IronRuby を目コピしてみることにした。 分かったこと Linux 版の MonoDeve…
NuGet 見てみたら、Monad とかいう興味深い単語があったりしたので、書いてみた: using System; using System.Collections.Generic; using System.Linq; namespace Prelude.Data { /// <summary> /// /// </summary> /// <typeparam name="_Left"></typeparam> /// <typeparam name="_Right"></typeparam> public sealed class Either<_Left, _Right> { ///…</_left,>
1 億 4 千万人の並行プログラミングファンのみなさんおはこんばんは*1。 21 世紀に入り、C# でもやっと並行プログラミングがしやすくなりましたね*2。 Task の使い方を書こうと思ったんだけど、なんていうか気分が乗らないのでやめとこーかなー。 と書いてや…
System.Diagnostics 名前空間の Debug クラスや Trace クラスを使ったプ リント・デバッグを行う際に予め知っておくべきことについて書きます。 何故プリント・デバッグなのか 他の人が書いたテストも無く、仕様通りに動いているかどうか*1疑わしいコードに…
よく、パスを構築するときに普通に文字列の足し算やっちゃう人が居るんだけど、Path.Combine 使った方が楽だよ! っていう話。 [Test] void パスコンバイン使うと間のパスセパレータを考えなくても良い() { var base_path = "C:/Users/alice"; var actual = …
ポッキーの日でありながらバイナリデーですね!! (前フリ) 今回はふつーのスレッドでウゴウゴするコンポーネントから、コントロールを操作したいよー! ってあれです。 GUIスレッド? ウィジェット、WinForms でいうコントロールは GUI スレッドというスレ…
おくればせながら、あけましておめでとうございます。今年もよろしくおねがいします。 今日、SDL.net を github にうpした。 SDL.net は SDL の C# binding である。 これを書くときにつまづいたことなどを書いてみる。 まずは SDL_event.h からコピペした…
通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 っていうエラーがでて、この例外の SocketErrorCode プロパティ [microsoft.com] が SocketError.AddressAlreadyInUse だったんだよね…
BeginAcceptTcpClient メソッドを呼び出してから、EndAcceptTcpClient メソッドを 呼ぶまでの間に IAsyncResult インスタンスの AsyncWaitHandle プロパティが RAISE*1 しているかどうかを 調べる必要があります。 AsyncWaitHandle プロパティが RAISE 状態…
DataTable クラスのメソッドにレコードのソートなどといったメソッドがなく、力ずくでやるしかないように見えますが、 実はちゃんと佳い方法が用意されています。 それは DataView クラスを使う方法です。 DataView というのは MVC の V にあたります。V と…
ということで、送信をやるよ〜。 send_bytes = encoding.GetBytes( greeting ); done = client.BeginSend( send_bytes, send_bytes.Length, sendCompleted, client ); greeting をバイトに変換して、送信するよ。 いや、ほんとにそれだけなんだけど、sendCom…
何だか知らないけど、"How are you?" の会話を UDP でやってみた。 How are you? って訊かれたら、I'm fine thank you. and you? って返せって英語の時間に教わったと思うけど、 Good! とか not bad とかって返すのがいいらしい。 まー、そんな感じ。あ、非…
UDP に引き続き、TCP やってみたよ〜。 ということで、System.Net 名前空間と System.Net.Sockets 名前空間は外せないねっ! using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; usin…
必要だったので。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Wind…
ファイル、ストリームからなら簡単にできるんだけど、文字列からというのがよく分からなかったのでやってみた…のがこちら。 using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml; namespace demoXmlVali…
A. つ Convert やあ(´・ω・`)(ry 久しぶり〜。 ついったーID が規制されてるから暇つぶしに溜めておいたネタを消化するよ〜。 Base64 でエンコーディングしたくなることってあると思うけど、どーやってやったらいいのかパッと見じゃ分からないよねっ。 ちょっ…
問題があったときのスタックトレース。 FileSystemEntry.fromFileSystemEntry FileSystemEntry.getFileSystemEntry SecurityDescriptor#__constructor() SecurityDescriptor#_M_get_file_security AdvApi32.GetFileSecurity で、StackTrace を取得してる最中…
ActiveReports の新バージョンに移行しようと自作のアプリを修正していたときのこと。 `ActiveReports6' と ActiveReports.Viewer6 を参照に追加して、 `DataDynamics.ActiveReports.ActiveReport3' クラスの 3 を消して、コンパイルしようとしたところ: "L…
ストリームを閉じる(close)ときにフラッシュ(flush)されるらしく、 閉じないとき──うっかりとかしょうがなくとか──ときは空のファイルが作られるだけ。 何らかの問題で、閉じたくないときは書き込む毎にフラッシュしておこう。 # もしくは、StreamWriter#Aut…
A. System.Environment のプロパティを使う ユーザー名やドメイン名を取得するには Environment クラスの静的プロパティを使う*1。 # Environment ってのは環境って意味で、現在の環境を取得するためのクラス。 # なので、全部スタティック。 string user_na…