草庐IT

static和final关键字

全部标签

c# - Visual Studio 2010+ 中的自定义关键字着色

我正在尝试为C#代码的VisualStudio编辑器中的某些关键字添加自定义着色。我希望能够将实现IDisposable的任何类型着色为不同的颜色。理想情况下,我想创建一个简单的类/接口(interface)列表,这些类/接口(interface)在我可以编辑的某种配置中派生自IDisposable。(尽管如果您说有一种方法/插件可以自动找到所有一次性类型并独立为它们着色,那将是chalice)。我进行了大量研究,看起来“编辑器分类器”扩展可能会成功。然而,我创建了一个仅尝试为“Stream”一词着色的代码,尽管它确实命中了我试图突出显示该词的代码,但它最终并未在编辑器中突出显示。我已

c# - 如何关闭 resharper 中的 "Convert Extension Method to Plain Static"自动重构?

在使用Resharper时,由于某些原因,当我调用扩展方法时,它会自动将其转换为静态方法调用。这就是所谓的ConvertExtensionMethodtoPlainStatic重构。foo.Bar()成为MyStaticExtensions.Bar(foo);具有讽刺意味的是,它随后将此标记为代码异味。我该如何关闭它? 最佳答案 Resharper的IntelliSense中嵌入了此功能。我经常使用Linq-to-sql扩展,所以我禁用了这个功能:Resharper-选项-IntelliSense-启用RadiobuttonVisu

c# - 为什么 C# 中的内置类型是语言关键字?

在C#中,int或string等标识符实际上是语言级别的关键字。这是什么原因?请注意,如果作者想要禁止使用这些名称的用户类型,那可能会造成语义错误,而不是语法错误。一些基于答案的澄清:它们是关键字,因为它使解析成为可能/更容易我不明白为什么,因为我正在开发一个解析器,并且Type.Rule=Identifier比Type.Rule=Identifier|简单得多。“诠释”|“字符串”|...。它们是关键字,因为它们是特殊的别名var和dynamic也是特殊的东西,但不是关键字(出于兼容性原因,尽管如此,它表明作为关键字不一定是特殊的)。在另一个示例中,将[Serializable]应用

C# 使用 Dynamic 关键字通过字符串访问属性而无需反射

我想写类似下面的东西://Iwillpassinanumberof"properties"specifiedasstringsthatIwantmodifiedstring[]properties=new[]{"AllowEdit","AllowDelete"};//CastingthecomponentI'musingtoadynamicobjectofsomesort?dynamicd=myGridComponent;//Iterateoverthestringsandsetthepropertiesforeach(varsinproperties){//d.s=true;////

c# - 在字符串中查找关键字和关键短语的算法

我需要有关如何编写算法以在字符串中查找关键字或关键短语的建议或指导。字符串包含:以英语(GB)编写的技术信息单词之间大多用空格隔开关键字不包含空格,但可以包含连字符、撇号、冒号等。关键词可以包含空格、逗号或其他标点符号如果两个或多个关键字一起出现,那么它很可能是一个关键短语,例如“变频驱动”文本还包含HTML,但如有必要,可以事先将其删除非关键字可以是“and”、“the”、“we”、“see”、“look”等词。关键字不区分大小写,例如“逆变器”和“逆变器”是同一个关键字算法有如下要求:在批处理场景中操作,例如每天跑一次或两次处理长度从大约200到7000个字符不等的字符串在不到1小

c# - 为什么 Finalize/Destructor 示例在 .NET Core 中不起作用?

我正在尝试了解终结和析构函数在C#中的工作方式,我尝试运行System.Object.Finalize中的代码示例(代码复制粘贴,未做任何更改),但输出与预期的不一样,它表明从未调用过析构函数。代码是:usingSystem;usingSystem.Diagnostics;publicclassExampleClass{Stopwatchsw;publicExampleClass(){sw=Stopwatch.StartNew();Console.WriteLine("Instantiatedobject");}publicvoidShowDuration(){Console.Writ

c# - 从 HttpResponseMessage 获取内容以使用 c# 动态关键字进行测试

在其中一个Action中,我做了这样的事情publicHttpResponseMessagePost([FromBody]Foofoo){..........varresponse=Request.CreateResponse(HttpStatusCode.Accepted,new{Token="SOME_STRING_TOKEN"});returnresponse;}还有更多类似的方法返回一个匿名类型实例,并且效果很好。现在,我正在为它编写测试。我有HttpResponseMessageresponse=_myController.Post(dummyFoo);HttpRespons

c# - 如何在 C# 中重新定义标准关键字的名称

我有一个有趣的想法。我想重新定义C#中的关键字,例如将if关键字替换为MyIf或其他内容。有人知道怎么做吗?因为我认为它必须看起来像这样:namespace{#defineMyIf=if;#defineMyElse=else;...publicsomeclass{publicvoidsomeMethod(){MyIf(true){...}MyElse{...}}}}添加:也许有办法制作C++或C库来重新定义C#的标准核心部分?**注意。我知道这是糟糕的编程习惯,我要求所有程序员不要在您的企业代码中使用答案。** 最佳答案 那是不可能

c# - C# 'event' 关键字的多重含义?

我最近重新阅读了EricLippert的ridiculouslyawesome上的一些旧帖子博客并遇到thistidbit:AconsiderablefractionofthekeywordsofC#areusedintwoormoreways:fixed,into,partial,out,in,new,delegate,where,using,class,struct,true,false,base,this,event,returnandvoidallhaveatleasttwodifferentmeanings.为了好玩,我的同事和我自问自答,除了其中一个关键字之外,我能够为所有

c# - 什么时候用什么时候不用 Try Catch Finally

我正在.net3.5中创建asp.netweb应用程序,我想知道何时使用以及何时不使用TryCatchFinallyblock?特别是,我的大部分trycatch都围绕着执行存储过程和填充文本字段或GridView?当您执行存储过程并填充数据显示控件时,您会EVERYTIME使用TryCatch吗?我的代码块通常是这样的:protectedvoidAddNewRecord(){try{//executestoredproc//populategridviewcontrolsortextboxes}catch(Exceptionex){//displayamessageboxtouser