ヌル判定演算子
console.writeline( s ?? "ヌルです。");
ユーザコントロールで、Textプロパティを使う
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public override string Text {
get {...
set {...
文字列@
文字列に@をつけると、¥がそのまま使われる。
つけないと、¥の後ろがエスケープシーケンスになる。
特殊パスの取得
- システムフォルダ
- System.Environmemt.GetFolderPath
- プログラムを置いてあるパス
- Application.StartupPath
- プログラムを起動したパス
- DirectoryInfo(".");
ファイル操作(コピー、移動、削除)
string src = @"c:\test.txt";
string dst = @"c:\test2.txt";
// ファイルコピー
File.Sopy(src, dst);
// ファイルの移動
File.Move(src, dst);
// ファイルの削除
File.Delete(src);
ファイル・フォルダの有無を調べる
- Windows環境では、大文字/小文字の区別はない。
- フォルダ末尾の'\'は、あってもなくても可能
- 相対パスでも絶対パスでも可能
// ファイルの有無を調べる
string fileName = @"c:\boot.ini";
if (System.IO.File.Exists(fileName) != false) {
MessageBox.Show(string.Format("({0})は存在する。", fileName));
}
// フォルダの有無を調べる
string folderName = @"c:\Windows\";
if (System.IO.Directory.Exists(folderName) != false) {
MessageBox.Show(string.Format("({0})は存在する。", folderName));
}
文字列とバイト配列の相互変換
// 文字列→バイト配列
string s = "abc";
byte[] b = Encording.ASCII.GetBytes(s);
// バイト配列→文字列
byte [] b = new byte[] { 'a', 'b', 'c' };
string s = Encording.ASCII.GetString(b);
文字列を数値に変換
// 10進文字列を、数値に変換(Parseメソッドを使用する)
string s = "123";
int i = int.Parse(s);
string s = "1.23";
double d = double.Parse(s);
// 16進文字列を、数値に変換(Convertクラスを使用する)
string s = "0x12"; // ←先頭に"0x"がなくても可
int i = Convert.ToInt32(s);
// 2進文字列を、数値に変換
string s = "1010101";
int i = Convert.ToInt32(s);
数値を文字列に変換
// 数値を、10進文字列に変換
int i = 123;string s = i.ToString();double d = 123.45;string s = d.ToString();
// "123.45"string s = d.ToString("f1"); // "123.5" (四捨五入)
// 数値を、16進文字列に変換
int i = 123;
string s = i.ToString("x"); // "7b" 小文字になる
string s = i.ToString("X"); // "7B" 大文字になる
string s = i.ToString("x04"); // "007b" 桁数の指定+0埋め
// 数値を、2進数に変換
int i = 123;
string s = Convert.ToString(i,2); // "1111011"
string s = Convert.ToString(i,2).PadLeft(16,'0'); // "0000000001111011" 桁数指定+0埋め
文字列のフォーマット(printfみたいな…)
指定する書式 書式指定項目の記述例 出力例
幅指定で右詰め String.Format("{0, 4}", num) “ 1”
幅指定で左詰め String.Format("{0, -4}", num) “1 ”
0埋め String.Format("{0:D4}", num)
または
String.Format("{0:0000}", num) “0001”
幅指定かつ0埋め String.Format("{0, 8:D4}", num) “ 0001”
数値の書式指定でよく使用される書式指定項目の記述例
string str = string.Format("{0},{1}", i, j);
//string str = str(boost::format("%05d") % i);
//cout << boost::format(...
乱数を得るには
System.Random rnd = new System.Random();
int value1 = rnd.Next(); // 0からInt.MaxValueまでの乱数を返す
int value2 = rnd.Next(100); // 0以上、100未満の乱数を返す
int value2 = rnd.Next(10,100); // 10以上、100未満の乱数を返す
四捨五入について
Math.Roundとか、Decimal.Roundは、四捨五入ではない
<MSDNより引用>
このメソッドの動作は、IEEE 規格 754、セクション 4 に従います。このような丸めは、近似値への丸めまたは銀行の丸めと呼ばれることがあります。
/// <summary>数値の四捨五入:適当Ver</summary>
/// <param name="value">数値</param>
/// <param name="place">桁数(0=整数</param>
double RoundOff(double value, uint place) {
return Convert.ToDouble(value.ToString("f"+place.ToString()));
}
/// <summary>数値の四捨五入:真面目Ver</summary>
/// <param name="value">数値</param>
/// <param name="place">桁数(0=整数</param>
double RoundOff(double value, uint place) {
double d = Math.Pow(10, (double)place);
return Math.Floor(value * d + 0.5) / d;
}
最終更新:2007年10月12日 09:48