在覆盖 Equals 的 null 检查之前转换为对象[重复]

2023-11-23

只需阅读有关覆盖相等运算符的 msdn 文章here

下面的片段让我困惑......

// If parameter cannot be cast to Point return false.
TwoDPoint p = obj as TwoDPoint;
if ((System.Object)p == null) // <-- wtf?
{
    return false;
}

为什么有一个演员阵容Object在这里执行null比较?


运算符通过静态分析(和重载)而不是虚拟方法(覆盖)来应用。通过强制转换,它正在执行引用相等性检查。没有演员表,它可以运行TwoDPoint操作员。我想这是为了避免添加运算符时出现问题。

不过,就我个人而言,我会明确进行参考检查ReferenceEquals.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在覆盖 Equals 的 null 检查之前转换为对象[重复] 的相关文章

  • 如何在 Visual Studio 2010 中增强 XAML 设计器?

    当我使用 XAML 设计器时 进入设计器和退出设计器是如此困难和缓慢 当我这样做时 Visual Studio 卡了一段时间 有什么方法可以增强 XAML 设计器和编辑器吗 Ant 保存 XAML 文件时非常慢 这通常意味着您可能有复杂的
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • XamlReader.Load 在后台线程中。是否可以?

    WPF 应用程序具有从单独的文件加载用户控件的操作 使用XamlReader Load method StreamReader mysr new StreamReader pathToFile DependencyObject rootOb
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 使用 C 语言使用 strftime() 获取缩写时区

    我看过this https stackoverflow com questions 34408909 how to get abbreviated timezone and this https stackoverflow com ques
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • Process.Start() 方法在什么情况下返回 false?

    From MSDN https msdn microsoft com en us library e8zac0ca v vs 110 aspx 返回值 true 表示有新的进程资源 开始了 如果由 FileName 成员指定的进程资源 St
  • 如何在 C# 中调整图像大小同时保持高质量?

    我从这里找到了一篇关于图像处理的文章 http www switchonthecode com tutorials csharp tutorial image editing saving cropping and resizing htt
  • Server.MapPath - 给定的物理路径,预期的虚拟路径

    我正在使用这行代码 var files Directory GetFiles Server MapPath E ftproot sales 在文件夹中查找文件 但是我收到错误消息说 给定物理路径但虚拟路径 预期的 我对在 C 中使用 Sys
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 如何将 Roslyn 语义模型返回的类型符号名称与 Mono.Cecil 返回的类型符号名称相匹配?

    我有以下代码 var paramDeclType m semanticModel GetTypeInfo paramDecl Type Type Where paramDeclType ToString returns System Col
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub

