小编A.R*_*.R.的帖子

具有唯一键和值的C#字典类型

我想知道C#中是否有类似"字典"的内置类型,但TKey和TValue都必须是唯一的.

例如::

d.Add(1, "1");
d.Add(2, "1"); // This would not be OK because "1" has already been used as a value.
Run Code Online (Sandbox Code Playgroud)

我知道这有点奇特,但似乎因为BCL中有大约十亿种收藏类型,它可能存在.有任何想法吗?

c# collections dictionary

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

Box2D体速帽?

我有一个质量为10的物体,程序的每个循环我使用简单的方法对它施加100的力;

Vector2 force = new Vector2(0, 1) * 100;
bod.ApplyForce(force, bod.GetWorldCenter());
Run Code Online (Sandbox Code Playgroud)

它运行良好,加速和所有这一切,但一旦它达到10的速度(100/10我假设)它将不会更快.我无论如何都不是物理学家,但我记得身体应该不断加速,就像在重力作用下一样.这个速度限制是Box2D做事的方式的结果,还是我真的搞砸了什么?另外,我该怎么做才能解决它.

注意:如果我使用ApplyLinearImpulse而不是ApplyForce,我会获得相同的有限速度

更新:我很清楚Box2D施加的总体最高速度限制(在b2Settings.h中).在我的例子中,所讨论的项目远远低于此限制,因为更改了应用的力,无论是1000还是10000,总是会达到最大速度(力/质量).

c# box2d

13
推荐指数
1
解决办法
1898
查看次数

F#:有些,无,或异常?

我最近一直在教自己F#,我来自命令式(C++/C#)背景.作为一个练习,我一直在研究可以用矩阵做东西的函数,比如添加,乘法,得到决定因素等等.在这方面一切都很顺利,但我发现在涉及处理时我可能没有做出最好的决定输入无效,例如:

