Questions tagged «c#»

C#(发音为“ See Sharp”)是由Microsoft开发的一种高级,静态类型的多范例编程语言。C#代码通常针对Microsoft的.NET系列工具和运行时,其中包括.NET Framework,.NET Core和Xamarin。使用此标记可解决有关用C#或C#正式规范编写的代码的问题。



4
启用双重转义有危险吗?
我有一个ASP.NET MVC应用程序,它的路由允许通过/ search / <searchterm>搜索内容。 当我提供“ search / abc”时,效果很好,但是当我提供“ / search / a + b + c”(正确的url编码)时,IIS7拒绝请求,并显示HTTP错误404.11(请求过滤模块配置为拒绝包含双重转义序列的请求)。首先,为什么要这样做?如果它是URL的一部分,但似乎不是查询字符串的一部分,则似乎只会抛出错误(/ transmit?q = a + b + c可以正常工作)。 现在,我可以在web.config的安全性部分中启用双重转义请求,但是由于我不了解其含义,而且我也很犹豫这样做,服务器也为什么不将请求“ a + b + c”拒绝为URL的一部分,但接受为查询字符串的一部分。 有人可以解释并给出建议怎么办吗?
136 c#  asp.net-mvc  iis-7 


5
为什么CancellationToken与CancellationTokenSource分开?
我正在寻找为什么CancellationToken除了CancellationTokenSource类之外还引入了.NET 结构的理由。我了解如何使用API​​,但也想了解为什么采用这种方式设计。 即,为什么有: var cts = new CancellationTokenSource(); SomeCancellableOperation(cts.Token); ... public void SomeCancellableOperation(CancellationToken token) { ... token.ThrowIfCancellationRequested(); ... } 而不是CancellationTokenSource像这样直接传递: var cts = new CancellationTokenSource(); SomeCancellableOperation(cts); ... public void SomeCancellableOperation(CancellationTokenSource cts) { ... cts.ThrowIfCancellationRequested(); ... } 这是否基于以下事实进行性能优化:取消状态检查比传递令牌更频繁? 这样就CancellationTokenSource可以跟踪和更新CancellationTokens,对于每个令牌,取消检查是本地访问? 鉴于在两种情况下没有锁定的挥发性布尔变量就足够了,我仍然不明白为什么这样做会更快。 谢谢!


5
JSON.net:如何在不使用默认构造函数的情况下反序列化?
我有一个具有默认构造函数的类,还有一个带有一组参数的重载构造函数。这些参数与对象上的字段匹配,并在构造时分配。此时,我需要将默认构造函数用于其他目的,因此,如果可以的话,我想保留它。 我的问题:如果删除默认构造函数并传递JSON字符串,则该对象将正确反序列化并传入构造函数参数,而不会出现任何问题。我最终以我期望的方式取回了对象。但是,一旦我将默认构造函数添加到对象中,当我调用JsonConvert.DeserializeObject<Result>(jsontext)该属性时,就不再填充这些属性。 在这一点上,我已经尝试添加new JsonSerializerSettings(){CheckAdditionalContent = true}反序列化调用。那什么也没做。 另一个说明。除了参数以小写字母开头外,contructor参数确实与字段名称完全匹配。我认为这并不重要,因为就像我提到的那样,反序列化可以在没有默认构造函数的情况下正常工作。 这是我的构造函数的一个示例: public Result() { } public Result(int? code, string format, Dictionary<string, string> details = null) { Code = code ?? ERROR_CODE; Format = format; if (details == null) Details = new Dictionary<string, string>(); else Details = details; }
136 c#  json  json.net 

16
为什么是“ &&”而不是“&”?
为什么&&优于&和||优于|? 我问了一个已经编程多年的人,他的解释是: 例如,在中if (bool1 && bool2 && bool3) { /*DoSomething*/ },bool1必须先对in 进行测试bool2,然后再继续对进行测试bool3,等等。如果我只使用一个&,则即使他们都必须对前进到下一行,那为什么仍然重要呢? 注意:我想指出的是,我在编程上等同于蹒跚学步,这不是一个严重或紧急的问题。更多的是理解为什么应该以某种方式而不是另一种方式来完成事情。
135 c#  operators 

4
在C#中将Dictionary <string,string>转换为以分号分隔的字符串
简单的开始一天,给出Dictionary&lt;string, string&gt;如下: var myDict = new Dictionary&lt;string, string&gt;(); myDict["A"] = "1"; myDict["B"] = "2"; myDict["C"] = "3"; myDict["D"] = "4"; 我希望创建一个字符串: "A=1;B=2;C=3;D=4" 一个示例实现: var myStringBuilder = new StringBuilder(); bool first = true; foreach (KeyValuePair&lt;string, string&gt; pair in myDict) { if (first) { first = false; } else { myStringBuilder.Append(";"); } …
135 c# 

23
从星期数计算日期
任何人都知道一种获取一周中第一天(在欧洲的星期一)的简单方法。我知道年份和星期几吗?我将在C#中执行此操作。
135 c#  .net  week-number 

14
通过c#使用GPU
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 我试图从网格中获取更多处理能力。 我正在使用所有的cpus /核心,是否可以将GPU与C#结合使用。 有人知道任何库或获得任何示例代码吗?
135 c#  gpu  gpgpu 

7
为什么在给定null时is运算符会返回false?
在我看来,is操作员有点不一致。 bool Test() { // Returns false, but should return true. return null is string; } 人们期望该null值属于任何引用(或可为空)类型。确实,C#语言规范说了一些支持此假设的内容,例如(6.1.6隐式引用转换): 隐式引用转换为: ... •从null文字到任何引用类型。 对运算符的描述(7.10.10是is运算符)is首先说,(E is T)当存在从Eto 的引用转换时,表达式将为true T,但随后作者继续明确排除when E是null文字或具有null值的情况。 。 他们为什么这样做?在我看来,这违反直觉。
135 c# 

4
MVC 5项目和Web Api项目之间的区别
我是ASP.NET MVC和Web API的新手,正在尝试获取基础知识。据我所知,我们在VS 2013项目模板,命名为MVC,Web API和Both of them together。 我遍历了教程,了解到我们可以单独使用MVC以及使用Web API模板来制作API。 那么,基于体系结构和用法,它们之间有什么区别?

6
如何在接口中实现属性
我有IResourcePolicy包含该属性的接口Version。我必须实现包含值的该属性,该属性在其他页面中编写: IResourcePolicy irp(instantiated interface) irp.WrmVersion = "10.4"; 如何实现财产version? public interface IResourcePolicy { string Version { get; set; } }
135 c#  .net 

7
C#6.0功能不适用于Visual Studio 2015
我正在使用C#6.0测试Visual Studio 2015,但是语言功能无法正常工作。在MVC Web应用程序中,将编译以下代码: if (!string.IsNullOrWhiteSpace(Model.Profile?.TypeName)) { // More logic here... } 但是,当我通过Debug和IIS Express运行应用程序时,出现以下错误: CS1525:无效的表达式术语“。” 如何启用这些功能?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.