这种情况对你们中的一些人来说可能并不少见:您有一些功能可以放在一个类中,但是该类的完美名称(*)被System中的一个类采用>不属于您但您正在使用/导入的namespace或其他namespace/类。(*)我所说的完美是指小巧、简洁和清晰的名称。例如,我有一个Utils类,它有一个Diagnostics(主要是debugutils)类和一个Drawing类。我可以:有一个DrawingUtils类和一个DiagnosticsUtils类,但这闻起来像是结构不好。选择一个同义词库,然后用一个更糟糕、更长或笨拙的名字来完成,这些名字仍然不经意地被使用。用我的母语而不是英语写类(class
namespaceGenericsTest{publicclassAGenericClass{publicclassNestedNonGenericClass{}}}在上面的例子中,应该NestedNonGenericClass被认为是泛型类?反射API说它是一个泛型类,甚至把包含类的模板参数作为嵌套类的模板参数交给我。TypenestedClass=typeof(AGenericClass.NestedNonGenericClass);Console.Out.WriteLine("IsGeneric:{0}\tHasGenericArguments:{1}",nestedClass.
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion最近,我发现自己和老板就我们的网络应用程序(一个c#asp.netMVC应用程序)中的异常处理发生了很多争论。基本上对话是这样的:老板:“我们的程序出了点问题,客户x的数据库今天宕机了,大家都看到了错误页面。”我:“大多数情况下,应用程序中的每个页面都使用数据库来做某事(错误页面除外),除了显示错误页面之外没有其他合理的选择。”老板:“我们的应用程序应该更具弹性——不需要数据库访问的应用程
谁能清楚地说明在类设计中何时使用字段以及何时使用属性?考虑:publicstringName;或者:privatestring_Name;publicstringName{get{return_Name;}set{_Name=value;}}我意识到第二种方法更合适和灵活,所以这就是我通常尝试使用的方法。但为什么我看到人们使用第一种方法呢?他们只是懒惰,还是在某些特定情况下这是正确的选择?这只是一个偏好问题吗? 最佳答案 在C#3.0中,您实际上可以编写:publicstringName{get;set;}这让你既得体又懒惰。一般来
我是否应该检查字典中是否存在特定键如果我确定它会在我到达访问它的代码时添加到字典中?有两种方法可以访问字典中的值检查ContainsKey方法。如果它返回true,那么我将使用字典对象的索引器[key]进行访问。或TryGetValue将返回true或false以及通过out参数返回值。(如果我想获得值(value),第二个将比第一个表现更好。Benchmark。)但是,如果我确定访问全局字典的函数肯定有key,那么我是否仍应使用TryGetValue检查或不检查我应该使用indexer[]。或者我永远不应该假设并始终检查? 最佳答案
在我的中型项目中,我为存储库、服务等使用了静态类,它实际上工作得很好,即使大多数程序员的期望相反。我的代码库非常紧凑、干净且易于理解。现在我尝试重写所有内容并使用IoC(控制反转),但我非常失望。我必须在每个类、Controller等中手动初始化许多依赖项,为接口(interface)添加更多项目等等。我真的没有看到我的项目有任何好处,而且似乎它造成的问题多于解决的问题。我在IoC/DI中发现了以下缺点:更大的代码量馄饨代码而不是意大利面条代码性能较慢,即使我要调用的方法只有一个依赖项,也需要在构造函数中初始化所有依赖项不使用IDE时更难理解一些错误被推送到运行时添加额外的依赖(DI框
当我想在我的类之外将值类型设置为只读时,我会这样做:publicclassmyClassInt{privateintm_i;publicinti{get{returnm_i;}}publicmyClassInt(inti){m_i=i;}}我该怎么做才能制作List在我的类(class)之外输入只读(这样他们就不能在其中添加/删除元素)?现在我只是宣布它公开:publicclassmyClassList{publicListli;publicmyClassList(){li=newList();li.Add(1);li.Add(2);li.Add(3);}}
关闭。这个问题是opinion-based.它目前不接受答案。想改善这个问题吗?更新问题,以便可以通过editingthispost用事实和引文回答问题.8年前关闭。Improvethisquestion我目前正在使用.Net3.5中的Silverlight、WCF、EnterpriseLibrary、Unity、LinqToSql、NUnit、RhinoMocks等技术进行项目我正在培训一个新的开发人员,他对VB脚本和SQL有一定的经验,但没有接触过.Net几乎100%的代码库都有单元测试覆盖率,但似乎让新开发人员开始编写单元测试太多了,有足够的东西让他了解,而不会增加单元测试和模拟
我试图了解哪些用例需要我将List声明为ReadOnly类型。与此相关的一个问题是:在实例化列表时分配了多少内存? 最佳答案 将字段标记为readonly的主要原因是为了让您知道常规代码不能交换列表引用。一个可能重要的关键场景是,如果您有其他代码在使用lock(theListField)对列表执行同步的类型中。.显然,如果有人交换列表实例:事情就会崩溃。请注意,在大多数具有列表/集合的类型中,预计不会更改实例,因此readonly断言这种期望。一个常见的模式是:privateList_items=newList();publicLi
我正在做一个项目,我刚刚开始做所有必要的工作来全局化应用程序。经常出现的一件事是是否全局化异常消息,但确保string.Format使用CultureInfo.CurrentCulture而不是CultureInfo.InvariantCulture。此外,这意味着异常消息将存储在可标记为特定于文化的资源文件中。所以问题是,异常消息应该全局化还是应该留在InvariantCulture或作者所在的国家;在我的例子中是en-US。 最佳答案 异常消息应该很少直接显示给用户。您需要考虑每个字符串的使用者。显然,用户界面中的文本片段需要国