Questions tagged «.net»

请勿使用有关.NET Core的问题,而应使用[.net-core]。.NET框架是主要为Microsoft Windows操作系统设计的软件框架。它包括基类库,公共语言运行时(通常称为CLR),公共类型系统(通常称为CTS)和动态语言运行时的实现。它支持多种编程语言,包括C#,VB.NET,F#和C ++ / CLI。

15
如何使用try catch进行异常处理是最佳实践
在维护甚至声称自己是高级开发人员的同事的代码的同时,我经常看到以下代码: try { //do something } catch { //Do nothing } 或者有时他们将日志记录信息写入日志文件,例如以下代码try catch块 try { //do some work } catch(Exception exception) { WriteException2LogFile(exception); } 我只是想知道他们所做的是最佳做法吗?这让我感到困惑,因为在我的思考中,用户应该知道系统会发生什么。 请给我一些建议。

10
枚举上最常见的C#按位运算
为了我的一生,我不记得如何在位域中进行设置,删除,切换或测试。我不确定还是将它们混在一起,因为我很少需要这些。因此,拥有一个“位备忘单”将是不错的选择。 例如: flags = flags | FlagsEnum.Bit4; // Set bit 4. 要么 if ((flags & FlagsEnum.Bit4)) == FlagsEnum.Bit4) // Is there a less verbose way? 您能否给出所有其他常见操作的示例,最好使用[Flags]枚举以C#语法显示?

20
为什么最终尝试{…} {…}好?尝试{…}抓住{}不好吗?
我见过有人说使用不带参数的catch是一种不好的形式,尤其是在该catch没有执行任何操作的情况下: StreamReader reader=new StreamReader("myfile.txt"); try { int i = 5 / 0; } catch // No args, so it will catch any exception {} reader.Close(); 但是,这被认为是很好的形式: StreamReader reader=new StreamReader("myfile.txt"); try { int i = 5 / 0; } finally // Will execute despite any exception { reader.Close(); } 据我所知,将清理代码放入finally块与将清理代码放入try..catch块之后的唯一区别是,如果您在try块中包含return语句(在这种情况下,最终的清理代码将运行,但是try..catch之后的代码不会)。 否则,最后有什么特别之处?

7
将文件路径转换为文件URI?
.NET Framework是否具有将路径(例如"C:\whatever.txt")转换为文件URI(例如"file:///C:/whatever.txt")的任何方法? System.Uri类具有相反的含义(从文件URI到绝对路径),但据我所知,对于转换为文件URI而言一无所获。 此外,这不是 ASP.NET应用程序。
201 c#  .net  path  uri 


30
Visual Studio弹出窗口:“操作无法完成”
当我尝试打开本地或Team Foundation Server(TFS)上的项目时,出现一个模态窗口告诉我: 操作无法完成:未指定的错误 或相同的消息,但使用“未定义类..”而不是“未指定的错误”。 这些错误是从今天早些时候开始发生的,当时我试图将一些工作签入Team Foundation Server。我曾尝试在同一台计算机上使用Visual Studio 2008,但是仍然出现相同的错误。我也用谷歌搜索,但是没有一种解决方案对我有帮助。 我也安装了Windows Update的最新更新。 有任何想法吗?

11
什么时候应该使用TaskCompletionSource <T>?
AFAIK,它所知道的只是在某个时候,它的SetResult或SetException方法被调用以Task&lt;T&gt;通过其Task属性完成公开。 换句话说,它充当a Task&lt;TResult&gt;及其完成的生产者。 我在这里看到了示例: 如果我需要一种异步执行Func并有一个Task来表示该操作的方法。 public static Task&lt;T&gt; RunAsync&lt;T&gt;(Func&lt;T&gt; function) { if (function == null) throw new ArgumentNullException(“function”); var tcs = new TaskCompletionSource&lt;T&gt;(); ThreadPool.QueueUserWorkItem(_ =&gt; { try { T result = function(); tcs.SetResult(result); } catch(Exception exc) { tcs.SetException(exc); } }); return tcs.Task; } *如果我没有,可以使用Task.Factory.StartNew-但我确实有Task.Factory.StartNew。 题: 可有人请举例相关的情景解释直接到TaskCompletionSource 而不是一个假想中,我没有的情况 Task.Factory.StartNew?

10
.NET格式化具有固定空格的字符串
.NET String.Format方法是否允许将字符串放置在固定长度的字符串内的固定位置。 “弦乐在这里” “弦乐在这里” “字符串去这里” 如何使用.NET完成? 编辑 -我尝试过Format / PadLeft / PadRight到死。他们不工作。我不知道为什么 我最终编写了自己的函数来执行此操作。 编辑 -我犯了一个错误,并在格式说明符中使用了冒号而不是逗号。应该是“ {0,20}”。 感谢您提出的所有出色而正确的答案。
199 .net  string 


7
_ViewStart.cshtml布局文件在哪里以及如何链接?
这是默认MVC 3模板中的About.cshtml: @{ ViewBag.Title = "About Us"; } &lt;h2&gt;About&lt;/h2&gt; &lt;p&gt; Put content here. &lt;/p&gt; 我希望可以在中找到对_ViewStart文件的引用About.cshtml,但显然不是。 我查看了global.asax和web.config,但是无法找到该About.cshtml文件如何与_ViewStart文件中的布局“链接”在一起。 一切都按预期进行,我只想知道引擎盖下发生了什么...

9
Response.End()被认为有害吗?
这篇知识库文章说ASP.NET Response.End()中止了线程。 Reflector显示如下: public void End() { if (this._context.IsInCancellablePeriod) { InternalSecurityPermissions.ControlThread.Assert(); Thread.CurrentThread.Abort(new HttpApplication.CancelModuleException(false)); } else if (!this._flushing) { this.Flush(); this._ended = true; if (this._context.ApplicationInstance != null) { this._context.ApplicationInstance.CompleteRequest(); } } } 这对我来说似乎很严厉。如KB文章所述,应用程序中的任何后续代码Response.End()都不会执行,这违反了最少惊讶的原则。这几乎就像Application.Exit()在WinForms应用程序中一样。引起的线程中止异常Response.End()无法捕获,因此将代码包围在try... finally中将无法满足。 这使我想知道我是否应该始终避免Response.End()。 任何人都可以提出,我应该使用Response.End(),当Response.Close(),当HttpContext.Current.ApplicationInstance.CompleteRequest()? 参考:Rick Strahl的博客条目。 根据我收到的输入,我的回答是,是,这Response.End是有害的,但在某些情况下很有用。 使用Response.End()作为一个不可捕获抛出,立即终止HttpResponse在特殊的条件。在调试过程中也很有用。 避免Response.End()完成常规反应。 用于Response.Close()立即关闭与客户端的连接。根据此MSDN博客文章,此方法不适用于正常的HTTP请求处理。 您极不可能有充分的理由调用此方法。 用于CompleteRequest()结束正常请求。 当前事件完成后,CompleteRequest导致ASP.NET管道跳到该EndRequest事件HttpApplication。因此,如果您致电CompleteRequest,然后向响应中写入更多内容,则写入内容将发送给客户端。 编辑-2011年4月13日 进一步明晰,请访问: - 有用的帖子在MSDN博客 - 由乔恩·里德有用的分析
198 .net  asp.net 

11
.Net 4.0中没有ConcurrentList <T>?
我很高兴看到System.Collections.Concurrent.Net 4.0中的新名称空间,这真是太好了!我见过ConcurrentDictionary,ConcurrentQueue,ConcurrentStack,ConcurrentBag和BlockingCollection。 似乎神秘失踪的一件事是ConcurrentList&lt;T&gt;。我是否必须自己写一个(或从网络上获取它:))? 我在这里错过明显的东西吗?

