Since 2004/05/16
休日ちまちまプログラマーのページです。
日常のプログラミングのメモです。
C#基礎はこれで
慣れたら
C#
2006061701 XMLでファイル読み込み保存を行う。
2006062101 .NET Frameworkをアプリケーションセットアッププログラムと一緒に配布するには。
2006062401 文字列を数値変換

XMLでファイル読み込み保存を行う。(C# 2.0)
アプリケーション固有のデータは、設定ファイルやレジストリ、またはデータベースに保存していたが、XmlSerializerを使用することでまとまったデータを簡単に保存できる。サンプルは簡単なアドレス帳で、名前、性別、誕生日のPersonクラスを作成して、Addressクラスで複数人の管理を行っている。
public class Person
{
    public Person()
    {
    }

    public Person(string nm, string sx, DateTime brth)
    {
        name = nm;
        sex = sx;
        birth = brth;
    }
    private string name = string.Empty;

    public string Name
    {
        get { return name; }
        set { name = value; }
    }
    private string sex = string.Empty;

    public string Sex
    {
        get { return sex; }
        set { sex = value; }
    }
    private DateTime birth = new DateTime();

    public DateTime Birth
    {
        get { return birth; }
        set { birth = value; }
    }
}
上のPersonクラスを、List<Person>で複数管理し、Save(),Open()で保存、読み込みを行う。
using System.IO;
using System.Xml.Serialization;

public class Address
{
    private List<Person> persons = new List<Person>();

    public Address()
    {
    }

    public void Save(string filename)
    {
        
using (StreamWriter sw = new StreamWriter(filename))
        {
            XmlSerializer xs = new XmlSerializer(typeof(List<Person>));
            xs.Serialize(sw, persons);
        }

    }
    public void Open(string filename)
    {
        
using (StreamReader sr = new StreamReader(filename))
        {
            XmlSerializer xs = new XmlSerializer(typeof(List<Person>));
            persons = (List<Person>)(xs.Deserialize(sr));
        }

    }
}

.NET Frameworkをアプリケーションセットアッププログラムと一緒に配布するには。
Visual Studio .NETのセットアッププログラムと一緒に.NET Frameworkを配布するにはここを参照。

文字列を数値変換
文字列を数値に変換するには、ParseメソッドとTryParseメソッド(.NET Framework 2.0)がある。
Parseは変換できない場合に例外をスローするが、TryParseは例外をスローしない。
また、変換元文字列がカンマを含むなど細かい指定ができる。(MSDNを参照)
try
{
    Int32.Parse("2");
}
catch
{
    //変換エラー
}

Int32 n;
if ( Int32.TryParse("2", out n) == false )
{
    //変換エラー
}
Copyright(c) 2003 あら坊