草庐IT

魔法世界.3

全部标签

c# - 如何获取已安装的位图编码器/解码器列表(WPF 世界)?

在WindowsForms世界中,您可以获得可用图像编码器/解码器的列表System.Drawing.ImageCodecInfo.GetImageDecoders()/GetImageEncoders()我的问题是,有没有一种方法可以为WPF世界做一些类似的事情,让我获得可用的列表System.Windows.Media.Imaging.BitmapDecoder/BitmapEncoder 最佳答案 您一定会喜欢.NET反射。我在WPF团队工作,想不出更好的方法。以下代码在我的机器上生成此列表:BitmapEncoders:Sy

c# - 将 System.Object 作为类型过滤器发出的一般 catch 子句在现实世界中有何影响?

我记得有一次听说抛出System.Exception(或扩展它的对象)以外的某种类型的对象在技术上是合法的CIL,尽管C#没有支持它的功能。所以我有兴趣看到以下C#代码:try{thrownewException();}catch(Exceptionx){try{throw;}catch{Console.Write("yes");}}编译为以下CIL:.try{IL_0000:newobjinstancevoid[mscorlib]System.Exception::.ctor()IL_0005:throw}//end.trycatch[mscorlib]System.Exceptio

c# - 真实世界的开源 c# 应用程序展示了良好的代码

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我一直在阅读SOLID原则,想知道DOTNET中是否有一个很好的大型开源应用程序或项目展示了在现实世界产品中使用的SOLID原则。如果有任何其他开源项目被认为是很好的编码示例,我也很想看看它们。

c# - 编译器魔法 : Why?

我刚刚注意到给定以下代码:if(x.ID>0&&!x.IsCool)MicrosoftC#3.0(VS2008SP1)编译器会对此进行优化:if(!((x.Id这是在未启用优化的情况下进行的调试构建。为什么编译器会那样做?它在执行方面是否更快?我使用Reflector找到了答案(我实际上是在寻找不同的东西) 最佳答案 C#编译器肯定不会为您的代码段生成等效的C#代码。它被编译成IL。基本上,您所看到的(我猜是来自Reflector)是反编译器为该IL吐出的等效C#代码。语言规范没有说明什么是“未优化”代码。C#编译器可以生成任何有效

c# - 异步世界中的故障安全处置

在同步世界中,C#使一次性管理所有事物变得非常容易:using(IDisposablesomeDisposable=bla.bla()){//doourbidding}//don'tworrytoomuchaboutit但是,当我们使用异步时,我们不再享受usingblock带来的便利。我遇到的最好的策略之一是CCRiterator这允许我们使用异步代码“就好像它是同步的”。这意味着我们可以将usingblock保留在迭代器处理程序中,而不会陷入何时处理和捕获所有需要处理的情况的复杂决定中。但是,在许多情况下,调用CCR似乎有点矫枉过正,老实说,虽然我对CCR很满意,但对于外行来说,它

c# - IComparable 魔法 - 为什么它是有效的陈述?

我不明白为什么它会起作用......classProgram{staticvoidMain(string[]args){IComparable.Equals(12,3);}}IL代码:.methodprivatehidebysigstaticvoidMain(string[]args)cilmanaged{.entrypoint//Codesize21(0x15).maxstack8IL_0000:nopIL_0001:ldc.i4.s12IL_0003:box[mscorlib]System.Int32IL_0008:ldc.i4.3IL_0009:box[mscorlib]Syst

c# - 不在软件公司工作时如何获得现实世界的编程技能

关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭9年前。Improvethisquestion我在一家大型建筑公司的技术团队工作。虽然这里有不少人精通各种编程语言和脚本语言,但与软件公司的开发环境相去甚远。很少有超过一两个人在开发项目上工作,其中大部分只是自动化脚本。没有源代码控制或版本控制设置或类似的东西。我的学术背景是工程学,但不是CS或CE。所以我在学校上了很多编程类(class),实际上在我还是个child的时候就对VB进行了很多修改。然而,直到去年在我目前的工作中,我才真正有机

c# - 隐藏在 c# 中的方法以及一个有效的例子。为什么在框架中实现?什么是现实世界的优势?

谁能用一个有效的例子来解释C#中方法隐藏的实际用法?如果方法是在派生类中使用new关键字定义的,那么它不能被覆盖。然后它与创建一个具有不同名称的新方法(除了基类中提到的方法)一样。是否有使用new关键字的特定原因? 最佳答案 我有时对new关键字的一个用途是在平行继承树中用于“穷人属性协方差”。考虑这个例子:publicinterfaceIDependency{}publicinterfaceConcreteDependency1:IDependency{}publicclassBase{protectedBase(IDepende

c# - 每个主要模拟框架在现实世界中的优缺点是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭1年前。Improvethisquestionseealso"WhatshouldIconsiderwhenchoosingamockingframeworkfor.Net"我正在尝试确定一个模拟框架以用于我最近着手的.NET项目。我想加快对不同框架的研究。我最近读了这篇博文http://codevanced.net/post/Mocking-frameworks-comparison.aspx并想知道StackOverflow的任何

c# - 单例模式在现实世界中有哪些应用?

重复Ondesignpatterns:WhenshouldIusethesingleton?classSingleton{privatestaticSingletoninstance;privateSingleton(){}publicstaticSingletonInstance{get{if(instance==null)instance=newSingleton();returninstance;}}} 最佳答案 简单。单例做什么?它提供对对象实例的全局访问,并且它保证永远不会创建超过一个该类型的实例。因此,当您需要两者这些东