草庐IT

faculty-items

全部标签

c# - Equals(item, null) 或 item == null

是使用staticObject.Equals的代码检查空值比使用==运算符或regularObject.Equals的代码更健壮?后两者不是很容易被覆盖,以至于检查null不能按预期工作(例如,当比较值为null时返回false)?换句话说,是这样的:if(Equals(item,null)){/*DoSomething*/}比这更强大:if(item==null){/*DoSomething*/}我个人觉得后一种语法更容易阅读。在编写处理作者控制之外的对象(例如库)的代码时是否应该避免?是否应该始终避免(检查空值时)?这只是头发split吗? 最佳答案

c# - 多线程场景调用Dictionary对象的set_item方法抛出NullReferenceException

我们的网站有一个配置页面,比如“config.aspx”,页面初始化的时候会从一个配置文件中加载一些信息。为了缓存加载的信息,我们提供了一个工厂类,并在页面加载时调用工厂的公共(public)方法来获取配置实例。但有时当应用程序池重新启动时,我们会在事件日志中发现一些错误消息,如下所示:Message:Objectreferencenotsettoaninstanceofanobject.Stack:atSystem.Collections.Generic.Dictionary`2.Insert(TKeykey,TValuevalue,Booleanadd)atSystem.Colle

c# - ObservableCollection 和 Item PropertyChanged

我已经看到很多关于这个问题的讨论,但也许我只是一个新手,无法理解它。如果我有一个可观察的集合,它是msdn示例(http://msdn.microsoft.com/en-us/library/ms748365.aspx)中“PersonNames”的集合,如果添加或删除PersonName等,我会更新我的View,等等。我想要当我更改PersonName中的属性时,也可以更新我的View。就像我更改名字一样。我可以为每个属性实现OnPropertyChanged并让此类从INotifyPropertyChanged派生,这似乎按预期被调用。我的问题是,View如何从Observable

c# - 将 ListBox.items 转换为通用列表的最简洁方法

我正在使用C#并以.NETFramework3.5为目标。我正在寻找一小段简洁高效的代码来复制ListBox中的所有项目。到List(通用List)。目前我有类似于下面的代码:ListmyOtherList=newList();//PopulateourcolCriteriawiththeselectedcolumns.foreach(StringstrColinlbMyListBox.Items){myOtherList.Add(strCol);}这当然有效,但我情不自禁地觉得一定有更好的方法来使用一些较新的语言功能来实现这一点。我在想类似List.ConvertAll的东西方法,但

c# - if(items != null) 在 foreach(T item in items) 之前是否多余?

我经常遇到类似下面的代码:if(items!=null){foreach(Titeminitems){//...}}基本上,if条件确保只有当items不为空时,foreachblock才会执行。我想知道是否真的需要if条件,或者foreach将处理items==null的情况。我的意思是,我可以简单地写吗foreach(Titeminitems){//...}不用担心items是否为空?if条件是否多余?或者这取决于items的类型,或者也可能取决于T? 最佳答案 你仍然需要检查if(items!=null)否则你将得到NullR

c# - WPF ListView : Attaching a double-click (on an item) event

我有以下ListView:我如何将事件附加到每个绑定(bind)的项目,双击该项目时将触发该事件? 最佳答案 从这里找到解决方案:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/3d0eaa54-09a9-4c51-8677-8e90577e7bac/XAML:C#:protectedvoidHandleDoubleClick(objectsender,MouseButtonEventArgse){vartrack=((ListViewItem)sender).Con

javascript - 每个循环从 jQuery 中删除 item[i]

如何在项目到达时从项目中删除项目[i]:$.each(items,function(i){//howtoremovethisfromitems}); 最佳答案 最好不要使用$.each在这种情况下。使用$.grep反而。它以与$.each几乎相同的方式循环遍历数组,但有一个异常(exception)。如果您从回调中返回true,该元素将被保留。否则,将其从数组中移除。您的代码应如下所示:items=$.grep(items,function(el,i){if(i===5){//orwhateverreturnfalse;}//doy

JavaScript 数组 : get "range" of items

在JavaScript中是否有ruby​​的array[n..m]的等价物?例如:>>a=['a','b','c','d','e','f','g']>>a[0..2]=>['a','b','c'] 最佳答案 使用array.slice(begin[,end])功能。vara=['a','b','c','d','e','f','g'];varsliced=a.slice(0,3);//willcontain['a','b','c']最后一个索引是非包容性的;要模仿ruby​​的行为,您必须增加end值。所以我猜slice的行为更像ru

javascript - 为什么带有数组的 'for(var item in list)' 在 JavaScript 中被认为是不好的做法?

给定一个简单的从零开始的数字索引数组:varlist=['Foo','Bar','Baz'];很多时候,我注意到当有人建议像这样循环遍历数组中的变量时:for(variteminlist){...}...几乎可以肯定有人认为这是不好的做法,并提出了一种替代方法:varcount=list.length;for(vari=0;i不使用上面更简单的版本而使用第二个示例的原因是什么? 最佳答案 首先,for...in循环的循环顺序是未定义的,因此不能保证属性会按照您想要的顺序迭代。其次,for...in遍历对象的所有可枚举属性,包括从其原

javascript - localStorage.getItem ('item' ) 是否优于 localStorage.item 或 localStorage ['item' ]?

我最近问了aquestionaboutLocalStorage.使用JSON.parse(localStorage.item)和JSON.parse(localStorage['item'])时无法返回NULL该项目尚未设置。但是,JSON.parse(localStorage.getItem('item')确实有效。结果是,JSON.parse(localStorage.testObject||null)也有效。Oneofthecomments基本上说localStorage.getItem()和localStorage.setItem()应该始终是首选:Thegetterandse