Code
実験君1 class Num { public static char utoa (ulong u) { char tmp = new char [20]; int i = tmp.Length; do { tmp [--i] = (char)(u % 10 + '0'); } while ((u /= 10) > 0); char [] cs = new char [tmp.Length - i]; Array.Copy (tmp, i, cs, 0, cs.Le…
投稿の使いまわし。(^^; using System; using System.Management; class Program { [STAThread] static void Main(string[] args) { // ドメインとユーザを指定して所属するグループを取得するクエリー string s = String.Format("select * from Win32_Group…
投稿の使いまわし。 using System; using System.Management; class Program { [STAThread] static string GetVolumeSerialNumber(string drive) { string path = String.Format("Win32_LogicalDisk.DeviceId=\"{0}\"", drive); ManagementObject disk = new…
IKVM.NETをご存知でしょうか? 日記でも紹介したことがありますが、.NETランタイム上で動作するJavaVMです。以前見たときは、.NET上でJavaを動かしても何が嬉しいのかよく分かってませんでしたが、調べてみたところ結構面白いことが出来ることが分かりました…
DllImportで文字列を渡す場合、何の文字コードでエンコードされるべきなんでしょうか? 例えば、 ファイル:foo.c #include <stdio.h> __declspec(dllexport) void Say(const char* msg) { printf("say 「%s」\n", msg); } コンパイルして、foo.dllを作りました。 > c</stdio.h>…
http://nhibernate.sourceforge.net/quickstart.htmlを参考にサンプルこさえても上手く行かず、2,3時間悩んだ。結局、NHibernateをデバッガで追ってようやく解決。 <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0" auto-import="false"> <class name="User,User" table="users"> </class></hibernate-mapping>
.NETではサテライト アセンブリというカルチャに依存したリソースを外だしする仕組みがあります。簡単な例としてサテライト アセンブリを使ったHello,Worldアプリケーションを作成してみました。まず、モジュール構成ですが、 hello.exe hello.resources.dll…
MySQLとConnector/NetのおかげでADO.NETで手軽に遊べるようになったので、色々弄ってます。普段、Oracle使っているといってもPro*C/C++で動的SQLなのでODBCやらADO.NETやらは、あまり詳しくなかったり。(^^;ここんとこ、日記で挙げていたコードはMySQLベッタ…
先日から続いているデータベース関連の続き。ネットを巡回中に面白いページを見つけるとお気に入りに登録したりしますが、登録名はページのタイトルだったりするので、なにを見つけて登録したのか分からなくなってしまいます。もちろん、きちんとタイトルを…
http://d.hatena.ne.jp/akiramei/20040607#p1のデータベース版。(^^; Program.exeとそれが呼び出しているCalc.dllを先日のデータベースに格納しているとします。 で、次のようなランチャープログラムを用意します。 using System; using System.Security.Pol…
MS-DOS時代は細かくディレクトリ分けしてファイル管理していたのですが、HDDの大容量化で空きを気にせず、どかどかデータを増やしていたら管理不能になり、現在はディレクトリ名を日付にして放り込んでいたりします。(^^; 以前から、DB管理出来たら便利そう…
Brad Abrams氏のところから。 ・http://blogs.msdn.com/brada/archive/2004/10/29/249607.aspx 複数の配列の任意部分の合計を求める。 using System; using System.Collections.Generic; struct MyArraySegment<T> { readonly T arr; readonly int offset; read</t>…
http://blogs.msdn.com/brada/archive/2004/10/26/248324.aspx またしても、Brad Abrams氏のところから。で、自分なりの回答。 using System; using System.Collections.Generic; class Program { static void Main(string args) { string inputValues = { "…
DllImportではCallingConventionが指定できます。しかし、__cdeclを__stdcallとして呼び出しても落ちたりしません。ですが、 using System; using System.Runtime.InteropServices; using System.Security; [SuppressUnmanagedCodeSecurity] class Program {…
IBM Developer 日本語版 : 大変申し訳ありません。このページは無効です。 Javaの記事ですがキャストとinstanceofについての比較を行っています。ぱっと考えるとキャストは失敗すると例外が発生するのでinstanceofの方がよさそうに思ってしまいます。しかし…
自分用メモ。MessageBoxクラスじゃ出来ないのでWSHを使った逃げ手。 #region Using directives using System; using System.Windows.Forms; using IWshRuntimeLibrary; #endregion namespace WindowsApplication1 { partial class Form1 : Form { public For…
D.NET 0.95.90 Released 以前の日記で取り上げたD.NETですが、動かせる環境が用意できたので弄ってみました。まだ、Pre-Alpha Releaseなので雰囲気をつかむくらいですね。 // test.exeが生成される pragma (AssemblyInfo, "test", "exe"); // .NETアプリなら…
オンラインドキュメントを見てて、出来ることに気づいた。 using System; using Nemerle.Assertions; using Nemerle.IO; module Calc { [Requires(x >= 0 && y >= 0)] // 事前条件 [Ensures(value >= 0)] // 事後条件 public Add(x : int, y : int) : int { …
C#ではプロパティがサポートされているため、次のようなコードを書くことはほとんどありません。 class Person { string name; public string GetName() { return name; } public void SetName(string nm) { name = nm; } } こんなの見たら、即座にプロパテ…
たまに、クラスライブラリ一覧を見ながら知らないクラスをチェックしてたりするのですが、今回目にとまったのはArgIterator。調べてみたら確かにこれはあんま使わなさそう。取りあえずサンプルとして、Cライブラリのsscanfもどきをこさえてみました。手抜き…
ってほどのことは無いのですが、ちょっと嵌りました。例えば、電卓を起動させて、一定時間経ったら強制終了させるコードがあったとします。 using System; using System.Diagnostics; class Program { static void Exited(object Sender, EventArgs e) { Con…
C#がJavaと違うところの1つにstruct(値型)をサポートが上げられます。勿論、Javaでもbyteやintなどのプリミティブなものは値型ですが、ユーザ定義の値型はありません。さて、structを使うとパフォーマンスが良いとか、サイズが大きくなったら遅くなるとか言…
vectorとiteratorもほんの一部だけ実装してみました。ただ、iteratorとかはポインタが無いと辛い気がします。 #region Using directives using System; using System.Collections.Generic; using STL.Generic; using IntVector = STL.Generic.Vector<int>; using </int>…
昨日の続きで実装を進めてみました。まずは、IArithmeticインタフェースですが、一応最終形id:ladybugさんのコメントを見て気が変わりました。(^^; public interface IArithmetic<T> where T : IComparable, IFormattable, IConvertible, IComparable<T> { T Add(T</t></t>…
BoostのTupleを真似てみました。 #region Using directives using System; using System.Collections.Generic; using STL.Generic; using Result = STL.Generic.Tuple<int, int, int, double>; #endregion class Program { // 型なしタプル static Tuple Calc4_1(int x, int y) { re</int,>…
C#にもSTLやboostっぽいライブラリが欲しいという話題がありましたので、C#で実装するとどんな感じになるか、ちょっと実験。型パラメータに対する演算については私の日記よりも、ladybugさんの方がスマートなので参考にさせて貰いました。 #region Using dir…
ネットの会議室を見てたらbyte[ ]をushort[ ]へ変換する方法についてBinaryReaderを使う以外*1ないかという質問がありました。C/C++を知っている人だとunsafeを使ってbyte*からushort*へキャストしたりするかも知れません。もし、unsafeが使えないとしたら、…
.NET2.0のBCLを覗いていたら、System.Text.Parsingなるものを発見。Parserが転がっているのかと期待しましたが、TextFieldParserがあるだけでした。このクラスは固定長及び可変長のテキストが扱えますが、可変長はString.Splitに比べて何が嬉しいのかよく分…
Genericなクラスに対するリフレクションとか調べていて、ふと疑問が浮かびました。 Type t = typeof(List<int>); object o = Activator.CreateInstance(t); ActivatorでListをインスタンス化していますが、ジェネリックパラメータをint固定じゃなく、実行時に変え</int>…
Genericsがサポートされる前は、動的配列を使おうとするとArrayListあたりを使うことになりました。しかし、ArrayListはObjectのコレクションのため、プリミティブ型を入れるとboxing/unboxingが発生し、パフォーマンスが良くありませんでした。.NET2.0ではG…