草庐IT

c# - 如何判断一个实例是某种类型还是任何派生类型

我正在尝试编写验证来检查对象实例是否可以转换为变量类型。对于他们需要提供的对象类型,我有一个Type实例。但是类型可以变化。这基本上就是我想要做的。Objectobj=newobject();Typetyp=typeof(string);//justasample,reallytypisavariableif(objistyp)//thisiswrong"is"doesnotworklikethis{//dosomething}类型对象本身有IsSubClassOf和IsInstanceOfType方法。但我真正想检查的是obj是typ的实例还是从typ派生的任何类。看似简单的问题,但

c# 公共(public)嵌套类还是更好的选择?

我有一个控制电路,它有多个设置,并且可以连接任意数量的传感器(每个传感器都有自己的一组设置)。这些传感器只能与控制电路一起使用。我想像这样使用嵌套类:publicclassControlCircuitLib{//Fields.privateSettingscontrollerSettings;privateListattachedSensors;//Properties.publicSettingsControllerSettings{get{returnthis.controllerSettings;}}publicListAttachedSensors{get{returnthis

c# - 选择 CMS、门户还是 MVC+组件?

我需要一些帮助来确定对我的最新项目使用CMS还是门户解决方案是否是个好主意,该项目(目前)是一个必须为多个客户(公司或其他实体)提供服务的ASP.NETMVC应用程序包含用户列表)来自单个安装(即SaaS解决方案)。除了核心功能,包括文档管理/发布,我还需要提供基本的社交功能(例如博客、论坛、画廊、投票等)。但是,内容必须只对其所属的客户可见,而我对一堆CMS和门户解决方案的评估并没有说明它们是否支持这一点。他们非常专注于单用户安装,关于如何与现有MVC解决方案集成的文档非常少。本质上,我正在寻找一些指导来帮助我放弃死胡同(产品不符合要求、施加太多限制、不成熟等)并在项目走得太远之前找

c# - 在包含类中,使用属性还是字段?

在包含私有(private)字段或属性的类中编写代码时,使用私有(private)字段或属性是好习惯吗?例如,如果我有这个字段/属性对,外部类必须使用该属性。类内部的代码怎么样?它应该使用私有(private)字段,还是也应该通过属性?privatestring_foo;protectedstringFoo{get{returnthis._foo;}}privatevoidSomeMethod(){stringdummyVariable="snuh"+this._foo;//So,this...stringdummyVariable="snuh"+this.Foo;//...orthi

C#如何知道可移动磁盘是USB驱动器还是SD卡?

Windows7平台,C#我使用以下语句列出所有驱动器:DriveInfo[]drives=DriveInfo.GetDrives();然后我可以使用DriveType找出所有那些可移动磁盘:foreach(vardriveindrives){if(drive.DriveType==DriveType.Removable)yieldreturndrive;}现在我的问题是,SD卡盘和U盘共享同一个driveType:Removable,那我怎么只能找到U盘呢?谢谢! 最佳答案 可以利用ManagementObjectSearcher

c# - C# lambda 编译成什么?堆栈框架,匿名类型的实例,还是?

C#lambda编译成什么?堆栈框架、匿名类型的实例,还是?我读过这个question.这主要回答了“为什么”在使用隐式类型功能时不能使用lambda。但是,这个问题旨在回答编译器生成什么结构来实际执行lambda代码。它是匿名类型的方法调用(类似于在Java中实现接口(interface)的匿名类型?)还是它只是一个引用封闭变量并接受参数签名的堆栈框架?一些lambda不会关闭任何东西——因此会有2个不同的编译结果输出。 最佳答案 假设你的意思是“作为一个委托(delegate)”,那么它仍然取决于:p如果它捕获任何变量(包括“t

c# - XDocument.Parse 成功还是失败?

我正在使用XDocumentdoc=XDocument.Parse(somestring);但是我如何验证字符串somestring是否是格式正确的XML。TryCatch是执行此操作的唯一方法吗? 最佳答案 IsTryCatchtheonlywaytodothis?XDocument没有TryParse方法,因此try-catch可能是最好的选择。还要考虑根据模式验证您的XML,因为它不仅会检查XML是否格式正确,还会检查约束。您可能会看到:ValidationAgainstXMLSchema(XSD)withtheXmlVali

c# - 私有(private)嵌套静态类 - 好的还是坏的做法?

将私有(private)静态类嵌套在非静态类中会被认为是一种不好的做法吗?publicclassOuter{privatestaticclassInner{}}这里的想法是“Outer”的所有实例都将共享对静态的访问。另一种方法可能是让内部类成为非静态类并使用它的静态实例:publicclassOuter{privatestaticinnerInstance=newInner();privateclassInner{}}类似的效果。这种方法的优点/缺点或其他注意事项是什么?我必须承认我几乎从不使用嵌套类,无论是否是静态的,但我对这个特定概念很感兴趣.. 最佳

c# - 如何判断用户访问的是 "/Default.aspx"还是 "/"

我正在我的Global.asax.cs的Application_BeginRequest部分中编写。出于SEO目的,我正在尝试重定向正在查看的用户:http://www.example.com/Default.aspx到:http://www.example.com/我的问题是:我如何知道用户正在看哪个?我一直在使用:HttpContext.Current.Request.Url.*但是无论我访问哪一个,所有参数都是相同的。 最佳答案 您可以获取在用户浏览器中输入的路径:stringpath=Request.RawUrl;MSDN

c# - 我应该使用哪个,CodeContract 还是 CuttingEdge.Conditions?

我研究了使用条件框架来验证数据而不是if(cond)thrownewSomeException();SomeFramework.MakeSure(cond);最后我的选择是使用CodeContract或CuttingEdge.Conditions框架。我无法决定使用哪个框架。我可以告诉你,我不喜欢“CodeContract”框架的地方是你必须安装额外的msi才能使用它以及你需要选择的选项;不是说它不好,而是感觉不自然。(当然,它仍在MS研究中。)你怎么看? 最佳答案 CodeContracts框架是.NET4的一部分。因此您可以针对