小编dr.*_*vil的帖子

String.Format还是不?

重复来自:字符串输出:C#中的格式或concat?

特别是在使用String.Format的C#世界中,一切都很常见,通常作为VB.NET开发人员,除非我必须*我不是String.Format,

我更喜欢正常的字符串连接,例如:

V1 = V2 & "test-x" & V3 & "-;"
Run Code Online (Sandbox Code Playgroud)

对我而言,这比这更好:

V1 = String.Format("{0} test-x {1} -;", V2, V3)
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?或者这仅仅是个人偏好?

使用String.Format的原因(来自答案)(我会尽量保持最新)

  • 如果使用字符串格式,本地化会更容易
  • 显然,更改输入格式更容易
  • 它更具可读性(但这是个人的)
  • 更好的性能

**有时我需要动态更改样式或替换东西然后我使用String.Format*

.net format string.format coding-style

6
推荐指数
2
解决办法
2535
查看次数

.NET中的轻量级线程池库

我正在寻找.NET中的线程池库

  • 我应该能够推动大约100.000个任务,因此应该为"阻塞"提供支持.(显然我不能同时推送这么多任务,所以在添加新任务时应该支持一些阻塞,并且应该阻塞线程直到新的插槽可用)
  • 不是太复杂
  • 不那么昂贵(内存 - CPU明智)
  • 免费/开源(商业友好许可证)

我已经有了自己的解决方案,支持所有这些,但我不确定它是否是最好的实现.所以我想看看其他库.

这将主要用于HTTP请求,因此更少的CPU响应等待.这意味着可以接受100个并发线程.

.net multithreading http

6
推荐指数
1
解决办法
1177
查看次数

LINQ到对象的何时何地使用?

在哪些情况下我应该使用LINQ to Objects?

显然我可以在没有LINQ的情况下做任何事情.那么在哪些操作中LINQ实际上可以帮助我编写更短和/或更可读的代码?

这个问题引发了这个问题

.net c# linq vb.net

6
推荐指数
3
解决办法
1780
查看次数

在64位操作系统中运行32位.NET应用程序,真的很糟糕吗?

我知道我们可以通过定位AnyCPU来编译.NET应用程序,这将导致在32位操作系统中运行32位,在64位操作系统中运行64位.

然而,在64位操作系统上有一个报告错误*,我的应用程序出错并为此提供了解决方案,我需要针对x86.

现在我的问题是:即使你的代码要在x64中运行,定位x86真的很糟糕吗?我们在谈论什么样的表现?(我的应用程序是CPU密集型的,但很难想出来)

毕竟.NET Framework将在32位运行,这对我来说听起来不好,而不是采用x64 CPU**的完全寻址能力.

*我不记得错误,但解决方案专门针对x86,并解决了问题.

**我不确定它是否有任何重要但我的应用程序不使用任何Int64变量.

.net performance 64-bit

6
推荐指数
1
解决办法
9630
查看次数

我可以重置静态/共享类吗?

我有一个shared类(static在C#中),它主要带有一些设置数据,应用程序中的任何类都可以读取并有时写入.还有一些静态属性,它们包含一些内部状态.

现在我想将这个类恢复到它的初始阶段.使用所有默认变量等.假设用户想要重置当前状态并重新开始而不重新启动应用程序.

在单例模型中,我只需使用以下内容进行更新:

Public Sub Reset() 
    _Instance = New MyClass()
End Sub
Run Code Online (Sandbox Code Playgroud)

然而,这在Shared课堂上是不可能的.有什么想法我怎么能做到这一点?或者我应该切换 Singleton?

.net c# vb.net static shared

6
推荐指数
2
解决办法
8576
查看次数

.NET中新的Uri(基本,相对)行为不正确

当你像这样创建一个新的Uri时:

New Uri(New Uri("http://example.com/test.php"),"?x=y")
Run Code Online (Sandbox Code Playgroud)

它返回:

http://example.com/?x=y
Run Code Online (Sandbox Code Playgroud)

应该归还:

http://example.com/test.php?x=y
Run Code Online (Sandbox Code Playgroud)

根据那里的每个主要浏览器(我不太确定RFC说的是什么).

这是一个错误还是有任何其他功能正常,还有什么是最好的方法来修复它而不重新发明轮子?

.net constructor uri

6
推荐指数
1
解决办法
315
查看次数

为什么默认情况下不启用PreAuthenticate?

据我所知,WebRequest.PreAuthenticate几乎总是好的.

如果我启用它,即使没有凭据也不会尝试进行身份验证,如果有凭据则会.那么有任何正当理由将其设置为False吗?或者即使没有凭据也可以将其设置为True?

并且因为它非常有用,为什么它没有像许多其他HTTP功能一样默认启用?

.net webrequest httpwebrequest

6
推荐指数
1
解决办法
2812
查看次数

如何计算一段.NET代码的CPU使用率?

我们的工具在诊断模式下生成性能日志,但是我们跟踪代码执行时间(秒表+毫秒)的性能.

显然它根本不可靠,测试系统的CPU可以被一些随机过程使用,如果你的工具配置为运行10个线程而不是2个,结果将完全不同,等等.

我的问题是:

找出一段代码(而不是整个过程)的正确CPU时间的正确方法是什么?

我的意思是CPU时间:

基本上CPU花了多少周期.我假设对于同一台计算机中的同一段代码,它将始终相同,并且不受其他进程的影响.我可能会在这里遗漏一些基本的东西,如果是这样,请在评论或答案中启发我.

PS在我们的设置中无法使用分析器

另一个更新,

为什么我不打算使用分析器

因为我们需要在具有不同数据的不同环境中测试代码,而我们没有分析器或IDE或类似的东西.因此代码本身应该处理它.一个极端的选择可能是使用分析器的DLL,但我不认为这个任务需要这么复杂的解决方案(假设没有免费且易于实现的分析库).

.net optimization performance cpu-usage

6
推荐指数
1
解决办法
1288
查看次数

Resharper相当于CodeRush的"Tab"快捷方式(转到下一个/上一个用法)

我正试图从CodeRush切换到Resharper并且真的在努力解决这个问题.

在CodeRush中,当你超过一个变量/方法等时,如果按" Tab"它将跳转到下一次使用它.与VS.NET类似Ctrl + Shift + Down/up

无论如何在Resharper中这样做?是否有任何插件或方法让我在Resharper中将Tab分配给类似的命令?

resharper keyboard-shortcuts coderush visual-studio

6
推荐指数
1
解决办法
1443
查看次数

不安全的代码来改变String对象的长度(通过变异!)?

由于.NET不使用C样式null来结束字符串,我如何保留分配的字符串,但使用不安全的代码来改变它的长度?

据我所知,.NET为每个字符串使用一个20字节的标头,大概这是存储字符串长度的地方,无论如何直接修改这个长度?因此,.NET会将字符串保留在内存中,但是当我调用.Length它时,它将返回.Length我想要的内容.

如果这是可能的,那么听到所有可能的副作用也会很有趣

UPDATE

我正在努力完成这个而不使用反射.

.net c# string unsafe

6
推荐指数
1
解决办法
967
查看次数