c# – (为什么)调用扩展方法首选…方式?

我正在使用刚刚发布的Resharper版本(2016.2.2)重新解析我的解决方

标记这行代码

ReportRunnerConstsAndUtils.ConvertValuetoAppropriateTypeAndAssign(totalPackagesCell,packages);

…暗示我应该“调用扩展方法

如果我认,它会改变这一行:

totalPackagesCell.ConvertValuetoAppropriateTypeAndAssign(packages);

这是否更好?如果是这样,怎么样?为什么?

这是被调用方法,它位于“ConstsAndUtils”类中:

// Adapted from https://stackoverflow.com/questions/26483496/is-it-possible-to-ignore-excel-warnings-when-generating-spreadsheets-using-epplu
public static void ConvertValuetoAppropriateTypeAndAssign(this ExcelRangeBase range,object value)
{
    string strVal = value.ToString();
    if (!String.IsNullOrEmpty(strVal))
    {
        decimal decVal;
        double dVal;
        int iVal;

        if (decimal.TryParse(strVal,out decVal))
            range.Value = decVal;
        if (double.TryParse(strVal,out dVal))
            range.Value = dVal;
        else if (Int32.TryParse(strVal,out iVal))
            range.Value = iVal;
        else
            range.Value = strVal;
    }
    else
        range.Value = null;
}

解决方法

正如一些评论所指出的,这至少部分是偏好问题.就个人而言,我认为在这里使用扩展方法更“清洁”和更清晰,但有些人可能不同意这一点.

“引擎盖下”,当然,扩展方法一个静态方法(不是一个实际的实例方法),只是编译器在这里给你一些语法糖(但除此之外).

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...