尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

typeof()

typeof()
📅 发布时间:2026/6/19 20:16:43

C# 中的 typeof() 是啥?一句话讲清楚:

typeof() 就是“问编译器:这个类型长啥样?”

它不是运行时去查对象,而是编译时就确定你写的那个“类名、接口名、结构名”到底是谁,然后返回一个叫 Type 的对象,这个对象里装满了这个类型的“身份证信息”。


举个接地气的例子:

你写:

Type t = typeof(string);

翻译成人话就是:

“编译器大哥,帮我查一下 string 这个类型的信息,打包成一个‘类型身份证’给我,我叫它 t。”

这个 t 里有什么?比如:

  • 类型名字:"System.String"​
  • 它是不是类?是不是数组?有没有构造函数?
  • 有哪些方法、属性、字段?
  • 它继承自谁?实现了哪些接口?

typeof() 有啥用?实际场景举例:

1️⃣ 反射(Reflection)—— 动态操作类型

你想在程序运行时,根据类型名动态创建对象、调用方法?

Type type = typeof(MyClass);
object obj = Activator.CreateInstance(type); // 动态创建实例

相当于:“我不写死 new MyClass(),而是让程序自己根据类型信息造对象!”

2️⃣ 泛型约束检查

public void DoSomething<T>()
{if (typeof(T) == typeof(string)){Console.WriteLine("传进来的是字符串!");}
}

“我这个泛型方法想知道,用户到底传了个啥类型进来?”

3️⃣ 日志、调试、框架底层

很多框架(比如 ASP.NET Core、EF Core)内部大量使用 typeof() 来获取类型元数据,做路由匹配、数据库映射等。

[ApiController]
[Route("[controller]")]
public class UserController : ControllerBase
{// 框架内部会用 typeof(UserController) 来注册路由
}

注意避坑:

  • ​typeof() 里面只能写类型名,不能写变量!

✅ 正确:

typeof(int)
typeof(List<string>)
typeof(MyClass)

❌ 错误:

string s = "hello";
typeof(s); // 编译报错!s 是变量,不是类型!
  • 如果你想获取某个对象的类型,用 GetType():
string s = "hello";
Type t = s.GetType(); // 运行时获取对象的实际类型

一句话总结区别:

​typeof(类型名) → 编译时就知道 → 问的是“类型模板”
​对象.GetType() → 运行时才知道 → 问的是“这个具体对象是谁”


✅ 通俗总结:

​typeof() 就像你去派出所查一个人的“户口本信息”,你只需要提供“姓名”(类型名),就能拿到他的完整档案(Type对象)。
不管这个人有没有出生(对象有没有实例化),户口本早就存在了!

相关新闻

  • 详细介绍:【C++】C++类和对象—(中)
  • 关于 “Thinking Machines Lab首次发长文” 的一些知识的学习和补充
  • python编程练习(Day4) - 教程

最新新闻

  • 2026无保卡表盒无需担心,青岛本地甄选名表回收门店实测变现技巧 - 讯息早知道
  • 2026 杭州奢侈品回收实测:5家门店综合评级榜单 - 讯息早知道
  • AI辅助决策与GTO策略:构建你的扑克智能工作流
  • 深入解析NXP SB0800 SPI接口:从硬件连接到故障诊断的嵌入式驱动实践
  • 微信小程序二维码生成实战:weapp-qrcode高效解决方案深度解析
  • uniTerm v1.0正式发布内置自主AI Agent一站式跨平台全能终端

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号