小编Ant*_*ton的帖子

如何将一个流的内容复制到另一个流?

将一个流的内容复制到另一个流的最佳方法是什么?有没有标准的实用方法?

c# stream copying

511
推荐指数
3
解决办法
28万
查看次数

为什么锁(这个){...}不好?

MSDN文档说,

public class SomeObject
{
  public void SomeOperation()
  {
    lock(this)
    {
      //Access instance variables
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果可以公开访问实例,那就是"一个问题".我想知道为什么?是因为锁定的持有时间超过了必要的时间吗?还是有一些更阴险的原因?

c# multithreading locking

462
推荐指数
6
解决办法
15万
查看次数

在C#中将包含命令行参数的字符串拆分为字符串[]

我有一个字符串,其中包含要传递给另一个可执行文件的命令行参数,我需要提取包含各个参数的字符串[],方法与在命令行中指定命令时C#相同.通过反射执行另一个程序集入口点时将使用字符串[].

这有标准功能吗?或者是否有正确分割参数的首选方法(正则表达式?)?它必须处理'''可能正确包含空格的分隔字符串,所以我不能只拆分''.

示例字符串:

string parameterString = @"/src:""C:\tmp\Some Folder\Sub Folder"" /users:""abcdefg@hijkl.com"" tasks:""SomeTask,Some Other Task"" -someParam foo";
Run Code Online (Sandbox Code Playgroud)

示例结果:

string[] parameterArray = new string[] { 
  @"/src:C:\tmp\Some Folder\Sub Folder",
  @"/users:abcdefg@hijkl.com",
  @"tasks:SomeTask,Some Other Task",
  @"-someParam",
  @"foo"
};
Run Code Online (Sandbox Code Playgroud)

我不需要命令行解析库,只需要获取应生成的String [].

更新:我必须更改预期结果以匹配C#实际生成的内容(删除了拆分字符串中的额外")

c# command-line text-parsing

84
推荐指数
7
解决办法
8万
查看次数

C#中的++ i和i ++之间是否存在任何性能差异?

使用类似的东西是否有任何性能差异

for(int i = 0; i < 10; i++) { ... }
Run Code Online (Sandbox Code Playgroud)

for(int i = 0; i < 10; ++i) { ... }
Run Code Online (Sandbox Code Playgroud)

或者编译器是否能够以这样的方式进行优化,使它们在功能相同的情况下同样快速?

编辑:这是因为我与同事讨论过这个问题,并不是因为我觉得它在任何实际意义上都是有用的优化.它主要是学术性的.

c# performance operators

47
推荐指数
4
解决办法
2万
查看次数

正确的方法来停止侦听Socket

我有一个侦听套接字连接的服务器:

public class Server
{
    private Socket _serverSocket;

    public Server()
    {
        _serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        _serverSocket.Bind(new IPEndPoint(IPAddress.Any, 1234));
        _serverSocket.Listen(1);
    }

    public void Start()
    {
        _serverSocket.BeginAccept(HandleAsyncConnectionMethod, null);
    }

    public void Stop()
    {
        //????? MAGIC ?????
    }

    //... rest of code here
}
Run Code Online (Sandbox Code Playgroud)

关闭插座的正确(干净)方法是什么?

打电话是否足够:

_serverSocket.Disconnect(true);
Run Code Online (Sandbox Code Playgroud)

在Stop()方法?或者还有其他工作需要干净地关闭连接吗?

c# sockets

19
推荐指数
1
解决办法
3万
查看次数

C#中的3D数学好库?

我正在编写一个工具,用于处理一堆3D数据,像旋转对象,翻译,缩放和所有好东西.有谁知道一个好的图书馆已经做了一些常见的3D东西?

我对目前的数据可视化不感兴趣,并且主要对执行操作感兴趣.

我知道在这一点上我需要的东西:

  • 2D/3D/4D向量
    • (加,减,点积,叉积等......)
  • 使用矩阵进行旋转/平移/缩放
  • 四元

我能够找到Sharp3D库,但它似乎可以做我想要的但是很长时间没有更新.以前有人用过吗?还有其他(更好的)建议吗?

c# math 3d

15
推荐指数
1
解决办法
1万
查看次数