jjzjj

c# - 我可以使用 ReSharper 来执行评论标准吗?

最近经常使用ReSharper,我想为我的团队设置的一件事是在C#类或C#文件没有设置代码注释标准时发出通知。不幸的是,我还没有找到很多关于这个主题的信息。例如,我想确保所有方法或函数的上方都有注释说明://////DescriptionofMyMethodhere.///publicvoidMyMethod();我还希望看到对(代码行数)/(评论行数)是否围绕某种神奇的快乐媒介进行基本检查,如果不是,则创建通知或警告。 最佳答案 开始的一个简单选项(甚至不需要R#)是打开XML文档文件的生成,然后将警告视为错误。这将确保每个公共(

c# - 获取 Web 项目引用的类库项目中的相对文件路径

我有一个引用类库的ASP.Net网站。在类库中,我需要将文件读入内存。在我的类库的顶层有一个名为EmailTemplateHtml的文件夹,其中包含我要读入的文件MailTemplate.html。我该怎么做? 最佳答案 在VisualStudio中,您可以配置您的库,以便将文件复制到依赖它的任何项目的构建目录中。然后您可以在运行时获取构建目录的路径,以便读取您的文件。分步说明,从一个新的解决方案开始:创建您的应用程序项目和类库项目。通过Properties->Add->Reference从应用程序项目添加一个reference到类

c# - 返回 LINQ 结果时何时调用 ToList 的经验法则

我正在寻找在IEnumerables上调用ToList/ToArray/MemoizeAll(Rx)的经验法则,而不是在返回时返回查询本身IEnumerable的东西。我经常发现最好只返回查询并让调用者决定是否需要列表,但有时由于linq的懒惰特性,它可能会回来咬你一口。我想收集指南,例如:CallToListif:youcreatenewobjects(eg.inaselect)youhavesideeffectsinyourqueryOtherwise,returnthequery 最佳答案 首先,您永远不应该在查询中产生副作用

c# - 同一类型参数的协变和逆变

C#规范指出参数类型不能同时是协变和逆变的。这在创建协变或逆变接口(interface)时很明显,您分别用“out”或“in”修饰类型参数。没有同时允许两者的选项(“outin”)。这种限制仅仅是一种特定于语言的约束,还是基于范畴论的更深层、更根本的原因会让您不希望您的类型既是协变又是逆变的?编辑:我的理解是数组实际上是协变和逆变的。publicclassPet{}publicclassCat:Pet{}publicclassSiamese:Cat{}Cat[]cats=newCat[10];Pet[]pets=newPet[10];Siamese[]siameseCats=newSi

c# - 在 C# 中使用 RAII 安全吗?和其他垃圾收集语言?

我正在制作一个接受System.Windows.Form控件并设置其光标的RAII类。并在析构函数中将光标设置回原来的样子。但这是个坏主意吗?当此类的对象超出范围时,我可以安全地相信析构函数将被调用吗? 最佳答案 这是一个非常非常糟糕的主意。当变量超出范围时,不会调用终结器。它们在对象被垃圾回收之前的某个时刻被调用,这可能是很长一段时间之后。相反,您想要实现IDisposable,然后调用者可以使用:using(YourClassyc=newYourClass()){//Useycinhere}这将自动调用Dispose。在C#中很

c# - 异常消息是否应该全局化

我正在做一个项目,我刚刚开始做所有必要的工作来全局化应用程序。经常出现的一件事是是否全局化异常消息,但确保string.Format使用CultureInfo.CurrentCulture而不是CultureInfo.InvariantCulture。此外,这意味着异常消息将存储在可标记为特定于文化的资源文件中。所以问题是,异常消息应该全局化还是应该留在InvariantCulture或作者所在的国家;在我的例子中是en-US。 最佳答案 异常消息应该很少直接显示给用户。您需要考虑每个字符串的使用者。显然,用户界面中的文本片段需要国

c# - Random.Next() 有多随机?

我一直在对Random类进行一些测试,我使用了以下代码:while(x++我不断更改rnd最大限制(即5000000)并更改迭代次数,我得到以下结果:1)ify=rnd.Next(1,5000):Theaverageisbetween80to110iterations2)ify=rnd.Next(1,5000000):Theaverageisbetween2000to4000iterations3)ify=rnd.Next(1,int.MaxValue):Theaverageisbetween40,000to80,000iterations.为什么我得到这些平均值,即在我检查每个值的1

c# - 从 'Copy always' 切换到 'Copy if newer' 的风险

为了避免重建尚未触及的库,我将某些文件的复制到输出目录从总是复制更改为如果更新则复制在一些c#项目中。设置更改的文件将其构建操作设置为内容、嵌入式资源或资源.这会带来哪些风险? 最佳答案 除了这可能已经过时(例如由于资源被嵌入)之外,我现在能想到的唯一风险是您可以使用过时的文件以防某些程序更改某些内容而不更新文件的时间戳(或修改这个时间戳)。例如,您可能会对文件进行一些本地更改,然后使用某种文件版本控制系统(如SVN或HG)恢复其内容。VisualStudio可能不会注意到还原的文件,也可能不会复制它。

c# - 我的 Windows 窗体在构建时不断缩小/调整大小

我正在处理一个Windows窗体项目。它包含一个选项卡Controller,其中包含多个页面和每个页面上的多个控件。似乎最近,在一些表单更改之后,每次我构建和运行解决方案时,表单都会调整大小/缩小。因此,如果我将表单高度的大小设置为768,一旦我点击“开始”构建并运行它,我实际上可以瞥见它在这个过程中自行调整大小,然后表单加载比21像素短它在构建时的高度值。如果我继续构建和运行我的项目,表单每次都会减少21个像素,每次构建时它会越来越小。我们认为它可能是在我们将“DataGridView”Controller添加到其中一个选项卡时引入的,但我们尚未证明是否是这种情况。为什么会发生这种情

C#:在什么情况下应该清空引用?

TheCLRProfilercanalsorevealwhichmethodsallocatemorestoragethanyouexpected,andcanuncovercaseswhereyouinadvertentlykeepreferencestouselessobjectgraphsthatotherwisecouldbereclaimedbyGC.(Acommonproblemdesignpatternisasoftwarecacheorlookuptableofitemsthatarenolongerneededoraresafetoreconstitutelater.