草庐IT

应不应该

全部标签

c# - 我应该压缩内存中的 C# 对象以获得更好的性能吗?

我有一个应用程序(C#、WPF)可以显示许多财务图表以及来自服务器的实时数据流。在内存中收集的数据可能会变得有点大,我不想在磁盘上保留任何数据。由于历史数据本身不会改变,只会被添加,以某种压缩格式保留该数据(存储在集合对象中)是否有意义?是否有可能,如果可以,有人可以推荐一个好的做法吗?更新关于性能和权衡的一些注意事项:我知道压缩会增加访问数据的延迟,但是,用户只需要对到达的新数据进行快速更新。当访问已经呈现的数据(例如,研究或重新呈现它)时,他不需要快速响应。 最佳答案 压缩和解压缩会使您的应用程序变慢,因此对于性能(速度)而言,

c# - 应该如何托管 GRPC 服务?

我使用Link中给出的示例在C#中创建了一个GRPC服务器.现在我想弄清楚我应该如何托管此服务器以便实现以下目标:我应该将此服务器设为控制台应用程序还是Windows服务。如果我将其设为Windows服务,那么更新该服务将很麻烦(这是一个很大的负面影响),如果我将其设为控制台应用程序,则更新只需要关闭exe。但这伴随着错误关闭相同的价格。还有其他更好的方法吗?使用IIS时不会出现此问题,因为我可以简单地从LB中删除网站并停止网站执行更新,但由于GRPC不会成为IIS的一部分,我不确定如何获取这个工作。欢迎任何关于更好架构的引用。 最佳答案

c# - WPF 应用程序应该用 C++/CLI 还是 C# 编写?

WPF应用程序的核心是托管应用程序?Right?因此,我必须在使用托管C++或托管C#之间做出选择。几年前我尝试过托管C++。它似乎还没有为黄金时段做好准备。我猜微软在托管C#上投入的精力比托管C++多。因此,似乎使用托管C#是两者之间的最佳选择。是这样吗?您对这两种语言的WPF都有哪些体验?提前致谢。 最佳答案 托管C++已被C++/CLI取代,“托管C#”就是C#。我强烈建议您在新项目中使用C#,并且仅在需要时才使用C++/CLI。C#具有更好的支持,拥有更大的用户群,并且更易于在VisualStudio2010中使用。此外,请

c# - 我应该转换我的 lambda 还是转换 IEnumerable?

在我的项目中,我有一个MyClass实现了IMyClass。我需要通过转换其他项目的列表来返回IMyClass的列表。为简单起见,假设我可以创建一个MyClass,只需将另一个项目传递给它的构造函数,即newMyClass(item)。考虑以下两行,它们(据我所知)产生相同的结果:varoption1=items.Select(item=>newMyClass(item)).Cast().ToList()varoption2=items.Select(item=>newMyClass(item)asIMyClass).ToList()在我看来,选项#1需要双重枚举,一次是将所有项目转换

c# - 我应该在哪里放置我的域模型以查看模型映射代码?

目前我在我的Controller文件中使用私有(private)静态方法将域模型映射到View模型,反之亦然。如下所示:publicActionResultDetails(intpersonID){PersonpersonDM=service.Get(personID);PersonViewModelpersonVM=MapDmToVm(personDM);returnView(personVM);}privatestaticPersonViewModelMapDmToVm(Persondm){PersonViewModelvm;//MaptoVMreturnvm;}还有其他标准方法可

c# - 我是否应该使用与 .NET BCL 的名称冲突的(否则是最佳的)类名称?

这种情况对你们中的一些人来说可能并不少见:您有一些功能可以放在一个类中,但是该类的完美名称(*)被System中的一个类采用>不属于您但您正在使用/导入的namespace或其他namespace/类。(*)我所说的完美是指小巧、简洁和清晰的名称。例如,我有一个Utils类,它有一个Diagnostics(主要是debugutils)类和一个Drawing类。我可以:有一个DrawingUtils类和一个DiagnosticsUtils类,但这闻起来像是结构不好。选择一个同义词库,然后用一个更糟糕、更长或笨拙的名字来完成,这些名字仍然不经意地被使用。用我的母语而不是英语写类(class

C#:泛型类中的嵌套类是否应该被视为泛型?

namespaceGenericsTest{publicclassAGenericClass{publicclassNestedNonGenericClass{}}}在上面的例子中,应该NestedNonGenericClass被认为是泛型类?反射API说它是一个泛型类,甚至把包含类的模板参数作为嵌套类的模板参数交给我。TypenestedClass=typeof(AGenericClass.NestedNonGenericClass);Console.Out.WriteLine("IsGeneric:{0}\tHasGenericArguments:{1}",nestedClass.

c# - 我的网络应用程序应该有多大的弹性?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion最近,我发现自己和老板就我们的网络应用程序(一个c#asp.netMVC应用程序)中的异常处理发生了很多争论。基本上对话是这样的:老板:“我们的程序出了点问题,客户x的数据库今天宕机了,大家都看到了错误页面。”我:“大多数情况下,应用程序中的每个页面都使用数据库来做某事(错误页面除外),除了显示错误页面之外没有其他合理的选择。”老板:“我们的应用程序应该更具弹性——不需要数据库访问的应用程

c# - 什么时候应该使用字段而不是属性?

谁能清楚地说明在类设计中何时使用字段以及何时使用属性?考虑:publicstringName;或者:privatestring_Name;publicstringName{get{return_Name;}set{_Name=value;}}我意识到第二种方法更合适和灵活,所以这就是我通常尝试使用的方法。但为什么我看到人们使用第一种方法呢?他们只是懒惰,还是在某些特定情况下这是正确的选择?这只是一个偏好问题吗? 最佳答案 在C#3.0中,您实际上可以编写:publicstringName{get;set;}这让你既得体又懒惰。一般来

c# - 我应该在访问字典之前检查特定键是否存在于字典中吗?

我是否应该检查字典中是否存在特定键如果我确定它会在我到达访问它的代码时添加到字典中?有两种方法可以访问字典中的值检查ContainsKey方法。如果它返回true,那么我将使用字典对象的索引器[key]进行访问。或TryGetValue将返回true或false以及通过out参数返回值。(如果我想获得值(value),第二个将比第一个表现更好。Benchmark。)但是,如果我确定访问全局字典的函数肯定有key,那么我是否仍应使用TryGetValue检查或不检查我应该使用indexer[]。或者我永远不应该假设并始终检查? 最佳答案