「C#.NET」万物の根源「Object」が織りなす継承の世界

2024年11月11日月曜日

基本

t f B! P L

名前空間 System

自己紹介

私は.NET世界の創造主、Objectである。あらゆるクラスの始祖として、システム全体の基盤を支える存在なのだ。私の血を引かないクラスは一つとして存在せず、すべてのオブジェクトは私から始まるのである。シンプルでありながら、深遠な力を宿している者なのだ。


基本機能

私は子孫たちに不可欠な基本機能を授けている。ToString()による文字列表現、GetHashCode()による一意性の付与、Equals()による同一性の判定。これらの機能なくして、オブジェクト同士の調和は保てないのである。また、ReferenceEquals()という特別な力により、オブジェクトの本質的な同一性を見極めることもできるのだ。

万物の基盤

すべてのクラスは自動的に私を継承する。これは.NETの揺るぎない秩序であり、プログラムの世界における自然の摂理なのだ。この継承により、すべてのオブジェクトは共通の基盤を持つことができる。それはまるで、すべての生命がDNAを共有しているようなものである。

変幻自在の型変換術

私は型の境界を自在に超える力を持っている。boxing(箱入り)とunboxing(解放)という秘術により、値型とリファレンス型の間を自由に行き来することができる。この力により、.NET世界の型システムに柔軟性をもたらしているのだ。

真実を映す鏡

GetType()という力を通じて、私はあらゆるオブジェクトの真の姿を映し出すことができる。これは実行時に型情報を見抜く力であり、リフレクションという高度な魔法の基礎となっているのである。この力により、プログラムは実行時に自らの構造を理解し、動的な振る舞いを実現できるのだ。

C#
using System;

class ObjectExample
{
    static void Main()
    {
        // object型の変数
        object obj = 123;  // int型の値をobjectに格納
        Console.WriteLine("初期値: " + obj);

        // ボックス化された値の操作
        obj = (int)obj + 10;  // objectをintにキャストして加算
        Console.WriteLine("加算後: " + obj);

        // 文字列型の値を格納
        obj = "Hello, Object!";
        Console.WriteLine("文字列: " + obj);

        // object型のメソッド呼び出し
        Console.WriteLine("ToString()の結果: " + obj.ToString());
        Console.WriteLine("GetType()の結果: " + obj.GetType());
    }
}
    
出力結果
初期値: 123  
加算後: 133  
文字列: Hello, Object!  
ToString()の結果: Hello, Object!  
GetType()の結果: System.String

objectとは

C#におけるすべての型の親(基底)クラスです。
数値や文字列、カスタムクラスなど、どんな型でもobject型の変数に入れられます。
〇特徴
ボックス化: 値型(例: int)をobjectに格納できます。
ボックス解除: 格納した値型を元の型に戻す操作です。
〇よく使うメソッド
ToString(): オブジェクトを文字列に変換します。
GetType(): 実際の型情報を取得します。

このブログを検索

QooQ