2017年08月 / 07月≪ 12345678910111213141516171819202122232425262728293031≫09月

インフォメーション

FC2ブログで画像等を一括アップロードするソフトを地味に配布してます。
FC2ブログ用ファイルアップロードの最新版はこちら
(ベクター)FC2ブログ用ファイルアップロード

--.--.-- (--)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


 |  --:--  |  スポンサー広告  |  Top↑

2009.02.27 (Fri)

staticなクラス

インスタンスを生成する必要のないstaticなクラスを作る場合、クラス名の前にstaticをつけるといい。

staticなクラスでは、起動時に1回だけ初期化し、staticなクラスに保持することも可能。

以下ログ書き込み用staticクラス
static LogWriter(){}の部分によって、起動時フォルダを取得し、
staticフィールドに保持している。


using System.IO;

namespace StaticClassTest
{
///
/// staticなクラス(ログ書込み用クラス)
///

static class LogWriter
{
///
/// ファイル名
///

private const string LOG_FILENAME = "test.log";

///
/// 起動時フォルダパス保持用staticフィールド
///

private static string startupPath;

///
/// 起動時に1度だけ実行されるコンストラクタ
///

static LogWriter()
{
// フォームの起動時フォルダをstaticフィールドに保持
startupPath = System.Windows.Forms.Application.StartupPath;
}

///
/// 起動時フォルダ+"test.log"を返すプロパティ
///

public static string LogFileName
{
get { return Path.Combine(startupPath, LOG_FILENAME); }
}

///
/// ログ書込み処理
///

///
public static void WriteLine(string logmsg)
{
using (StreamWriter sw = new StreamWriter(LogFileName, true))
{
sw.WriteLine(logmsg);
}
}
}
}



ボタンを押すたびLogWriterクラスを使用してログを書き込むフォーム

デザイン
b000059.jpg


using System;
using System.Windows.Forms;

namespace StaticClassTest
{
public partial class Form1 : Form
{
private int cnt;

///
/// コンストラクタ
///

public Form1()
{
InitializeComponent();
}

///
/// ロード時
///

///
///
private void Form1_Load(object sender, EventArgs e)
{
// ログファイルパス表示
textBox1.Text = LogWriter.LogFileName;
cnt = 0;
}

///
/// ボタンクリック
///

///
///
private void button1_Click(object sender, EventArgs e)
{
// ログに書き込む
LogWriter.WriteLine("ログ書込み : " + cnt++);
}

}
}




実行時
b000060.jpg

ボタンを押すたびに表示されてるパスのファイルに
以下のようなログが書き込まれる


ログ書込み : 0
ログ書込み : 1
ログ書込み : 2
ログ書込み : 3
ログ書込み : 4
ログ書込み : 5
ログ書込み : 6
ログ書込み : 7




staticで初期化できるのが便利だよってことです。


 |  18:06  |  C#.NET  |  トラックバック(0)  |  コメント(0)  |  Top↑

Comment

コメントを投稿する

URL
コメント
パス  編集・削除するのに必要
非公開  管理者だけにコメントを表示
 

Trackback

この記事のトラックバックURL

この記事へのトラックバック

 | BLOGTOP | 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。