C#のstringの内部構造をシミュレートしてみる
以下は、自作のstringクラスのコードです。
public class MyString
{
private char[] data;
public MyString(string input)
{
data = input.ToCharArray();
}
public char this[int index]
{
get { return data[index]; }
set { data[index] = value; }
}
public int Length
{
get { return data.Length; }
}
public override string ToString()
{
return new string(data);
}
}
このコードでは、stringクラスと同じように、文字列をchar型の配列で内部的に保持しています。また、インデクサを実装しているため、文字列の各文字にアクセスすることができます。さらに、Lengthプロパティを実装しているため、文字列の長さも取得できます。最後に、ToStringメソッドをオーバーライドしているため、MyStringクラスのオブジェクトをstring型に変換することもできます。
以下は、このクラスを使用したサンプルコードです。
MyString myString = new MyString("Hello, world!");
Console.WriteLine(myString[7]); // 'w'
myString[7] = 'W';
Console.WriteLine(myString.ToString()); // "Hello, World!"
Console.WriteLine(myString.Length); // 13
ディスカッション
コメント一覧
まだ、コメントがありません