C#中的万物之父——Object类

C#中的万物之父即为object类,object类是所有引用类型和值类型的父类,在编写程序时,可以利用里氏替换原则用object容器来装载其他类型的变量,在使用时,引用类型的变量需要利用is与as来搭配调用,值类型的变量则需要利用强转来调用。

用object类来装载值类型的变量的操作称为装箱,利用强转来使用它们的操作称为拆箱。装箱过程中涉及到将存储在栈空间内的变量向堆内存空间内迁移的操作,会涉及到一定的性能消耗,所以要谨慎使用。

cs 复制代码
namespace ConsoleApp8
{
    class Father 
    {
        
    }

    class Son : Father 
    {
        public void Speak() { Console.WriteLine("Hello, World!"); }
    }
    class Program
    {
        static void Main(string[] args)
        {
            object o = new Son();
            if (o is Son) 
            {
                (o as Son).Speak();
            }

            object o1 = 1f;
            float f = (float)o1;

            object o2 = "123123";
            string str = o2 as string;

            object arr = new int[3];
            int[] arr2 = arr as int[];

            static void TestFun(params object[] array) { }

            TestFun(1, 1.2f, "123123", new Son());
        }
    }
}
相关推荐
C^h7 小时前
c++ string
开发语言·c++
raindayinrain8 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
学逆向的8 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao8 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
学逆向的9 小时前
C 局部静态变量
c语言·开发语言·网络安全
大都督会赢的9 小时前
C++第一节课
开发语言·c++
“AI国潮设计-小江”9 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
小王C语言9 小时前
Qt常用控件:容器类控件,标题分组框、标签页(浏览器标签)
开发语言·qt
我是唐青枫10 小时前
Kotlin Delegation 委托详解
开发语言·kotlin
qq_4069810310 小时前
共享变量一 关于extern与const
开发语言·c++