草庐IT

c# - ref 参数有什么不好?

我遇到了一种情况,我认为只能通过使用ref参数来解决。但是,这意味着当我只需要5%的时间由ref参数提供的功能时,更改方法以始终接受ref参数。这让我觉得“哇,疯了,必须找到另一种方法”。我是不是很傻?ref参数会导致什么样的问题?编辑要求提供更多详细信息,我认为它们与我的要求并不完全相关,但我们开始吧。我想保存一个新实例(它将使用稍后可能使用的ID更新)或检索一个与某些逻辑匹配的现有实例并更新它,保存它然后将新实例的引用更改为指向现有的。代码可能会更清晰:protectedoverridevoidBeforeSave(Logentity){varnewLog=entity;varex

c# 锁定传递给方法的引用 - 不好的做法?

我有一个类似的方法:publicstaticvoidDoSomething(stringparam1,stringparam2,SomeObjecto){//.....lock(o){o.Things.Add(param1);o.Update();//etc....}}几点:以这种方式锁定是不好的做法吗?我应该锁定一个私有(private)静态对象吗?如果是,为什么? 最佳答案 为了尽量减少副作用,被锁定的对象不应是被操作的对象,而是指定用于锁定的单独对象。根据您的要求,有几个选项可用于处理此问题:变体A:私有(private)锁定

c# - 在 TPL 中返回一个空的静态任务是一种不好的做法吗?

有些情况下我想有条件地运行任务。我使用这样的某种扩展方法:publicstaticclassMyTaskExtension{privatestaticTasktheEmptyTask=Task.Factory.StartNew(()=>{});//ThisisthequestionpublicstaticTaskContinueWith(thisTasktask,TaskcontinuationTask,Funccondition){ifcondition(){...dothework}returntheEmptyTask;}}我的期望是theEmptyTask已经完成,所以基本上如果

c# - 使用隐式枚举字段来表示数值是一种不好的做法吗?

使用隐式枚举字段来表示数值一定是一种不好的做法吗?这是一个用例:我想要一种简单的方法来表示十六进制数字,并且由于C#枚举基于整数,因此它们看起来很自然。我不喜欢char或string在这里,因为我必须明确验证它们的值。枚举的问题是数字[0-9]不是有效的字段标识符(有充分的理由)。我突然想到我不需要声明数字0-9,因为它们隐式存在。所以,我的十六进制数字枚举看起来像:publicenumHex:int{A=10,B=11,C=12,D=13,E=14,F=15}所以,我可以写Tupler=Tuple.Create(Hex.F,(Hex)1);,和r.Item1.ToString()+r

javascript - jQuerys $.trim(),错误还是写得不好?

$.trim()使用以下RegExp来trim字符串:/^(\s|\u00A0)+|(\s|\u00A0)+$/g事实证明,这可能非常丑陋,例如:varmystr='sometest--moretextnewtestxxx';mystr=mystr.replace(/^(\s|\u00A0)+|(\s|\u00A0)+$/g,"");此代码挂起Firefox和Chrome,就像永远一样。“mystr”包含空格,但主要是hex160(A0)字符。如果没有前置whitespace/A0,但字符串中某处会出现此“问题”。我不知道为什么会这样。这个表达式:/^[\n\r\t\xA0]+|[\n

javascript - 有太多的同时 AJAX 连接不好吗?

我正在编写一个相当大的基于JavaScript的应用程序,有时甚至会同时处理八(8)个AJAX请求。这是IE6中的问题,因为它会杀死其余的请求,我知道,但是这个应用程序是针对现代浏览器的,所以IE6不是问题。但是,我有一种感觉(没有做过任何实际的分析),合并请求可以产生更好的性能。比如说,一次最多4个请求。所以,我的问题是,与一个接一个地处理请求的池相比,合并AJAX请求有什么好处,或者同时处理多个请求是否可以?我知道这可能取决于浏览器和互联网连接,但我不确定。 最佳答案 IE6不会是您唯一的问题;其他浏览器也限制了对同一服务器的并

javascript - 为什么有些人认为 JavaScript 不好?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion为什么允许在浏览器中禁用JavaScript?(即为什么它被认为是坏的?)

javascript - 将基于类的设计应用于 JavaScript 程序是否是一种不好的做法?

JavaScript是一种基于原型(prototype)的语言,但它能够模仿基于类的面向对象语言的某些功能。例如,JavaScript没有公共(public)成员和私有(private)成员的概念,但通过闭包的魔力,它仍然可以提供相同的功能。类似地,方法重载、接口(interface)、namespace和抽象类都可以以一种或另一种方式添加。最近,由于我一直在使用JavaScript进行编程,我觉得我正在尝试将它变成一种基于类的语言,而不是按照它应该使用的方式使用它。似乎我在试图强制语言符合我的习惯。以下是我最近写的一些JavaScript代码。它的目的是抽象出一些涉及绘制到HTML5

javascript - 使用一个函数来改变条件内的东西,使条件依赖于顺序,这是不好的做法吗?

vara=1;functionmyFunction(){++a;returntrue;}//Alertpopsup.if(myFunction()&&a===2){alert("Hello,world!");}//Alertdoesnotpopup.if(a===3&&myFunction()){alert("Hello,universe!");}https://jsfiddle.net/3oda22e4/6/myFunction递增一个变量并返回一些东西。如果我在包含它递增的变量的if语句中使用这样的函数,则条件将取决于顺序。这样做是好是坏,为什么? 最佳

c# - 在 C# 代码中嵌入 CSS/jQuery 代码不好吗?

我在浏览我们的工作代码库时看到了这种类型的代码:privateButtonAddClearButton(){returnnewButton{OnClientClick=string.Format(@"$('.{0}').css('background-color','#FBFBFB');$('#'+{1}).val('');$('#'+{2}).val('');returnfalse;",_className,_hiddenImageNameClientId,_hiddenPathClientId),Text=LanguageManager.Instance.Translate("/b