草庐IT

open-generics

全部标签

c# - Visual Studio 代码分析规则 - "Do not expose generic lists"

Donotexposegenericlists如果我所有的方法都需要公开一个集合,那么我需要使用LinqExtension.ToList(),几乎所有我需要使用列表的地方,或者我所有代码中的用户集合。如果是这样的话,.ToList()是在忽略规则吧?或者是否有一种技术,例如复制列表o来解决违规问题并仍然返回列表? 最佳答案 我禁用了该规则,因为我觉得它无效。如果你想返回一个包含O(1)的集合count并且不是对内部字段的直接引用,List是最好的选择。我不太了解您的情况,但听起来您有一种方法可以返回对某些内部数据的LINQ查询。如果

c# - 将 Generic<Derived> 转换为 Generic<Base>

这个问题在这里已经有了答案:CannotconvertfromListtoList(6个答案)InC#,whycan'taListobjectbestoredinaListvariable(14个答案)关闭1年前。我有一个基本的WPFUserControl,它处理派生的UserControl的一些常见功能。在任何派生的UserControl的代码隐藏中,我调用一个事件privatevoidSomeClick(objectsender,RoutedEventArgse){HandleClick(sender);MyDataGrid.Items.Refresh();}在我的基本UserCo

c# - 如何使用 HTMLAgilityPack 修复 html 标签(缺少 <open> 和 <close> 标签)

我有一个带有helloHihi的html所需输出:hellohi使用HTML敏捷包是否可以解决此类缺少结束和开始标记的类似问题? 最佳答案 该库不够智能,无法在您放置它的位置创建开头的p,但它足够智能,可以创建缺少的h1。通常,它总是会创建有效的HTML,但并不总是您所期望的那样。所以这段代码:HtmlDocumentdoc=newHtmlDocument();doc.Load(yourhtml);doc.Save(Console.Out);将转储这个:helloHihi这不是您想要的,但却是有效的HTML。您还可以添加这样的小技巧

c# - 等于 System.Collections.Generic.List<T>... 的方法?

我正在创建一个派生自List的类...publicclassMyList:List{}我已经覆盖了MyListItem的Equals...publicoverrideboolEquals(objectobj){MyListItemli=objasMyListItem;return(ID==li.ID);//IDisapropertyofMyListItem}我也想在MyList对象中有一个Equals方法,它将比较列表中的每个项目,在每个MyListItem对象上调用Equals()。简单地调用...会很好MyListl1=newMyList(){newMyListItem(1),ne

c# - 可以锁定 System.Collections.Generic.List<t> 吗?

我一直在阅读有关syncroot元素的信息,但我在List类型中找不到它。那么System.Collections.Generic.List类型应该如何进行多线程同步呢? 最佳答案 你找不到它的原因是因为它是explicitlyremoved.如果它真的是你想做的,使用SynchronizedCollection或者创建一个专用的同步对象。最好的方法(通常)是创建一个专用的同步对象,正如Winston所说明的那样。SyncRoot的本质问题特性是它提供了一种错误的安全感——它只能处理非常有限的情况。开发人员经常忽略整个逻辑操作的同步

c# - 犀牛模拟 : How to stub a generic method to catch an anonymous type?

我们需要stub一个通用方法,该方法将使用匿名类型作为类型参数来调用。考虑:interfaceIProgressReporter{TReport(TprogressUpdater);}//Unittestarrange:FuncreturnArg=(x=>x);//wewishtoreturntheargument_reporter.Stub(x=>x.Report(null).IgnoreArguments().Do(returnArg);如果在被测方法中对.Report()的实际调用是使用对象作为类型参数完成的,那么这将起作用,但实际上,调用该方法时使用的T是匿名类型。此类型在被测

c# - Open XML - 如何向 docx 文档添加水印

我正在尝试获取现有文档,如果标题不存在,请创建一个,然后在标题中添加一个水印,上面对角地写着“DRAFT”。我按照一个例子发布了here如果标题已经存在,我已经将代码添加到添加水印的位置。当前的问题是当我添加一个新的标题,添加对文档的引用,然后将水印添加到标题时,文档损坏并且无法再在Word2010中打开。为了测试,我一直在执行以下操作:从word本身创建一个新的word文档,在页面的主要部分中包含文本“TestDoc”。将文件另存为“TestDoc.docx”并关闭文件。然后我从VisualStudio运行应用程序。下面的代码总是会使其损坏。如果我向文件中添加一个没有文本的标题,然后

C# Generic Constraint - 如何引用当前类类型?

我有以下类/接口(interface):publicabstractclassAbstractBasePresenter:IPresenterwhereT:class,IView{}publicinterfaceIPresenter{}publicinterfaceIView:IViewwhereTV:IViewModelwhereTE:IEditModel//whereTP:AbstractBasePresenter{}publicinterfaceIView{}有什么方法可以将IView上的TP限制为继承自AbstractBasePresenter的类?或者我唯一的选择是创建一个非

c# - 来自 Visual Studio 2013 RC 的 "Cannot find or open the PDB file"

第一次使用C#,但我有Java经验。我写了一个HelloWorld程序来启动自己,但是我在编译时遇到了这个找不到或打开PDB文件错误。'ConsoleApplication4.vshost.exe'(CLRv2.0.50727:ConsoleApplication4.vshost.exe):Loaded'C:\Windows\assembly\GAC_64\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll'.CannotfindoropenthePDBfile.'ConsoleApplication4.vshost.exe'(CLRv2.0

c# - 错误 : ExecuteReader requires an open and available Connection. 连接的当前状态为打开

我有下面带有DataHelperClass的mvc4网站来执行查询。我的问题有时是,网站以异常为标题。我使用block来处理SqlCommand和SqlDataAdapter但没有成功。请帮助我,对不起我的英语。try{if(_conn.State==ConnectionState.Closed)_conn.Open();using(SqlCommandsqlCommand=newSqlCommand(query,_conn)){sqlCommand.CommandType=CommandType.StoredProcedure;if(parameters!=null)sqlComma