随机推荐

  • 一个线程中对非易失性成员变量的赋值是否保证在另一个线程中可见?

    考虑下面的 Java 示例 请注意 两个类成员变量都没有声明为volatile 如果我正确理解内存模型和 发生在 规则之前 Java 实现可以优化run 方法 使其永远运行 即使另一个线程调用该方法stopNow 方法 发生这种情况是因为里
  • 从数据库代码中删除样板

    看来每次我要执行数据库查询时 我都必须编写以下内容 Connection conn null Statement stmt null ResultSet rset null try conn dataSource getConnection
  • 适当的布尔随机生成器(伯努利分布)

    我很想知道是否有默认的随机布尔生成器randomC 11 库 我一直在使用 int 生成器返回0 or 1然后转换为 bool 但我正在尝试优化我的代码 并认为我可以通过从一开始就使用 bool 生成器 如果存在 来节省成本 See std
  • 砍掉每个变量名称的第一个字母[重复]

    这个问题在这里已经有答案了 我有一些数据看起来像这样 country agdp apop 1 US 100 100 2 Australia 50 50 变量名称是agdp and apop 但我希望他们是gdp and pop 我的真实数据
  • Bootstrap-vue b-table 标头中带有过滤器

    我有一个使用 bootstrap vue 生成的表 显示系统搜索的结果 结果表向用户显示记录 用户可以对它们进行排序和过滤 如何在表格标题下方添加搜索字段 th 使用 bootstrap vue 生成 th
  • 为什么我无法使用 Xamarin 在可移植类库中引用 System.Net.Sockets?

    我正在尝试在可移植类库中使用 System Net Sockets API 以便我的项目可以重用套接字连接代码 但我无法在代码中引用该名称空间 据我了解 PCL 限制您只能使用所有目标平台上可用的程序集 但我的目标是 ios Android
  • C# 与 SharpZipLib - SharpZipLib 与 Winzip 和 XP 的兼容性吗?

    我正在使用SharpZipLib自动压缩某些文件的库 问题是生成的 zip 文件不适用于 Winzip 版本 8 1 或 XP 的压缩文件夹 它确实可以与 7zip 一起使用 Winzip 给出一个错误该文件不是标准 Zip 2 0 格式
  • TabIndex 无法正常工作

    I have a windows form application On the form there are three groupboxs Each groupbox contains some controls Please see
  • 如何在模板绑定中从 Angular 4 访问 getter/setter 访问器?

    假设我有以下 getter setter 方法 get next console log this people this index this index return this people this index set next i
  • 使用 jQuery .filter() 选择 div 中的特定文本

    HTML p class greeting hello my name is kevin what s yours p jQuery p greeting filter function return this text my name i
  • JPA 不生成“删除时设置为空”FK 限制

    我有两个相关的 JPA 注释类 警报和状态 一个警报可以有一个状态 我需要的是能够删除一个状态并将空值 传播 到已删除的该状态中的警报 也就是说 我需要将外键定义为 删除时设置为空 Entity public class Alarm Id
  • PHP 速度与其他语言的比较

    我经常听说 PHP 与其他语言相比速度很慢 速度差异是否足够明显以至于我应该切换到另一种语言 如果是这样 您会推荐什么其他语言 或者有什么好的优化可以加快 PHP 的速度 这个问题经常出现 答案是 是的 它比 C Java C C 等慢 不
  • 具有 memory_order_relaxed 的存储是否有可能永远不会到达其他线程?

    假设我有一个线程A写入一个atomic int x 0 using x store 1 std memory order relaxed 如果没有任何其他同步方法 其他线程需要多长时间才能看到这一点 使用x load std memory
  • costura.fody 用于引用另一个 dll 的 dll

    我有一个我写的小exe 它使用LibGit2Sharp我正在尝试使用Costura Fody嵌入所有内容 这样我只有一个可执行文件可以分发 实际上 还有两个配置文件 但这没关系 问题似乎是这样的LibGet2Sharp dll有相当坚定的参
  • C# 如何初始化WebService

    是否有可能初始化 WebService 我正在寻找一种仅在第一次调用 WebService 期间运行的方法 Net 中有类似的东西吗 如果您在给定客户端第一次连接到 Web 服务时需要 初始化 Have an Initialise返回令牌
  • 路径助手生成带有点而不是斜线的路径

    在我的 paths rb 中 我有以下内容 resources message threads 当我打电话时 message threads path 1 I get message threads 1 为什么是这样 我的其他资源运行良好
  • 给定成对距离且簇数未知的聚类?

    我有一组对象 obj1 obj2 obj3 objn 我已经计算了所有可能对的成对距离 距离存储在n n matrix M with Mij之间的距离obji and objj 那么自然就可以看到M是一个对称矩阵 现在我希望对这些对象执行无
  • 从指令内更改属性

    使用 AngularJS 我有一个指令 我想要有两种方式的数据绑定 该指令将有一个名为 activate 的属性 最初 activate 的值为 1 该指令的链接函数将检查 activate 是否等于 1 如果是这样 它会将 activat
  • 强制执行标记的 AWS IAM 策略

    有没有办法在创建 EC2 实例时强制执行标记 如果没有某些标签 用户无法启动实例 我可以使用该标签根据标签来控制特定实例吗 我在为客户工作时也遇到过类似的用例 答案是是的你可以 您可以强制用户通过 IAM 策略应用特定标签 例如 您可以将策
  • 在覆盖 Equals 的 null 检查之前转换为对象[重复]

    这个问题在这里已经有答案了 只需阅读有关覆盖相等运算符的 msdn 文章here 下面的片段让我困惑 If parameter cannot be cast to Point return false TwoDPoint p obj as