不确定这是否可能,但我想我会问是否有人知道.是否可以在Perforce存储库中找到包含字符串的文件?具体来说,是否可以在不将整个存储库首先同步到本地目录的情况下这样做?(它非常大 - 即使我删除了很多东西,我也不认为我有空间 - 这就是存档服务器无论如何.)
有许多工具可以搜索本地目录中的文件(我个人使用Agent Ransack,但它只是其中之一),但这些不会搜索远程Perforce目录,除非有一些(最好是免费的)工具我是不知道有没有这种能力,或者Perforce本身可能有一些隐藏的功能?
我有恼人的链接器问题 - VS2010声称它找不到这个文件,但它显然存在,并且路径是正确的 - 我在同一个文件夹中使用其他lib,所有工作都没有问题.(d3d9.lib和dinput8.lib)我正在使用2010年2月版的DXSDK(DX9),以防相关.我甚至试过复制/粘贴文件名,所以我知道我没有错误输入它.我的"附加依赖项"行如下所示:
Library.lib;d3d9.lib;dinput8.lib;dxguid.lib;%(AdditionalDependencies)
Run Code Online (Sandbox Code Playgroud)
和附加库目录行(用于Debug构建):
$(DXSDK_DIR)\Lib\;$(SolutionDir)\Debug;%(AdditionalLibraryDirectories)
Run Code Online (Sandbox Code Playgroud)
(Library.lib是我自己的库,存储在$(SolutionDir)\ Debug文件夹中,或Release for Release版本,但这不是问题.)
DXSDK目录包含2个子文件夹,x64和x86,并且两个文件都存在,以及其他两个工作正常的库.(运行Windows 7 64位,所以它应该使用第一个.)任何想法?
所以我有一个树类:
public class Tree<T> : IEnumerable where T : IComparable<T>
{
private Node<T> root = null;
...
private class Node<T> : IEnumerable<T> where T : IComparable<T>
{
private Node<T> left, right;
...
}
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我得到编译器警告:Type parameter 'T' has the same name as the type parameter from outer type 'Tree<T>'
嗯,当然它是相同的名称,它们应该是相同的类型.(事实上,由于Node
该类是私有的,因此永远不能在Tree
类之外访问,所以它们保证是相同的类型.这个编译器警告只是BS我可以放心地忽略吗?或者是否有一些很好的理由我应该给内部类一个不同的通用名称(除了让警告消失)?
(我看到了这个问题,这是关于警告本身,但这显然是一个不同的场景.类型保证是相同的,因为Node
只有在上下文中创建和访问Tree
,所以没有混淆的机会. )
这是我遇到的奇怪的一个.我有一个返回的函数object
.在特定情况下,我确定对象是一个int
,但调用此函数的另一个函数需要一个float
.我能让这个工作的唯一方法是:
private object parser(string expr) {...}
private float parseFloat(string expr)
{
...
object result = parser(expr);
if (result is int)
return (float)(int)result;
else
return (float)result;
}
Run Code Online (Sandbox Code Playgroud)
没有那种类型检查,我根本无法让它工作,即使我知道在这种情况下解析器函数的结果是一个int
.(你可以在调试器中看到它.)我更喜欢这条线:
private float parseFloat(string expr)
{
...
return (float)parser(expr);
}
Run Code Online (Sandbox Code Playgroud)
(类型检查是事先完成的,parseFloat
不应该使用不会计算为float
或的表达式调用int
.)是否有必要对此变量进行双重转换?我显然不希望在所有情况下双投,因为如果返回的parser
是一个float
,它会截断它int
首先,我们不希望出现这种情况.(是的,我试图取代float
,并int
用Single
和Int32
等没有任何区别.)
我看到了这个问题,但这取决于提前知道类型,它提供的唯一解决方案是这个双重演绎技巧,在我的情况下会截断float
s,除非我先进行类型检查,这还需要一个额外的本地保持结果的变量.有没有办法避免这一额外的步骤?
我试图想出一种在C#中的Windows窗体中制作非矩形按钮的方法.我一直在寻找这个,并且有很多教程(包括微软自己的文档)关于如何使按钮外观非矩形,但是 - 这很关键 - 它们都没有做任何关于制作按钮的活动区域的事情非矩形.例如,如果您创建一个椭圆形按钮,则边界矩形的角仍然是用于拾取鼠标事件(如翻转和点击)的内容.这对我的需求是不可接受的.我需要在彼此相邻的地方放置几个奇形状的按钮,它们的边界可能会重叠,但它们只应对按钮图形可见部分内的点击做出响应.我已经看到了其他几种语言(主要是Objective-C)的几个问题,但C#没有.Winforms甚至可以实现这一点吗?