草庐IT

Topic相同分区

全部标签

c# - 子类可以实现与其父类相同的接口(interface)吗?

我今天之前从未遇到过这个问题,想知道实现这种行为的约定/最佳实践是什么。基本设置是这样的:publicinterfaceIDispatch{voidDispatch();}publicclassFoo:IDispatch{voidIDispatch.Dispatch(){DoSomething();}}publicclassBar:Foo{...}Bar需要子类化Foo,因为它与Bar共享所有相同的属性,并且引入了2个我需要遇到的新属性。我遇到的问题是Foo还需要一个稍微不同的Dispatch()实现。通常它会被重写,但这对接口(interface)方法无效,所以让Bar也实现IDis

C# 开关/案例共享相同的范围?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Variabledeclarationinc#switchstatement我一直想知道:当我写的时候:switch(temp){case"1":inttmpInt=1;break;}case"1":区域有一段代码被执行(直到中断)现在,来自上方的瀑布不能进入caseof2,例如:switch(temp){case"1":inttmpInt=1;case"2":break;}//错误:缺少中断返回。所以我假设,他们有不同的处决区域(case....break)。那么为什么会出现这个错误呢?//下面定义了冲突变

c# - 如何在不更改相同列表的情况下反转通用列表?

我有一个通用列表,它在一个被调用4次的方法中使用。此方法使用此通用列表的值在PDF中写入表格。我的问题是我需要在方法中反转这个通用列表,但我调用了该方法4次,所以每次我调用该方法时列表都会被反转,我不希望这样......什么我可不可以做?有没有办法在不改变原始列表的情况下反转列表?这是在方法内部:t.List.Reverse();foreach(stringt1int.List){//Somecode} 最佳答案 “简单”的选择是仅以相反的顺序迭代列表而不实际更改列表本身,而不是第一次尝试将其反转并且知道其他时间什么都不做:fore

c# - 在 x 数量相同的数字后拆分字符串

我需要在C#中拆分一个字符串,如下所示:字符串是这样的:0000120400567开头总是0。在上面的示例中,有六个零后跟120400567。我想拆分我得到的最后一部分120400567的字符串。开头零的数量可能会改变(最后一个零件号将增加一个数字)这意味着我们可以有001245878945而我想要的是1245878945。我怎样才能拆分这个字符串,去掉第一个0或第一个x数量的零,只得到结束数字?可能是因为数字的开头没有任何零,数字直接从第一个数字开始......但也可能是数字包含8个零和2个或更多的数字。 最佳答案 stringw

c# - 如何检查每个列表成员的属性值是否相同

假设我有一个拥有一个属性的Student类,intAge.现在如果我有Liststudents,如何检查列表中所有学生的年龄是否相等? 最佳答案 您可以使用All查看方法,想必你的列表中有学生:varfirstStudent=students.First();students.All(s=>s.Age==firstStudent.Age); 关于c#-如何检查每个列表成员的属性值是否相同,我们在StackOverflow上找到一个类似的问题: https://

c# - 使用当前日期和时间创建 NLog 文件而不缓存它,保持存档文件名相同

我正在使用NLog进行一些日志记录,但我遇到了归档和文件名问题。我正在代码中创建日志记录配置(我正在编写一个包装器来公开一些特定的功能),并且我已经使用这些选项创建了FileTarget对象:this._fileTarget.FileName="${date:format=yyyy-MM-ddhh.mm.ss}.log";this._fileTarget.ArchiveAboveSize=Math.Pow(1024,2)*5;//5MBthis._fileTarget.ArchiveNumbering=ArchiveNumberingMode.Date;this._fileTarget

c# - 在 .NET 4 中,BeginInvoke 和 Task 是否使用相同的线程池?

.NET4引入了全新的线程池设计,可由任务并行库访问。但是,如果我有使用Delegate.BeginInvoke的旧代码,这些代码会由那个新线程池执行吗?或者旧的线程池是否仍在运行时的某个地方? 最佳答案 它们都使用相同的线程池。ThreadPool.QueueUserWorkItem也是如此。但是,与Task.Factory.StartNew相比,Delegate.BeginInvoke有额外的开销,并且没有利用ThreadPool中的许多功能,例如工作窃取或新的调试功能.如果时间允许,我建议重构它以使用新的任务功能。

c# - 为什么 catch block 中的 "throw"和 "throw ex"表现相同?

我读到在catchblock中时,我可以使用“throw;”重新抛出当前异常。或“抛出前;”。发件人:http://msdn.microsoft.com/en-us/library/ms182363%28VS.80%29.aspx“要保留异常的原始堆栈跟踪信息,请在不指定异常的情况下使用throw语句。”但是当我尝试这个时try{try{try{thrownewException("test");//13}catch(Exceptionex1){Console.WriteLine(ex1.ToString());throw;//16}}catch(Exceptionex2){Conso

c# - 相同的源,具有不同资源的多个目标(Visual Studio .Net 2008)

一组软件产品的区别仅在于它们的资源字符串、二进制资源,以及它们的VisualStudio安装项目使用的字符串/图形/产品key。创建、组织和维护它们的最佳方式是什么?即所有产品本质上都包含由图形、字符串和其他资源数据定制的相同核心功能,以形成每个产品。假设您正在创建一组产品,如“银行家Excel”、“园丁Excel”、“CEOExcel”等。每个产品都具有相同的功能,但在名称、图形、帮助文件、包括模板等构建它们的环境是:vanillaWindows.Forms/VisualStudio2008/C#/.Net。理想的解决方案应该易于维护。例如如果我引入一个新的字符串/新的资源项目我没有

c# - 多次执行相同的 SQL 查询时重用 SqlCommand 是否更好?

当使用相同的查询但不同的参数查询数据库时,是否更好:一次性完成,还是创建两个单独的查询?单次使用示例:using(SqlCommandaddProduct=newSqlCommand(@"insertinto[Products].[Products]([Name],[Price])values(@name,@price)",sqlConnection)){//Insertthefirstproduct.addProduct.Parameters.AddWithValue("@name","Product1");addProduct.Parameters.AddWithValue("@p