草庐IT

c# - 如何允许隐式转换?

给定一些这样的代码:classJson{}classProgram{staticvoidMain(string[]args){}JsonMyAction(){return"{\"json\":1}";}}有什么我可以添加到Json类来编译的吗?让编译器知道它可以将字符串隐式转换为Json的东西? 最佳答案 implicitC#中的运算符声明允许您指定:{typetoconvertto}({typetoconvertfrom}variablename)这是一个简单的例子:classJson{privateJson(stringjson

c# - 需要一个允许空键的 IDictionary<TKey,TValue> 实现

基本上,我想要这样的东西:Dictionarydict=newDictionary();dict.Add(null,"Nothing");dict.Add(1,"One");是否有任何内置到基类库中的允许这样做?上述代码在添加空键时会在运行时抛出异常。 最佳答案 您可以避免使用null并创建一个特殊的单例值类来做同样的事情。例如:publicsealedclassNothing{publicstaticreadonlyNothingValue=newNothing();privateNothing(){}}Dictionarydic

c# - 如何修改 Web API 应用程序的默认允许响应大小设置?

我有一个返回事件列表的WebAPI方法:publicHttpResponseMessageGetEvents(){...}我的服务使用DataContractSerializer(对于xml)和DataContractJsonSerializer(对于JSON)支持Xml和JSON响应。响应大小可能约为30MB。在IIS中托管的ASP.NETWebAPI中默认允许的响应大小是多少?如何修改默认设置?返回如此大的数据(虽然不是那么大)的最佳做法是什么?我应该压缩响应吗?此外,我们可能每秒收到一个请求。谢谢 最佳答案 我不确定你的问题。

c# - 相当于一个允许重复键的排序字典

我需要一个数据结构,可以按对象关联的浮点键对对象进行排序,最低的在前。问题是键代表成本,所以经常有重复,我不关心这个,因为如果两个成本相同,我会捕获第一个,因为它没有区别,问题是编译器提示。是否有一种数据结构的行为方式相同但允许重复键?编辑-我仍然需要重复项,因为如果一个结果是死胡同,我会捕获下一个(它们是a*搜索中的节点)所以为了清楚起见,它需要允许按顺序排序的重复键。 最佳答案 你写:equivalenttoadictionarythatallowsduplicatekeysIneedadatastructurethatcans

c# - 允许 Windows 服务与桌面交互

如何以编程方式启用“允许服务与桌面交互”?在services.msc>Action>Properties>LogOn>Allowservicetointeractwithdesktop中,我可以启用我的服务以与桌面交互。我想让我的服务播放声音(MP3、WAV等)。 最佳答案 我将在这里尝试使用关键字来解释您的问题。以后,请花更多时间写下您的问题,让其他试图阅读和理解它们的人能够理解它们。在属性窗口的登录选项卡下有一个名为“允许服务与桌面交互”的Windows服务的复选框。如果您尝试以编程方式检查该框,您需要在使用CreateServ

c# - 仅允许在 WPF 文本框中输入数字

我想验证用户输入以确保它们是整数。我该怎么做?我想到了使用IDataErrorInfo,这似乎是在WPF中进行验证的“正确”方法。所以我尝试在我的ViewModel中实现它。但问题是我的文本框绑定(bind)到一个整数字段,并且不需要验证int是否为int。我注意到WPF会自动在文本框周围添加一个红色边框以通知用户错误。基础属性不会更改为无效值。但我想通知用户这一点。我该怎么做? 最佳答案 另一种方法是简单地不允许非整数值。以下实现有点糟糕,我想稍后将其抽象化以使其更易于重用,但这是我所做的:在我看来,在后面的代码中(我知道如果你是

c# - 为什么 C# 不允许将 using 变量作为 ref 或 out 传递给函数

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:PassinganIDisposableobjectbyreferencecausesanerror?为什么C#不允许将变量从usingblock作为ref或out传递给函数?这是我的代码:using(Forms=newForm()){doSomthing(refs);}函数在usingblock结束之前结束,为什么C#不让我将s作为ref或out参数传递?

c# - 为什么在实现接口(interface)方法时允许虚拟?

我对接口(interface)有一个特定的查询。默认情况下,接口(interface)方法是抽象的和虚拟的,所以如果我们实现该接口(interface)并在类中给出定义,我们实际上会重写该方法,但是当我们在实现类中再次将方法标记为虚拟时,为什么编译器不考虑我们实际上是想隐藏原来的接口(interface)虚方法。如果我们在基类中有一个虚方法并且派生类再次将该方法标记为虚方法,在这种情况下编译器会警告您隐藏了基类方法,因此如果您有意隐藏基类方法,请使用new.publicinterfaceITestInterface{voidvirtualmethod();//thismethodisb

c# - 为什么 C# switch 语句不允许使用 typeof/GetType()?

如本例所示:switch(myObj.GetType()){casetypeof(MyObject):Console.WriteLine("MyObjectishere");break;} 最佳答案 其次是PeterHallam的帖子;这是一个很好的解释。不过,您可以使用TypeCode处理简单类型。switch(Type.GetTypeCode(myObj.GetType())){caseTypeCode.Boolean:...caseTypeCode.Char:...caseTypeCode.String:...caseType

c# - 如何为 ASP.NET WebForms 端点允许 CORS?

我正在尝试向Webforms样式的Web应用程序(.aspx和.asmx)添加一些带注释的端点函数[WebMethod]。我想用[EnableCors]注释这些端点,从而获得所有好的ajax-preflight功能。VS2013接受注解,但端点仍然不能很好地与CORS配合使用。(它们在使用同源而非跨源时工作正常)。我什至无法让它们在肮脏的环境下实现跨域功能HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin","*");方法--我的浏览器拒绝响应,并且不显示跨源响应header。如何在这些[WebM