草庐IT

c# - 将 TypeScript 与内联服务器端 `<script>` block 和 ASP.Net 结合使用

我希望能够在ASPX(或Razor)页面中使用内联TypeScript,在页面编译时将其转换为Javascript。所以:...变成......它应该在@的同一时间发生或block被转换。这应该可以在运行时通过某种页面后处理实现,但不会在编译时生成异常-我想在发现脚本中的错误的同时发现任何C#代码。理想情况下,TypeScriptintellisense等应该在内联中工作block,这让我觉得这应该是一个VS2012扩展。有什么办法吗? 最佳答案 简短的回答是否定的。您可以编写一个TypeScript文件并将编译后的JavaScri

c# - 检查 IEnumerable<T> 是否不包含重复项(= 不同)的快速方法

是否有快速内置方法来检查IEnumerable只包含不同的字符串?一开始我是这样开始的:varenumAsArray=enum.ToArray();if(enumAsArray.Length!=enumAsArray.Distinct().Count())throw...但是,这看起来像是O(2n)-是吗?ToArray()可能是O(1)?这看起来更快:varset=newHashSet();foreach(varstrinenum){if(!set.Add(str))throw...}这应该是O(n),但是,是否也有内置方法?编辑:也许Distinct()在内部使用它?解决方案:在考

c# - 为什么 ToList<Interface> 不适用于值类型?

如果我为值类型实现一个接口(interface)并尝试将其转换为它的接口(interface)类型的列表,为什么这会导致错误而引用类型转换得很好?这是错误:CannotconvertinstanceargumenttypeSystem.Collections.Generic.ListtoSystem.Collections.Generic.IEnumerable我必须明确地使用Cast转换它的方法,为什么?自IEnumerable是通过集合的只读枚举,它不能直接转换对我来说没有任何意义。下面是演示该问题的示例代码:publicinterfaceI{}publicclassT:I{}pu

c# - 为什么我应该返回 IList<T> 而不是 List<T>?

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:C#-ListorIList写满了所以你应该返回IList从你的方法而不是List但我找不到任何真正好的理由。我一直在寻找执行此操作的代码,然后调用代码通常会执行以下两项操作之一:调用newList(returnedIList)所以它可以使用List上的所有好方法转换回List所以它可以使用List上的所有好方法第一个很笨重,第二个会抛出(运行时)InvalidCastException如果实现实际上更改为其他东西(这使得它完全愚蠢)。如果我使用List出于某种原因必须用IList的实现替换它我不能从List

c# - 对 SortedList<K, V> 的键进行二进制搜索

我需要为线性插值编写一些代码,我正在尝试找出搜索SortedList的键的最有效方法。对于围绕我的目标键的上下键。SortedListxyTable=newSortedList(){{1,10},{2,20},{3,30},{4,40}};doubletargetX=3.5;搜索列表并确定3.5在3和4之间的最有效方法是什么?我有一个适用于整数的方法/作弊(暂时将目标键插入列表然后找到索引)但我想我会问专业人士以便我可以生成高质量的代码。谢谢。 最佳答案 二分查找可以让你在列表中获得不错的性能。但是SortedList的Keys属性

c# - 客户端不会捕获通用 FaultException< T >,只会捕获 FaultException

我已经阅读了关于此的所有内容,但也许我遗漏了一些东西(好吧,我肯定遗漏了一些东西,否则它已经可以工作了)我在我的服务器业务层中抛出了一些异常错误:publicclassRfcException:Exception{publicRfcException(string_m,Exception_inner):base(_m,_inner){}publicDictionaryExtendedProperties{get{returnextendedProperties;}protectedset{extendedProperties=value;}}privateDictionaryexten

c# - 为什么 List<T>.Enumerator 比我的实现更快?

由于各种巨大的性能优势(在我的例子中),我发现自己处于必须滚动我自己的动态数组实现的位置。但是,在为我的版本创建一个枚举器并将效率与List使用的枚举器进行比较后,我有点困惑;Listone比我的版本快大约30-40%,尽管它要复杂得多。这是List枚举器实现的重要部分:publicstructEnumerator:IEnumerator,IDisposable,IEnumerator{privateListlist;privateintindex;privateintversion;privateTcurrent;internalEnumerator(Listlist){this.l

c# - NUnit:为什么 Assert.Throws<T> 没有捕获我的 ArgumentNullException?

我应尊敬的JohnSkeet先生的要求重新发布这个问题,他建议我设计一个简单的测试程序来隔离和演示我遇到的问题并重新发布这个问题。这个问题源于thisone,所以如果这一切听起来很熟悉,请原谅我。您可能会从那个问题中收集到关于这个问题的额外详细信息。我遇到的问题是Assert.Throws来自NUnit2.5.9。有时,它无法捕获在TestDelegate调用的方法中抛出的任何异常。我在下面的代码中以可重现的方式确定了这种行为。(尽管这可能是FailsOnMyMachine™的一个例子。为了重现错误,我创建了一个包含两个C#DLL项目的解决方案:第一个包含一个类,具有一个公共(publ

c# - 为什么 GetType() 为 Nullable<DateTime> 返回 DateTime 类型

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Nullabletypeisnotanullabletype?在下面的代码中:DateTime?dt=DateTime.Now;MessageBox.Show(dt.GetType().ToString());消息框显示“System.DateTime”,而不是Nullable.下面也返回false(因为GetType错误):if(dt.GetType().IsAssignableFrom(typeof(DateTime?)))...(顺便说一下,使用DateTime?或Nullable没有区别)在监wind

c# - 在调用 .Object 属性后更改 Mock<IType> 对象

我目前正在编写单元测试并使用Moq框架模拟依赖项。为此,我创建了一个Mock,如下所示:MocktraceProviderMock=newMock();traceProviderMock.Setup(x=>x.GetTraceContext(It.IsAny())).Returns("test");ITraceProvidertraceObj=traceProviderMock.Object;但是稍后我想稍微修改模拟的行为,所以我再次调用Mock对象上的Setup:traceProviderMock.Setup(x=>x.GetTracer(It.IsAny())).Returns("