草庐IT

c# - 为什么不能直接调用扩展方法?

有人可以向我解释为什么在接下来的第三次调用DoSomething时无效吗?(错误消息是“名称‘DoSomething’在当前上下文中不存在”)publicclassA{}publicclassB:A{publicvoidWhyNotDirect(){vara=newA();a.DoSomething();//OKthis.DoSomething();//OKDoSomething();//??WhyNot}}publicstaticclassA_Ext{publicstaticvoidDoSomething(thisAa){Console.WriteLine("OK");}}

c# - 类型参数不能与类型参数一起使用

我想在单元测试项目中编写一个辅助方法,它将初始化演示者,将View实例设置为它并设置演示者状态。它给了我一个异常(exception):thetypeparametercannotbeusedwithtypearguments代码:publicstatic**TPresenter**Initialize()whereTPresenter:BasePresenter,new()whereTView:new(){}几分钟后,我发现问题出在我的返回类型上TPresenter我读了一些没有清楚解释为什么我不能说T1的帖子我被迫通过引用参数进行演示者分配。欢迎任何解释!

c# - 在 C# 中,为什么我不能传递另一个类的 EventHandler 引用,我该如何绕过它?

如果我的ClassA有一个公共(public)事件SomeEvent,而ClassC有方法addListener,它接受EventHandler引用,为什么ClassB不能有一行c.addListener(refa.SomeEvent)?如果我尝试,我会得到一个编译器错误:“事件‘ClassA.SomeEvent’只能出现在+=或-=的左侧(除非在类型‘ClassA’中使用)。为什么存在这个限制?我怎样才能在合理靠近我的结构的同时绕过它?我是C#新手;任何帮助,将不胜感激。谢谢!classClassA{publiceventEventHandlerSomeEvent;}ClassB{p

c# - 当你不能等待时,你怎么能等待任务

我正在开发Windows8运行时组件,因此公共(public)接口(interface)不能包含Task因为它不是Windows运行时类型。这意味着我无法将该方法标记为async不能awaitprivateasync我的库中的方法。这导致了对如何处理我的应用程序逻辑的一些困惑。这就是我同步做我想做的事情的方式。Resultr=TryGetAuthResultFromFile();if(r!=null){returnr;}r=GetAuthResultFromWebAuthenticationBroker();returnr;问题是TryGetResultFrom文件是asyncTask

c# - 为什么我不能在 HTTP 响应 header 中设置 'Allow'?

我使用ASP.NETWebApi编写了一个RESTfulAPI。现在我试图让它返回Controller允许的动词。我正在尝试使用以下代码来实现:[AcceptVerbs("OPTIONS")]publicHttpResponseMessageOptions(){varresponse=newHttpResponseMessage(HttpStatusCode.OK);response.Headers.Add("Access-Control-Allow-Origin","*");response.Headers.Add("Access-Control-Allow-Methods","PO

c# - 为什么不能从 Excel 互操作设置转换对象?

尝试获取对工作表的引用(使用Excel互操作):Excel.Applicationxl=newExcel.ApplicationClass();Excel.WorkbooksxlWorkBooks=xl.Workbooks;Excel.WorkbookxlWorkBook=xlWorkBooks.Open(fileName,0,false,5,"","",true,Excel.XlPlatform.xlWindows,"\t",false,false,0,true,1,0);//NextlinecrashesExcel.WorksheetsxlWorkSheets=(Excel.Wor

c# - 我不能等待等待?

VisualStudio提示以下内容:publicRelayCommandSendRegistrationCommand{get;privateset;}publicasyncvoidSendRegistration(){HttpClientclient=newHttpClient();varresponse=awaitclient.GetStringAsync("url");//...todo}Cannotawait'System.Threading.Tasks.Task'我以为我以前做过这个,GetStringAsync不可等待? 最佳答案

c# - 为什么我不能将 List<List<Foo>> 传递给 IEnumerable<IEnumerable<Foo>>

此代码产生两个编译时错误:privatevoidDoSomething(){List>myFoos=GetFoos();UseFoos(myFoos);}privatevoidUseFoos(IEnumerable>){}Thebestoverloadedmethodmatchfor'NameSpace.Class.UseFoos(System.Collections.Generic.IEnumerable>)'hassomeinvalidarguments和Argument1:cannotconvertfrom'System.Collections.Generic.List>'to'

c# - 不能同时指定约束类和 0​​x104567910 或 'class' 约束

我正在尝试解决mockingissue通过创建IDbSet的自定义模拟。自定义模拟:publicclassDbSetMock:IDbSet{/*hiddenallotherimplementedmethods/properties*/publicTDerivedEntityCreate()whereTDerivedEntity:class,Tenant{thrownewNotImplementedException();}}create方法给出了一个构建错误,我不知道如何解决:cannotspecifybothaconstraintclassandthe'class'or'struct

c# - 为什么不能使用反射获取局部变量名?

如果我有这样的代码:publicclassProgram{publicstaticvoidMain(){stringbar="";intfoo=24;}}我可以获得Main中声明的局部变量使用:varflag=BindingFlags.Static|BindingFlags.Public;varfields=typeof(Program).GetMethod("Main",flags).GetMethodBody().LocalVariables;这将返回一个IList和LocalVariableInfo只有三个属性:IsPinned,LocalIndex和LocalType.所以没有