当前位置: 首页 > news >正文

C#基础:调试存在变量,但是代码访问不到?一文教你如何处理编译时类型和运行时类型不一致!

一、情景重现

我在即使窗口输入:message.From[0]

输出如下信息:

{"123456" [123456@qq.com](mailto:123456@qq.com)} Address: "123456@qq.com" Domain: "[qq.com](https://link.wtturl.cn/?target=https%3A%2F%2Fqq.com&scene=im&aid=497858&lang=zh)" Encoding: {System.Text.UTF8Encoding.UTF8EncodingSealed} IsInternational: false LocalPart: "123456" Name: "123456" Route: {}

为何我写代码时,访问不到Address,例如我输入:

message.From[0].Address

会显示Address变量不存在(点不出 Address)

二、原因

message.From编译时类型声明为InternetAddressList(抽象基类),只包含少量属性(不含Address),但是调试器输出的是运行时实际类型MailboxAddress(它的子类),C# 是强类型语言,编译期只能访问声明类型的成员,因此访问不到其子类内容。

三、如何处理

1.通过反射查询其子类

即使窗口输入:message.From[0].GetType()

输出信息:

{Name = "MailboxAddress" FullName = "MimeKit.MailboxAddress"} Assembly: {MimeKit, Version=4.17.0.0, Culture=neutral, PublicKeyToken=bede1c8a46c66814} AssemblyQualifiedName: "MimeKit.MailboxAddress, MimeKit, Version=4.17.0.0, Culture=neutral, PublicKeyToken=bede1c8a46c66814" Attributes: Public

从中可得Name =MailboxAddress,是它的子类

2.强制类型转化并访问

知道其子类后,转化一下再点出来,即输入如下信息即可获取:

(message.From[0] as MailboxAddress)?.Address

输出:

123456@qq.com
http://www.jsqmd.com/news/1403475/

相关文章:

  • Windows系统管理工具失效排查:从WMI服务修复到系统深度诊断
  • GLM 混用本地与远程 MCP 酿祸:密钥险泄露后的 4 条网络隔离军规
  • 南浔车主修车怎么选?这家本地老牌汽修,敢承诺修不好不收费 - 收录优先
  • 环保瓷砖胶厂家如何选?看绿色认证等级、VOC释放量和原料供应链透明度就够了 - 品牌排行榜
  • “老板感动,员工无感”,戈壁团建为什么不一样?
  • python的运筹学工业场景模拟第二十九篇:冷链仓储调拨,仓库温度容量双重约束,运输成本差异化,求解最优货物调拨方案。
  • 采购降本提效的10个实战方法:CPPM课程精华整理(附落地清单) - 中采智培
  • 重新定义小程序AI落地:为什么单纯套壳大模型,根本撑不起业务自动化
  • 藏地出行向导怎么选?途乐 7 位本地持证导游完整介绍 - 纯玩旅游推荐官
  • localStorage存储上限与QuotaExceededError错误处理全解析
  • 西藏出行省心指南,7 位持证本地导游 - 纯玩旅游推荐官
  • 客户拜访总“记不住重点”?这套“录音+AI整理”方案,让每次沟通都变成可复用的资产 - AI派
  • 移动端CSS 1px边框问题:从物理像素到视觉像素的终极解决方案
  • Apex启动崩溃Fatal Error DXGI报错怎么办?0x887A0006解决方法
  • 长沙不同商圈黄金回收价差实测,选对地方多拿好几百 - 一刻涨新知
  • BoxHub 盒汇PHP开源工具聚合共创系统源码
  • 被传歪明代古训:那些被后世误读、篡改的华夏老话
  • 2026高性价比亲子乐园票务核销一体系统排行榜
  • 一句话,点亮一台设备:IoT Agent 让物联网平台「开口说人话」
  • 论文写作的“自动驾驶”模式?AIGCbiye的期刊论文撰写功能深度科普
  • 基于STM32与PID算法的循迹小车:从硬件搭建到控制算法实战
  • Eclipse中文界面设置全攻略:从Babel语言包安装到乱码解决
  • 20分钟掌握Obsidian核心功能:从Markdown到知识图谱的快速上手指南
  • Skill:是什么、何时用、怎么封装
  • 【AI工程化】为什么 Agent 总爱过度设计?从 ponytail 看复杂度控制
  • 辽阳本土一站式广告装饰服务商,实体工厂做广告装饰有哪些优势 - 收录优先
  • 智能语义检索与AI辅助文献调研:WorkBuddy CNKI技能实战指南
  • 2026想去内蒙古?先别急着订机票,这7个本地导游了解一下 - 纯玩旅游分享
  • Excel VLOOKUP函数三种查找模式深度解析:精准、近似与模糊匹配
  • 不推倒现有系统:面向多遗留业务系统的AI智能中台建设思路-商业价值详说