5
控制台应用程序中的.NET全局异常处理程序
问题:我想在控制台应用程序中为未处理的异常定义全局异常处理程序。在asp.net中,可以在global.asax中定义一个,而在Windows应用程序/服务中,可以如下定义 AppDomain currentDomain = AppDomain.CurrentDomain; currentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyExceptionHandler); 但是,如何为控制台应用程序定义全局异常处理程序? currentDomain似乎不起作用(.NET 2.0)? 编辑: 啊,愚蠢的错误。 在VB.NET中,需要在currentDomain前面添加“ AddHandler”关键字,否则在IntelliSense中不会看到UnhandledException事件。 这是因为VB.NET和C#编译器对事件处理的处理不同。


30
Post参数始终为null
自从为WebAPI升级到RC以来,在WebAPI上调用POST时遇到了一些真正的奇怪问题。我什至回到了在新项目上生成的基本版本。所以: public void Post(string value) { } 并从Fiddler致电: Header: User-Agent: Fiddler Host: localhost:60725 Content-Type: application/json Content-Length: 29 Body: { "value": "test" } 当我调试时,字符串“值”从未分配给它。它始终是NULL。有人遇到这个问题吗? (我首先看到了一个更复杂的类型的问题) 该问题不仅与ASP.NET MVC 4绑定,在RC安装后,对于新的ASP.NET MVC 3项目也会发生相同的问题

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.