用于避免不必要的装箱和拆箱的内置 FxCop 规则

Posted

技术标签:

【中文标题】用于避免不必要的装箱和拆箱的内置 FxCop 规则【英文标题】:Built-in FxCop rule for avoiding unnecessary Boxing and Unboxing 【发布时间】:2012-08-07 10:06:15 【问题描述】:

是否有内置的 FxCop 规则来分析不必要的装箱/拆箱?

以下示例显示了一个违反规则的方法 WeaklyTyped 和一个满足规则的方法 StronglyTyped。

using System;

namespace PerformanceLibrary

    public interface IWork
    
       object DoWork();
     

    public class Work : IWork
    
       object IWork.DoWork()
       
           return 3;
       

       public int DoWork()
       
           return 3;
       
    

    public class NeedsWork
    
        public void WeaklyTyped()
        
            IWork iwork = new Work();
            // The following call violates the rule.
            int x = (int)iwork.DoWork();
        

        public void StronglyTyped()
        
            Work work = new Work();
            int x = work.DoWork();
        
    
 

【问题讨论】:

你能举个例子吗? 我不确定你这里的“不必要”是什么意思,你能扩展一下吗? 【参考方案1】:

过去有一个规则,但现在的 FxCop 版本中不再适用。

您可以使用工具BoxCop,但这并不能很好地集成到构建过程中。

【讨论】:

以上是关于用于避免不必要的装箱和拆箱的内置 FxCop 规则的主要内容,如果未能解决你的问题,请参考以下文章

自动装箱和拆箱的几个细节

C# 装箱和拆箱的简单理解

自动装箱和拆箱的原理

Java中装箱和拆箱的代码

C#中的装箱和拆箱的简单理解

java 啥是拆箱和装箱,拆箱和装箱 嘛用啊???