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());
        }
    }
}
相关推荐
我的xiaodoujiao3 分钟前
Django 基础知识详细图文教程 4-Django 视图定义与使用
开发语言·数据库·后端·测试工具·django·sqlite
l1t4 分钟前
DeepSeek总结的DuckDB在 CI 中为 release 和 glibc CLI 构建启用 LTO - #24225
开发语言·数据库·ci/cd·duckdb
whitelbwwww5 分钟前
c++运行RKNN
开发语言·c++
2601_9620702312 分钟前
差异基因富集分析(R语言——GO&KEGG&GSEA)
开发语言·golang·r语言
布莱克60514 分钟前
栈(Stack)详解:定义、作用、应用场景及与队列的区别(附 C/C++ 代码)
c语言·开发语言·c++·
zmzb010315 分钟前
C++课后习题训练记录Day203
开发语言·c++
zzzll111136 分钟前
LangChain4j:Java 生态的 AI 应用开发利器
java·开发语言·人工智能
呆呆敲代码的小Y1 小时前
【游戏开发】Lua 与 C# 交互原理解析
c#·lua·交互·热更新·lua与c#交互·游戏热更新
JAI科研1 小时前
Deepseek Agent Harness教程(七) | Deepseek Harness不是一个内核加一堆插件
开发语言·人工智能·深度学习·算法·自然语言处理·transformer·vllm
用户298698530141 小时前
PDF 转纯文本(TXT)免费攻略:轻松提取文字内容
人工智能·后端·c#