两个ChackA与ChackB函数执行是有啥区别,那种方式更好呢

问题描述

publicboolCheckA(Func<bool>func){if(Role==10)returntrue;if(func!=null)returnfunc();returnfalse;}publicboolCheckB<T>(Tentity,Func<T,bool>func){if(Role==10)returntrue;if(func!=null)returnfunc(entity);returnfalse;}publicvoidEdit(intid=0){varentity=typeService.Get(1);varaa=CheckA(()=>{returnentity.CreateUser==2;});varbb=CheckB<SetKv>(entity,(t)=>{returnt.CreateUser==2;});}

解决方案

解决方案二:
不必奢谈什么“最好”的专门引起争议的字眼儿,仅仅说基本的原则然后让人自己去判断。假设注释一段代码,你的软件仍然通过测试,那么这段代码其实就是多余的,放一段时间之后如果还是如此就应该删除掉这些垃圾代码了。我们编程中自然是希望越简单越好,越少定义类型和接口越好,越少写代码越好,越简单地记忆业务逻辑越好。绝不是为了技术而编程的。因此一个东西是不是多余的,首先看你能不能给出必要性的测试来。如果你发现两个东西只要保留一个就够了,没有更多的测试支持另一个的存在,那么你自然就是选择一个看起来麻烦、太技术化的东西,先删除它。
解决方案三:
我们讨论技术,总是同时讨论需求。绝不是为了炫技而盲目罗列垃圾代码的。而需求往往在于你自己,不要让别人给你需求。
解决方案四:
参数不一样,CheckB支持匿名类型判断。
解决方案五:
这不是很明显吗,你给checkA或B传递的方法,有输入参数的就用B,没有的就用AFunc<T,bool>匿名委托,前面的T,是指输入参数的类型;Func<bool>表示没有输入参数
解决方案六:
引用2楼sp1234的回复:

我们讨论技术,总是同时讨论需求。绝不是为了炫技而盲目罗列垃圾代码的。而需求往往在于你自己,不要让别人给你需求。

我对这两种的差异不了解,下面的这种写法有点像闭包,如果不弄清差异,怎么知道在以后的场景中用那种更合适?不懂就问,不丢人varaa=CheckA(()=>{returnentity.CreateUser==2;});

时间: 2024-10-27 01:31:14

两个ChackA与ChackB函数执行是有啥区别,那种方式更好呢的相关文章

jquery trigger函数执行两次的解决方法_jquery

本文实例讲述了jquery trigger函数执行两次的解决方法.分享给大家供大家参考,具体如下: 一.问题如下: 有如下代码: <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> *{margin:0;pa

javascript 终止函数执行操作

 本篇文章主要是对javascript 终止函数执行的操作方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 1.如果终止一个函数的用return即可,实例如下: function testA(){     alert('a');     alert('b');     alert('c'); } testA(); 程序执行会依次弹出'a','b','c'.   function testA(){     alert('a');     return;     alert('b');

javascript-前台调用JS函数,然后再由后台函数执行服务器回传

问题描述 前台调用JS函数,然后再由后台函数执行服务器回传 我的代码是思路是这样的,前台中Click事件触发JS的函数 js: function A() { app.direct.B(); } B是在.cs中: [directMethod] public void b() { //执行代码 -- //回传 e.ExtraParamsResponse.Add(new Ext.Net.Parameter("data", "ABC")); } 但是到B之后,就没有办法传(

javascript-JavaScript,进度条显示函数执行过程进度

问题描述 JavaScript,进度条显示函数执行过程进度 JavaScript,点击某个按钮开始执行函数,如何同时显示一个简单进度条?从而显示函数执行过程进度? 解决方案 如果是for循环这种基本ui是假死清空下,无法更新dom的进度的.如果是ajax,可以使用xmlhttpRequest level2的新特性onprogress,不过低版本呢ie不支持 ajax看这个:http://www.ruanyifeng.com/blog/2012/09/xmlhttprequest_level_2.

my97datepicker-My97DatePicker平面显示时候内置的$dp.cal.getNewDateStr()函数执行错误

问题描述 My97DatePicker平面显示时候内置的$dp.cal.getNewDateStr()函数执行错误 有如下测试代码 function cDayFunc(){ var str,p,c = $dp.cal; alert(c.getDateStr()); alert(c.getNewDateStr()); } <br> WdatePicker({eCont:'startTime',Hchanged:cDayFunc})<br> </div> <input

两种php 字符串替换函数

本文章主要讲到两种php 字符串替换函数 str_replace与substr_replace前一种是替换所有haystace中的needle,并返回haystace替换后的结果,而substr_replace替换字符串string中的一部分具体哪能一部分则取决于起始位置和可选参数length的值 最常用str_replace() 函数原型: mixed str_replace(mixed needle,mixed new_needle,mixed haystace[,int &count])

Golang记录、计算函数执行耗时、运行时间的一个简单方法_Golang

先写一个公共函数, 比如在 common 包下有这么一个方法: // 写超时警告日志 通用方法 func TimeoutWarning(tag, detailed string, start time.Time, timeLimit float64) { dis := time.Now().Sub(start).Seconds() if dis > timeLimit { log.Warning(log.CENTER_COMMON_WARNING, tag, " detailed:&quo

jquery中ready()函数执行的时机和window的load事件比较

  这篇文章主要介绍了jquery中ready()函数执行的时机和window的load事件比较的相关资料,需要的朋友可以参考下 jquery的ready()实现的是 DOMContentLoaded 事件,DOMContentLoaded与window load事件的区别 简单的说ready()是在文档加载完成就会触发,此时图片等资源可能还没有完全加载, load是在所有资源都加载完成后才会触发 看下ready函数的代码就什么都清楚了.下面的代码加上了注释: ? 1 2 3 4 5 6 7 8

jquery中ajax函数执行顺序问题之如何设置同步

 这篇文章主要介绍了jquery中ajax函数执行顺序问题之如何设置同步,需要的朋友可以参考下 JavaScript code  代码如下: function existProduct(obj){    var productname = escape(obj.val());  $.getJSON("../product/searchProductByName.action",datat,function(data){  var falg;  falg = data[0]['exist