草庐IT

c# - 为什么 C# 结构方法不能返回对字段的引用,但非成员方法可以?

下面是一个结构实例方法的例子,它试图将只读引用返回给结构的实例字段:structFoo{internalint_x;publicrefreadonlyintMemberGetX()=>ref_x;//^^^//ErrorCS8170:Structmemberscannotreturn'this'orotherinstancemembersbyreference}这会产生错误CS8170结构成员无法通过引用返回“this”或其他实例成员。然而,使用扩展方法做同样的事情不会产生错误:staticclassFooExtensions{publicstaticrefreadonlyintExt

c# - Rhino Mocks 的 "requires a return value or an exception to throw"是什么意思?

模拟对WCF服务的调用时,出现以下错误:Method'ICustomerEntities.GetCustomerFromPhoneNumber("01234123123");'requiresareturnvalueoranexceptiontothrow.我用谷歌搜索并在这里搜索-我能找到的只是我需要重新订购各种电话等,但在我的情况下这似乎没有意义?也许有人可以向我指出它实际上确实?我的测试设置是这样的_entities=MockRepository.GenerateStrictMock();并且第三行测试方法失败,设置result2_entities.Expect(ip=>ip.G

c# - ASP.Net Core 2 错误处理 : How to return formatted exception details in Http Response?

我正在寻找一种方法来返回调用我的WebAPI的方法时发生的任何异常的详细信息。默认情况下,在生产环境中,错误500“InternalServerError”是API返回的唯一信息。它是一个不在互联网上发布的私有(private)API,调用方应用程序需要获取并存储所有详细信息以防出现异常。异常详细信息可以在HttpResponse内容中采用JSON格式,允许调用者阅读消息属性,以及异常的StackTraceString属性(没有类似UseDeveloperExceptionPage配置的HTTP页面)。目前默认的启动配置方法是:publicclassStartup{[...]publi

c# - 在 Switch 语句中使用 .StartsWith?

我正在处理一个Switch语句,并且有两个条件我需要查看值是否以特定值开头。Switch语句就是这样做的。错误显示“无法将类型bool转换为字符串”。有人知道我是否可以在Switch中使用StartsWith或者我是否需要使用If...Else语句?switch(subArea){case"4100":case"4101":case"4102":case"4200":return"ABC";case"600A":return"XWZ";casesubArea.StartsWith("3*"):casesubArea.StartsWith("03*"):return"123";defau

c# - 让用户输入格式正确的 URL 的最佳方式?

我正在使用MVVM创建一个对话框,它会提示用户输入KML文件的http://URL。当URL格式正确时需要启用“确定”按钮,当URL格式不正确时需要禁用它。现在按钮绑定(bind)到ICommand,CanExecute()的逻辑如下所示:return!string.IsNullOrEmpty(CustomUrl);每次击键都会引发命令的CanExecuteChanged事件,到目前为止它运行良好。现在我想做一些实际的验证。我知道的唯一方法如下:try{varuri=newUri(CustomUrl);}catch(UriFormatException){returnfalse;}re

c# - 查找所有父类型(包括基类和接口(interface))

我希望能够找到特定类型的所有父类型(基类和接口(interface))。EG如果我有classA:B,C{}classB:D{}interfaceC:E{}classD{}interfaceE{}我想知道A是BCDandEandObject最好的方法是什么?有没有一种反射(reflection)方法可以做到这一点,或者我需要自己做点什么。====编辑====是这样的吗?publicstaticIEnumerableParentTypes(thisTypetype){foreach(Typeiintype.GetInterfaces()){yieldreturni;foreach(Typ

c# - 从一个方法返回多个结果

这个问题在这里已经有了答案:Returnmultiplevaluestoamethodcaller(28个答案)关闭2年前。我尝试使用TryCatchblock和更好的错误处理来提高我的技能。我有一个执行常见任务的类,在本例中是检索FacebookAccessToken。如果成功,我想返回AccessToken字符串,如果失败我想返回一条错误消息。这些都是字符串,所以没问题。但是在代码的调用端检查返回值时,如何才能有效地做到这一点呢?这就像我需要返回2个值。如果尝试成功,则return=true,"ACESSCODEACXDJGKEIDJ",如果失败,则return=false,"Oo

C#字节数组比较

我在C#中使用.NET3.0有两个字节数组。比较两个字节数组的每个元素是否包含相同内容的“最有效”方法是什么?例如,字节数组{0x1,0x2}与{0x1,0x2}是一样的。但是字节数组{0x1,0x2}和字节数组{0x2,0x1}是不一样的。 最佳答案 好吧,你可以使用:publicstaticboolByteArraysEqual(byte[]b1,byte[]b2){if(b1==b2)returntrue;if(b1==null||b2==null)returnfalse;if(b1.Length!=b2.Length)ret

c# - 使用 await-async 的最佳实践,从哪里开始任务?

我开始在我们的.NetWPF应用程序中使用await/async机制。在我的ViewModel中,我在服务上调用异步方法。我的问题是:是不是比较好直接在这个服务里面做一个大的returnawaitTask.Run(()=>{...});此服务上的所有子方法是否也是异步的,然后在其中有Task.Run?举例:1)publicclassService:IService{publicasyncTask(SomeParameterparameter){returnawaitTask.Run(()=>{CopyStuff(parameter.A);UpgradeStuff(parameter.B

c# - 我应该对每个返回任务的方法使用异步/等待吗

这个问题在这里已经有了答案:Whyuseasyncandreturnawait,whenyoucanreturnTaskdirectly?(8个答案)关闭4个月前。假设我有一个C#Controller,它调用某个返回任务的任意函数(例如,因为它执行数据库事务)。我应该始终使用async和await,还是应该只返回任务?示例Controller:publicasyncTaskDoSomething(){returnawaitSomeOtherFunctionThatReturnsATask();}我应该把它改成:publicTaskDoSomething(){returnSomeOthe