CSharp のバックアップ(No.7) - PukiWiki

FrontPage

概念
[edit]

CSharp概念?

可重新分发的框架?

このページのトップへ

Tips
[edit]

タイトル閲覧
文字列とバイナリデータCSharp0001?
半透明の画像を表示する方法CSharp0002?
MessageBoxをオーナーウィンドウの中央に配置する方法CSharp0003?
C# 插件构架实战CSharp0004?
このページのトップへ

未整理Tips
[edit]

このページのトップへ

アプリケーション構成ファイル(App.config)、Web構成ファイル(Web.config)にカスタム構成セクションを追加する
[edit]

 ポイントはConfigurationSection、ConfigurationElement、ConfigurationElementCollectionを継承したクラスでカスタム構成セクションを読み込む下地を作ります。あとはConfigurationManagerを使って呼び出すだけです。
http://blogs.wankuma.com/tatsumihr/articles/79793.aspx
参考:
MSDN:方法 : ConfigurationSection を使用してカスタム構成セクションを作成する
http://msdn2.microsoft.com/ja-jp/library/2tw134k3(vs.80).aspx

このページのトップへ

現在のアプリのパスを取得
[edit]

string path = System.Windows.Forms.Application.StartupPath;
MessageBox.Show(path);
このページのトップへ

メソッド名と取得する
[edit]

StackTrace st = new StackTrace(true);
foreach (StackFrame f in st.GetFrames())
{
      System.Windows.Forms.MessageBox.Show(f.GetFileColumnNumber() + "-" + f.GetMethod());
}
このページのトップへ

トレースソースの作成
[edit]

http://msdn.microsoft.com/ja-jp/library/ms228984.aspx app.config によって、作成することが可能です。

このページのトップへ

ローカルのTempパスを取得
[edit]

//ユーザーのローカルApplication Dataフォルダのパスを取得
//Path.Combineメソッドを利用して、パスの結合することができる
string path = Path.GetFullPath(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "..\\Temp"));

結果:


string path2 = Path.GetFullPath(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));

結果:

このページのトップへ

閏年の判断
[edit]

DateTime.IsLeapYear()メソッドで判断できる
このページのトップへ

レジストリへのアクセス
[edit]

HKEY_CURRENT_USER へのアクセスは管理者権限が要りません。
HKEY_LOCAL_MACHINE へのアクセスは管理者権限が要ます。

このページのトップへ

Windows 7 VHD 利用するラップクラス
[edit]

http://files.codes-sources.com/fichier.aspx?id=50320&f=Win7_VirtualDiskWrapper%2fVirtualDiskWrapper%2fVHD.cs

このページのトップへ

別のスレッドからコントロールを操作
[edit]

this.Invoke((MethodInvoker)delegate() 
   { 
       progressBar1.Maximum = 100; 
   } 
);
このページのトップへ

System.Runtime.Serialization.Jsonの参照
[edit]

名前は、System.Runtime.Serialization.JSON.DataContractJsonSerializerなのに、System.Runtime.Serialization.JSONパッケージに入っていない。

DataContractJsonSerializer クラス
名前空間 : System.Runtime.Serialization.Json
アセンブリ : System.ServiceModel.Web (System.ServiceModel.Web.dll 内)

このページのトップへ

数値を3桁カンマ区切りにフォーマットする
[edit]

 stringクラスのformatメソッドを利用

int val = 10000;
Console.WriteLine(string.Format("{0:N0}", val));//第二引数は string 型に宣言すると、変換できません。
このページのトップへ

特定の外部アセンブリにのみ internalスコープのクラスやメソッドを公開する
[edit]

(抜粋)
[assembly: InternalsVisibleTo("TestClassLibrary1")]

(参考URL)
http://www.atmarkit.co.jp/fdotnet/csharp20/csharp20_07/csharp20_07_03.html

このページのトップへ

C# の lock ステートメント
[edit]

C# の lock ステートメントはクリティカルセクションです。

class Clazz{
	private static object syncobj = new object();

	public void Func1(){
		lock(syncobj){
			// コード1
		}
	}

	public void Func2(){
		lock(syncobj){
			// コード2
		}
	}
}

lock は上記のようにやれば、「コード1」を実行中に「コード2」が実行される事はありません、という使い方です。当然ですけど、まったく同じオブジェクトをロックしなければなりません。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS

e[NȂECir Yahoo yV LINEf[^[Ōz500~`I
z[y[W ̃NWbgJ[h COiq@COsیI COze