// I want to multiply two matrices
let mult m1 m2 =
  let sizeOK = validateDims m1 m2

  // Here is where I am running to conceptual trouble:
  // In a C# world, I would throw an exception.
  if !sizeOK then
    raise (InvalidOperationException("bad dimensions!")
  else
    doWork m1 m2  
Run Code Online (Sandbox Code Playgroud)

因此,虽然这在技术上有效,但这适用于功能语言吗?它是否符合函数式编程的精神?或者将它重写为更有意义:

let mult m1 m2 =
  let sizeOK = validateDims m1 m2

  if !sizeOK then
    None
  else
    Some doWork m1 m2  
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我返回一个选项,它在矩阵周围添加了一个额外的层,但我也可以使用函数的结果,即使在程序中的某个稍后点的故障情况(无)和模式匹配等.那么这些类型的场景是否有最佳实践?功能程序员会做什么?

f# c#-to-f# f#-3.0

13
推荐指数
2
解决办法
1421
查看次数

在C#中向字符串添加整数

最近我被告知可以将整数(和其他类型)连接到字符串,反之亦然,即

// x == "1234"
// y == "7890"
string x = "123" + 4;
string y = 7 + "890";
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我不认为这种事情是允许的,所以我一直在使用(从.NET 2开始)形式:

// x == "1234"
// y == "7890"
string x = "123" + 4.ToString();
string y = 7.ToString() + "890";
Run Code Online (Sandbox Code Playgroud)

整数转换为字符串的位置.以前的版本是否始终可用,我错过了它,或者它是C#4的新内容(我现在正在使用它)?

c# c#-4.0

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

获取Visual Studio中的搜索结果列表

有没有人知道在Visual Studio中获取整个搜索结果列表的方法,或者可以做同样的扩展?通常情况下,当使用搜索框时,下一个找到的项目会随着时间的推移而突出显示,这很不错,但有时查看整个结果列表会更有用,类似于Bing或Google中的结果.我知道有"查找符号",但这似乎并不能解释您在评论等中找到的内容.任何想法?

full-text-search visual-studio-2010 visual-studio

11
推荐指数
1
解决办法
6174
查看次数

itextsharp测量块宽度/高度

我正在尝试与iTextSharp进行一些精确的对齐,但是我一直在努力,因为我无法找到获得块或段落的宽度/高度值的方法.如果我创建一个特定字体和大小的文本和文本,那么它的尺寸应该是已知的,对吗?

我知道默认的左/右/中心对齐对我来说很有用,但我知道尺寸最有用的场景.有任何想法吗?

c# itextsharp

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

覆盖WPF中的OnStartup

出于某种原因,我根本无法使用它.我从各种来源读到我可以在WPF应用程序中覆盖OnStartup,它会在创建应用程序时触发.然而,无论我做什么,都没有发生任何事情.这是代码.

public partial class App : Application
{

    protected override void OnStartup(StartupEventArgs e)
    {
      // My code goes here, but nothing ever happens.

      base.OnStartup(e);
    }
}
Run Code Online (Sandbox Code Playgroud)

显然我错过了一些东西.可悲的是,MSDN页面也没有提供太多的见解. http://msdn.microsoft.com/en-us/library/system.windows.application.onstartup.aspx

我究竟做错了什么?

编辑:
事实证明,我的问题是命名空间中的一个小错字.App.xaml.cs将类定义为'RTDMyApp.App',App.xaml文件将其称为'RTD_MYApp.App'无论如何,这个事实加上下面接受的答案让我重回正轨.

c# wpf startup

10
推荐指数
2
解决办法
3万
查看次数

获取TFS中已删除文件的特​​定版本

我有一个非常奇怪的TFS问题,我似乎无法解决.

大约一年前,我创建了一个名为'extensions.cs'的文件并将其放在源代码控制中,让我们说改变集1000.在changeset 5000,文件被删除(因为它不再需要)并且生命继续,没有问题课程.

现在我需要在变更集3000周围构建一个较旧的程序.它恰好使用'extensions.cs',但我无法在changeset 3000(或任何变更集)检查该文件,即使它本来就存在那时候.我可以在源代码管理浏览器中看到该文件,但它显示为灰色,其"最新"状态列为"已删除"

看起来很愚蠢,我不能把它拿回来,所以我做错了,我该如何解决这个问题呢?

c# tfs visual-studio-2010 tfs2010

10
推荐指数
1
解决办法
5457
查看次数

与匈牙利表示法相反?

大多数程序员都知道一种叫做"匈牙利表示法"的东西,每个变量都有一个很好的前缀来表示它的数据类型,即

bIsExciting = false;    // Boolean
strName = "Gonzo";      // String
iNumber = 10;           // Integer
Run Code Online (Sandbox Code Playgroud)

虽然这种符号形式已经失宠,但我看到(在工作中,互联网等)许多数据类型指标被添加为变量名称的" 后缀 ",即

NameStr = "Gonzo";        // String
NumberInt = 10;           // Integer
MyRideBike = new Bike();  // Bicycle
Run Code Online (Sandbox Code Playgroud)

当数据类型后缀为变量名时,是否有这个名称?

编辑:澄清......,这样的东西是否有一个独特的名称?如果没有,一些关于如何称呼它的简明想法肯定会受到赞赏.

language-agnostic naming-conventions hungarian-notation

8
推荐指数
2
解决办法
2103
查看次数

以编程方式复制CD,字节为字节

我想知道是否有人知道我可以通过编程在CD上为数据的字节副本创建一个字节的方式?是否有一些系统调用可以做到这一点?

我有一张光盘已损坏或以其他方式损坏,使得某些文件无法通过资源管理器等访问.我知道那里有信息,我希望能够复制它(即使在它的损坏中)但是我当然不能通过文件系统来做到这一点.

c# c++ windows-7

8
推荐指数
1
解决办法
949
查看次数