Tag: C#的

使用包含在entity framework4中的lambdaexpression式

我见过很多关于如何克服这个问题的文章,都与CTP4相关,或者添加了我自己的扩展方法。 是否有一个“官方”EF4包括使用包括lambdaexpression式(包括第一级关系,也是第二级和更多级别)的方式,还是最终没有包含在RTM? 它有一个 – 我会很高兴学习如何做,因为在我的代码中使用lambdaexpression式(使用#system.data.entity#system.data.linq)仍然给我: 无法将lambdaexpression式转换为“string”types,因为它不是委托types: var customers = from c in context.Customers.Include(c=>c.Phone)

为什么recursion调用会导致StackOverflow处于不同的堆栈深度?

我试图找出C#编译器如何处理tail调用。 (答案: 他们不是,但是64位的JIT将会执行TCE(tail call elimination)。 所以我使用recursion调用编写了一个小testing,打印了多less次在StackOverflowException进程之前被调用。 class Program { static void Main(string[] args) { Rec(); } static int sz = 0; static Random r = new Random(); static void Rec() { sz++; //uncomment for faster, more imprecise runs //if (sz % 100 == 0) { //some code to keep this method from being inlined var […]

获取磁盘上文件的大小

var length = new System.IO.FileInfo(path).Length; 这给出了文件的逻辑大小,而不是磁盘上的大小。 我希望得到在C#中的文件的大小(最好是没有interop )在Windows资源pipe理器报告。 它应该给予正确的大小,包括: 压缩文件 一个稀疏的文件 碎片文件

为什么在C ++中分割string比Python慢​​?

我试图将一些代码从Python转换为C ++,以获得一点速度,并加强生锈的C ++技能。 昨天我惊讶地发现,从stdin的阅读线的天真实现在Python比C ++快得多(见本文 )。 今天,我终于想通过合并分隔符(类似的语义到python的split())来分割C ++中的string,现在正在经历似曾相识的过程! 我的C ++代码需要更长的时间来完成这项工作(尽pipe不像昨天的课程那样多一个数量级)。 Python代码: #!/usr/bin/env python from __future__ import print_function import time import sys count = 0 start_time = time.time() dummy = None for line in sys.stdin: dummy = line.split() count += 1 delta_sec = int(time.time() – start_time) print("Python: Saw {0} lines in {1} seconds. ".format(count, delta_sec), end='') […]

为什么logging器推荐使用每个类的logging器?

根据NLog的文件: 大多数应用程序将使用每个类的一个logging器,其中logging器的名称与类的名称相同。 这与log4net的运行方式相同。 为什么这是一个很好的做法?

本地Visual Studio开发人员有用的插件或插件

Visual Studio有很多不同的加载项,请参阅Visual Studio Gallery 。 请分享您的经验和最爱。 作为动力,这里是我的一些最爱: 版本控制构build [F / O] – 自动构build编号非常方便的扩展 SlickEdit小工具 [F] – 有用的编辑器小工具,内置文件浏览器… SlickEdit工具 [C] – 编辑和版本工具 重构! for C ++ [F / C] – C ++代码重构,比如C# WiX [F / O] – 使用XML进行Windows安装程序设置 AnkhSVN [F / O] – 使用你的IDE里面的subversion 视觉泄漏检测器 [F / O] – 帮助debugging问题 Parasoft C ++testing [C] – 用于代码质量保证的套件 […]

在C#/。NET中将参数标记为不可空?

是否有一个简单的属性或数据约定,我可以分配给一个函数参数,防止null在C#/。NET中传递? 理想情况下,这也将在编译时检查,以确保文字null没有被用在任何地方,并在运行时抛出ArgumentNullException 。 目前我写了类似… if (null == arg) throw new ArgumentNullException("arg"); …对于每一个我希望不为null论证。 在同样的说明中,是否存在Nullable<>的反义词,从而导致以下失败: NonNullable<string> s = null; // throw some kind of exception

DataContractJsonSerializer和JavaScriptSerializer有什么区别?

.NET Framework附带了System.Runtime.Serialization.Json.DataContractJsonSerializer和System.Web.Script.Serialization.JavaScriptSerializer ,它们都是对JSON进行de / serialize。 我怎么知道什么时候select这些types之一? MSDN并没有说清楚它们的相对优势是什么。 我们有几个消耗或放出JSON的项目,到目前为止select的类都依赖于小项目对每个项目的意见。 有些很简单,有两个关于从JSON生成托pipetypes的复杂逻辑(这些types并不紧密地映射到stream),但没有强调速度,需要速度。 没有任何与WCF交互,至less现在。 虽然我对替代图书馆感兴趣,但我希望有人也可以回答我的问题。

node.js与ASP.NET Core性能testing的意外结果

我正在用node.js和asp.net-core编写的两个(有点)你好世界项目做一个快速压力testing。 他们都在生产模式下运行,没有logging器连接到他们。 结果是惊人的! 即使在做了一些额外的工作之后,ASP.NET核心的performance也优于node.js应用,而node.js应用只是渲染一个视图。 应用程序1: http://localhost:3000/nodejs node.js 使用 :node.js,express和vash渲染引擎。 这个端点的代码是 router.get('/', function(req, res, next) { var vm = { title: 'Express', time: new Date() } res.render('index', vm); }); 正如你所看到的,除了通过timevariables发送当前date到视图外,它什么都不做。 应用程序2: http://localhost:5000/aspnet-core asp.net core 使用 :ASP.NET核心,默认模板定位dnxcore50 然而,这个应用程序不只是呈现一个页面上的date。 它生成5段各种随机文本。 理论上这应该比nodejs应用稍微重一点。 这是渲染这个页面的动作方法 [ResponseCache(Location = ResponseCacheLocation.None, NoStore = true)] [Route("aspnet-core")] public IActionResult Index() { var sb = new StringBuilder(1024); […]

静态成员函数中`this`的types?

在C ++ 5.1.1 / 3 [expr.prim.general]中说: types和值类别[在this ]在静态成员函数中定义。 这是什么意思? 它是如何相关的? 注意: this不应该出现在静态成员函数的声明中