from s14u.info

22 December 2004

ユーザ定義型

ユーザー定義変換のチュートリアル
ユーザ定義型を作ってみた。キーワードは、struct・operator・implicit・explicitといったところだろうか。これはまだまだ理解できない部分があるし、面倒だ。自作したために保証できない面が大きいし、リスク高いなぁ、これ。

21 December 2004

usingとIDisposableインターフェース

C# Tips-usingを使え、使えったら使え(^^)-


public void Func() {
using (FileStream fs = new FileStream("test.txt", FileMode.Read)) {
using (StreamReader sr = new StreamReader(fs)) {
// 処理する
}
}
}

このコードは下記のコードとまったく同じ意味です。実際、これらのコードのILを見比べると100%まったく同じです。


public void Func() {
FileStream fs = new FileStream("test.txt", FileMode.Read);
try {
StreamReader sr = new StreamReader(fs);
try {
// 処理する
}
finally {
if (sr != null) {
sr.Dispose();
}
}
}
finally {
if (fs != null) {
fs.Dispose();
}
}
}

ということなんですよ。興味深いなぁ。知らなかったなぁ、usingにこんな機能があるなんて。System.Windows.Forms.FormクラスももちろんIDisposableインターフェースが組み込まれているわけですが、例えば次のようなことをやると、即Dispose()メソッドが走ります。気をつけてね。(w


public class Form1 : System.Windows.Forms.Form
{
}

public class Sample
{
using(Form1 form = new Form1())
{
form.Show();
}
// 上のブロックが終わるときにDispose()が走るので、
// 折角ShowしたFormが消えるのだ。(w
}

20 December 2004

ポート番号一覧

2004/12/05に、Microsoft Windows Server System : ポート番号一覧をExcel形式でダウンロードできます。今何故ポート番号を公開するのか?セキュリティ関連があるからこそでしょうね。80番と443番だけあけて、あとは閉じるのがベターかな。

この Excel のシートは、マイクロソフトの製品・サービスプログラムが利用しているネットワークのポート番号を参照することができます。Windows Server を採用したシステムにおける利用状況などを一覧で確認することができます。

16 December 2004

divコンテナのid/clss属性

cssで記述するときに、id属性に対しては#を使い、class属性に対しては.で表現する。


#container {
width:400px;
}
.links {
width: 200px;
}


<div id="container"></div>
<div class="links"></div>

ということなのでしょう。ウラを取ってないけど。w

14 December 2004

Apache Forrest

apache forrest 0.6を試した。(apache-forrest-0.6.zip)
環境変数FORREST_HOMEとPATHを設定(FORREST_HOMEは、C:\Documents and Settingsのようなスペース入りの値は避けるべき)
カレントディレクトリをforrestのトップディレクトリ(c:\home\apache-forrest-0.6など)へ移動してからコマンドを実行することになる。
ためしに、コマンドプロンプトから"forrest -projecthelp"を実行
サーバを起動するときに、"forrest run"を実行
デフォルトではhttp://localhost:8888/でアクセスできる。
簡単っ!

Continue reading »

virtualメソッド

10.5.3 仮想メソッド

仮想メソッドと非仮想メソッドの違いを次の例で示します。

using System;
class A
{
public void F() { Console.WriteLine("A.F"); }
public virtual void G() { Console.WriteLine("A.G"); }
}
class B: A
{
new public void F() { Console.WriteLine("B.F"); }
public override void G() { Console.WriteLine("B.G"); }
}
class Test
{
static void Main() {
B b = new B();
A a = b;
a.F();
b.F();
a.G();
b.G();
}
}

この例では、A は非仮想メソッド F および仮想メソッド G を導入します。クラス B は新規の非仮想メソッド F を導入します。これにより、継承された F は隠ぺいされ、かつ、継承されたメソッド G はオーバーライドされます。この例では、次のように出力されます。

A.F
B.F
B.G
B.G

なるほどね。でも親クラス(派生元)に対して、子クラス(派生先)のオブジェクトを突っ込むケースあるかなぁ。私の場合、抽象クラスなり抽象メソッドなり、abstractを使ってしまうことの方が多いんだけどなぁ。

MSF/LBA

Mt.Fuji Ver.5 Rev.1.5より引用

Table 491 - LBA to MSF translation (CD)
conditionFormulae
-150 ≤ LBA ≤ 404849
M = IP( (LBA + 150) / (60 ⋅ 75) )
S = IP( (LBA + 150 - (M ⋅ 60 ⋅ 75) ) / 75 )
F = IP( LBA + 150 - (M ⋅ 60 ⋅ 75) - (S ⋅ 75) )
-45150 ≤ LBA ≤ -151M = IP( (LBA + 450150) / (60 ⋅ 75) )
S = IP( (LBA + 450150 - (M ⋅ 60 ⋅ 75) ) / 75 )
F = IP( LBA + 450150 - (M ⋅ 60 ⋅ 75) - (S ⋅ 75) )
00/00/00 ≤ MSF ≤ 89/59/74LBA = (M⋅ 60 + S) ⋅ 75 + F - 150
90/00/00 ≤ MSF ≤ 99/59/74
LBA = (M⋅ 60 + S) ⋅ 75 + F - 450150

ちなみにPSNは、PSN=LBA+150。

13 December 2004

jCharts

jChartはグラフライブラリ。sourceforgeなのでフリーなのだろうな。ちょっと使ってみたいと思う。

12 December 2004

firefox関連

最近のお気に入り。


Theme

Saferfox Xpanded 2.3.1

extention

Bookmark Synchronizer
WeatherFox

10 December 2004

Derby

ApacheBlogのサイトにいったら、Derbyってあるから訳もわからずにダウンロードしてみたけど、ググってみたら、何よ、Cloudscapeのことかね!?待ってたんだよなぁ。w
http://japan.linux.com/enterprise/04/09/02/0216213.shtml

Continue reading »

Access Ranking

Powered by Six Apart
Sponsored links