微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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;
}

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