c# – (为什么)调用扩展方法首选…方式?
发布时间:2020-12-15 23:35:17 所属栏目:百科 来源:网络整理
导读:我正在使用刚刚发布的Resharper版本(2016.2.2)重新解析我的解决方案 它标记这行代码: ReportRunnerConstsAndUtils.ConvertValueToAppropriateTypeAndAssign(totalPackagesCell,packages); …暗示我应该“调用扩展方法” 如果我默认,它会改变这一行: totalP
我正在使用刚刚发布的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; } 解决方法
正如一些评论所指出的,这至少部分是偏好问题.就个人而言,我认为在这里使用扩展方法更“清洁”和更清晰,但有些人可能不同意这一点.
“引擎盖下”,当然,扩展方法是一个静态方法(不是一个实际的实例方法),只是编译器在这里给你一些语法糖(但除此之外). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |