草庐IT

ACCEPT_SINGLE_VALUE_AS_ARRAY

全部标签

c# - 最佳实践 : ref parameter or return value?

其实我是做一个列表作为引用参数如下:publicstaticListListMethod(Listresult)我也看到有人这样做:publicstaticvoidListMethod(refListresult)如果我没记错的话,“my”方法也将list作为引用参数,您应该可以像“other”在他的方法中一样使用它。但在我看来,您输入一个参数,对它做一些事情并在方法返回值中返回它似乎更“干净”。支持或反对一种方法或另一种方法的任何好的论据? 最佳答案 可能您不需要使用ref-但是有区别的。通常当我看到人们使用ref作为引用类型参数

c# - 隐式类型数组 : why we can't set array size explicitly?

C#语言规范(7.6.10.4)说,数组创建表达式有树种:newnon-array-type[expression-list]rank-specifiersoptarray-initializeroptnewarray-typearray-initializernewrank-specifierarray-initializer第三个用于隐式类型数组:varfoo=new[]{1,2,3};问题:在隐式类型数组的情况下,是否有任何重要的理由禁止显式设置数组大小?与这种语法相比,它看起来像是不对称行为:varfoo=newint[3]{1,2,3};更新。稍微澄清一下。我可以看到,显式设

c# - 尝试打开 telerik 报告时出现 "Value cannot be null. Parameter name: instance"错误

在我的解决方案中,我有telerik报告,当尝试在VisualStudio2010设计器中打开它们时,我收到此错误:Valuecannotbenull.Parametername:instanceCallStackatSystem.ComponentModel.TypeDescriptor.AddAttributes(Objectinstance,Attribute[]attributes)atMicrosoft.VisualStudio.Design.VSDesignSurface.CreateDesigner(IComponentcomponent,BooleanrootDesig

c# - 使用 Single 作为 Assert 是一种不好的做法吗?

我正在测试一种操作集合的方法。给定一组参数,它应该只包含一个与条件匹配的元素。编辑:该集合可能还有其他几个不符合条件的元素。我正在使用Single测试该行为,效果很好,因为如果根本没有匹配项或多个匹配项,它将通过抛出异常来使测试失败。但是没有实际的断言,它以某种方式违反了arrange、act、assert。所以我想知道这是否是一种不好的做法,是否有更好的方法来做到这一点。以下伪代码演示我的问题:[TestMethod]publicvoidTestMethod(){Listlist=MethodToTest(param1,param2);list.Single(s=>s.Matches

c# - 是否有任何有值(value)的 CSLA 替代品可用?

我的公司有兴趣将大型业务应用程序移植到.NET。我们计划开发桌面版和silverlight版。我主要研究了CSLA框架(得到了rocky的书,已经读了一半)并发现它有点过度设计,数据层方面似乎也没有那么完善。有没有其他框架声称可以做CSLA正​​在做的事情?我不是在谈论ORM工具(例如L2S、EF、NHibernate)。我感兴趣的是支持业务规则的框架、简单的n层架构、对象是域驱动的而不是数据库驱动的、业务对象的安全性等...我知道我可以找到小型框架来完成一些所需的工作(我想到了EnterpriseApplicationBlock),但我正在寻找一个包含所有内容的框架。

c# - Visual Studio 中的 "Add existing item": is it possible to make "Add as link" default?

正如this中指出的那样因此,VisualStudio中的Add>Existingitem对话框默认显示Add按钮(意味着所选项目将被物理复制到新位置),而理想的操作通常(总是?)添加为链接。是否可以配置VisualStudio,以便在打开添加>现有项目对话框时默认选择添加为链接?我已经彻底搜索了VisualStudio中的Options对话框并检查了MSDN文档以找到对此的答案,但到目前为止无济于事。ProjectLinker当两个新项目要共享同一代码库时,自动链接是一个不错的选择。但是,当将大量文件从现有项目链接到新项目时,似乎仅限于Add>Existingitem方法,而且这项工

c# - Array 类和 Enum.GetValues() 的简单形式

我正在使用静态方法Enum.GetValues(typeof(SomeEnum));当您需要做的只是枚举值时,此方法非常有用,但出于某种原因,它返回一个非常简单的Array类形式。我正在尝试找到一种简单的方法将其返回值转换为更“正常”的集合类,例如常规数组或List。到目前为止,如果我想这样做,我必须枚举Enum.GetValues(typeof(SomeEnum));的输出。并将它们一一添加到列表。有什么想法可以更干净地做到这一点吗?答案:关键是对返回结果进行强制转换--SomeEnum[]enums=(SomeEnum[])Enum.GetValues(typeof(SomeEnu

c# - 将 system.array 对象转换为 int[] 字符串或其他类型的对象

我正在学习C#并试图理解它的“面向类型”方面。所以前几天我需要从一个方法中接收一个System.Array对象。然后我尝试使用它的单个对象,所以我尝试用索引来解决它。编译器不让,说System.Array对象不支持索引。但是Array不是所有数组的基类吗(System.Arrayonmsdn)?为什么int[]支持索引而Array[]不支持?下面是一些代码来演示这个问题:int[]intArray={1,2,3,4,5,6,7,8,9,10};intt;ArraysysArray;Console.WriteLine("{0}",intArray.GetType().ToString()

c# - 什么.NET StringComparer 相当于 SQL 的 Latin1_General_CI_AS

我在我的数据库和我的C#代码之间实现了一个缓存层。这个想法是根据查询的参数缓存某些数据库查询的结果。数据库使用默认排序规则-SQL_Latin1_General_CP1_CI_AS或Latin1_General_CI_AS,我相信基于一些简短的谷歌搜索,这等同于相等,只是排序不同。我需要一个.NETStringComparer,它可以为我提供相同的行为,至少对于相等性测试和哈希码生成,就像数据库的排序规则正在使用的那样。目标是能够在C#代码中的.NET字典中使用StringComparer来确定特定字符串键是否已在缓存中。一个真正简化的例子:varcomparer=StringComp

c# - 事件参数; "sender as Object"或 "sender as T"?

当我为我的业务对象编写公共(public)事件时,除了额外的特定参数外,我已经习惯了始终将实例作为“发送者作为对象”传递。我现在只是问自己为什么我不指定类?所以对于有更多经验的你;您是否曾经在事件中作为发件人传递不同的类别?如果是这样,您的决策标准是什么时候可以/不可以? 最佳答案 不要太极端。EventHandler(objectsender,EventArgse)有一个对象发送器,所以我们可以在很多情况下使用它。但这并不意味着强类型发件人是邪恶的。当此委托(delegate)不会被广泛使用(如EventHandler)时,强类型