草庐IT

通配符匹配

全部标签

c# - 在 C# 中使用通配符解析相对路径

在C#中,如果我有一个目录路径和一个带通配符的相对文件路径,例如"c:\foo\bar"和"..\blah\*.cpp"有没有一种简单的方法来获取绝对文件路径列表?例如{"c:\foo\blah\a.cpp","c:\foo\blah\b.cpp"}背景有一个源代码树,其中任何目录都可以包含构建定义文件。该文件使用带通配符的相对路径来指定源文件列表。任务是为每个构建定义文件生成所有源文件的绝对路径列表。 最佳答案 可以先获取绝对路径,再枚举匹配通配符的目录下的文件://inputstringrootDir=@"c:\foo\bar"

c# - 异常 - 堆栈跟踪行号和消息不匹配

当出现问题时,我们会发现一些代码出现奇怪的问题-在某些情况下,异常消息和堆栈跟踪不匹配。我们有许多具有类似结构的消息处理程序,如下所示:publicvoidHandle(AddTelephoneNumbermessage){vardirectory=ClientService.Directory(Context).Result;varclient=ClientService.ClientLookup(message.ClientNumber,Context).Result;if(!client.Item1){//ClientdoesnotexistthrownewException("

c# - 使用 var 或显式类型时模式匹配的不同行为

考虑以下乍一看很荒谬的模式匹配:strings=null;if(sisstringss)//falseif(sisstring)//false两者is都会返回false。但是,如果我们使用var,行为就会完全改变:strings=null;if(sisvarss)//true!?!如果在VS2017中将鼠标悬停在var上,类型是string但的行为是完全不同的。即使推断的类型相同,编译器也会做一些完全不同的事情。怎么会这样?这是一个错误吗?null类型是否以某种方式冒出? 最佳答案 C#语言引用确认行为是有意的。Apatternma

c# - 将在 C# 中创建的哈希与 sql 匹配

我有一个用于生成散列的方法:publicstaticstringGetMD5Hash(stringinput){System.Security.Cryptography.MD5CryptoServiceProviderx=newSystem.Security.Cryptography.MD5CryptoServiceProvider();byte[]bs=System.Text.Encoding.UTF8.GetBytes(input);bs=x.ComputeHash(bs);System.Text.StringBuilders=newSystem.Text.StringBuilde

c# - 模式匹配变量范围

在RoslynPatternMatchingspec它指出:Thescopeofapatternvariableisasfollows:Ifthepatternappearsintheconditionofanifstatement,itsscopeistheconditionandcontrolledstatementoftheifstatement,butnotitselseclause.不过最新的微软“What'snew”posts和presentations正在展示这个例子:publicvoidPrintStars(objecto){if(oisnull)return;//co

c# - 为模式匹配解构元组

给定一个函数asyncTaskTryGetAsync(),我能行if((awaitTryGetAsync())isvarret&&ret.result){//useret.value}但是,如果我尝试使用声明类型或使用解构,则会出现错误“在此上下文中不允许声明”://declaration.errorif((awaitTryGetAsync())is(Booleanresult,MyObjectvalue)ret&&ret.result){//useret.value}//deconstruction,alsoerror.if((awaitTryGetAsync())is(Boolea

c# - REST 标准 - 输出模型是否应该始终匹配输入模型?

所以我有要求部分输出模型必须包含UI重要信息。这些信息本质上是文本翻译和日期、价格、长度的建议格式。因此,输出模型的示例可能是:{statuses:{enumValue1:"DisplayThisText",enumValue2:"DisplayThisText2",},thePrice:{value:3.50,formattedValue:"$3.50"},length:{meters3,formattedValue:"3ft."},iAmAPropertyOnlyInGet:42}现在,如果我将其作为输出模型,那么使用完全不同的输入模型是否“可以”?{status:{enumVal

c# - 非短路 bool 运算符和 C# 7 模式匹配

我目前正在编写一个C#应用程序,目标是.NET4.7(C#7)。在尝试使用使用“is”关键字声明变量的新方法后,我感到很困惑:if(变量是MyClassclassInstance)这样就可以了,但是在做的时候:if(true&variableisMyClassclassInstance){vara=classInstance;}VisualStudio(我使用的是2017)向我显示错误Useofunassignedlocalvariable'classInstance'。使用&(&&)的短路版本它工作正常。我是否遗漏了有关&运算符的内容?(我知道使用短路版本更常用,但此时我只是好奇)

c# - 屏幕分辨率与 Screen.Bounds 不匹配

我发现通过控制面板设置的分辨率与我的宽屏笔记本电脑的Screen.Bounds输出之间存在有趣的差异。屏幕为15.5",通过控制面板设置的分辨率为1920x1080。但是当我运行这样的代码时。Screen[]screens=Screen.AllScreens;foreach(Screenscrinscreens){Console.WriteLine("Width:"+scr.Bounds.Width+",Height:"+scr.Bounds.Width);}输出显示我的分辨率为1536x864。我环顾四周,我认为这可能与DPI问题有关,当我查看我的显示设置时,slider(我在Win

c# - 如何更正参数计数不匹配

如何纠正我遇到的这个错误TargetParameterCountExceptionwasunhandledbyusercode.Parametercountmismatch.这是我的代码发生的地方publicstaticvoidInvokeMethod(stringclassName,stringmethodName,stringfileName){vart=Type.GetType(className);using(StreamReaderf=newStreamReader("params.txt")){t.GetMethod(methodName).Invoke(t.GetCons