我想知道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中有大约十亿种收藏类型,它可能存在.有任何想法吗?
我有一个质量为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,总是会达到最大速度(力/质量).
我最近一直在教自己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)
在这种情况下,我返回一个选项,它在矩阵周围添加了一个额外的层,但我也可以使用函数的结果,即使在程序中的某个稍后点的故障情况(无)和模式匹配等.那么这些类型的场景是否有最佳实践?功能程序员会做什么?
最近我被告知可以将整数(和其他类型)连接到字符串,反之亦然,即
// 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的新内容(我现在正在使用它)?
有没有人知道在Visual Studio中获取整个搜索结果列表的方法,或者可以做同样的扩展?通常情况下,当使用搜索框时,下一个找到的项目会随着时间的推移而突出显示,这很不错,但有时查看整个结果列表会更有用,类似于Bing或Google中的结果.我知道有"查找符号",但这似乎并不能解释您在评论等中找到的内容.任何想法?
我正在尝试与iTextSharp进行一些精确的对齐,但是我一直在努力,因为我无法找到获得块或段落的宽度/高度值的方法.如果我创建一个特定字体和大小的文本和文本,那么它的尺寸应该是已知的,对吗?
我知道默认的左/右/中心对齐对我来说很有用,但我知道尺寸最有用的场景.有任何想法吗?
出于某种原因,我根本无法使用它.我从各种来源读到我可以在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'无论如何,这个事实加上下面接受的答案让我重回正轨.
我有一个非常奇怪的TFS问题,我似乎无法解决.
大约一年前,我创建了一个名为'extensions.cs'的文件并将其放在源代码控制中,让我们说改变集1000.在changeset 5000,文件被删除(因为它不再需要)并且生命继续,没有问题课程.
现在我需要在变更集3000周围构建一个较旧的程序.它恰好使用'extensions.cs',但我无法在changeset 3000(或任何变更集)检查该文件,即使它本来就存在那时候.我可以在源代码管理浏览器中看到该文件,但它显示为灰色,其"最新"状态列为"已删除"
看起来很愚蠢,我不能把它拿回来,所以我做错了,我该如何解决这个问题呢?
大多数程序员都知道一种叫做"匈牙利表示法"的东西,每个变量都有一个很好的前缀来表示它的数据类型,即
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)
当数据类型后缀为变量名时,是否有这个名称?
编辑:澄清......,这样的东西是否有一个独特的名称?如果没有,一些关于如何称呼它的简明想法肯定会受到赞赏.
我想知道是否有人知道我可以通过编程在CD上为数据的字节副本创建一个字节的方式?是否有一些系统调用可以做到这一点?
我有一张光盘已损坏或以其他方式损坏,使得某些文件无法通过资源管理器等访问.我知道那里有信息,我希望能够复制它(即使在它的损坏中)但是我当然不能通过文件系统来做到这一点.
c# ×7
box2d ×1
c#-4.0 ×1
c#-to-f# ×1
c++ ×1
collections ×1
dictionary ×1
f# ×1
f#-3.0 ×1
itextsharp ×1
startup ×1
tfs ×1
tfs2010 ×1
windows-7 ×1
wpf ×1