当前位置:  开发笔记 > 编程语言 > 正文

.Net隐式转换指南

如何解决《.Net隐式转换指南》经验,为你挑选了1个好方法。

什么是关于何时,应该或不应该定义用户定义的隐式转换的一般指导原则?

我的意思是,例如,"隐式转换永远不会丢失信息","隐式转换永远不应该抛出异常",或"隐式转换永远不应该实例化新对象".我很确定第一个是正确的,第三个不是(或者我们只能隐式转换为结构),而我不知道第二个.



1> Jon Skeet..:

第一个并不像你想象的那么简单.这是一个例子:

using System;

class Test
{
    static void Main()
    {
        long firstLong = long.MaxValue - 2;
        long secondLong = firstLong - 1;

        double firstDouble = firstLong;
        double secondDouble = secondLong;

        // Prints False as expected
        Console.WriteLine(firstLong == secondLong);

        // Prints True!
        Console.WriteLine(firstDouble == secondDouble);        
    }
}

就个人而言,我很少创建自己的隐式转换.我对框架中的那些人感到高兴,但我很少觉得添加自己的东西会让生活更美好.(一般来说,值类型也是如此,顺便说一句.)

编辑:只是为了实际回答这个问题,可能值得阅读微软类库设计指南中的转换运算符部分.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有