我遇到了一个非常奇怪的问题,只出现在Safari 10中.我有扑克牌,svg图像,有时会轮换使用transform:rotate(xdeg)
.
我正在使用的卡片有红色块图案.当它没有旋转或以直角旋转时,即90,180,270,那么它看起来很正常.但是,除此之外的任何角度和背景图案都会变成蓝色!我刚收到一位用户的报告,从未见过如此奇怪的事情.其他浏览器都正常工作,Safari 9正常运行.
我猜这只是Safari 10中一个非常奇怪的错误,但有关如何解决它的任何想法?我创建了一个最小的repro:
我正在对代码进行一些单元测试,这可能会根据输入引发许多异常.所以我尝试了类似下面的代码:(简化示例)
static void Main(string[] args)
{
RunTest<ArgumentException>();
}
static void RunTest<T>() where T : Exception, new()
{
try
{
throw new T();
//throw new ArgumentException(); <-- Doesn't work either
}
catch (T tex)
{
Console.WriteLine("Caught passed in exception type");
}
catch (Exception ex)
{
Console.WriteLine("Caught general exception");
}
Console.Read();
}
Run Code Online (Sandbox Code Playgroud)
但是这将始终打印出"抓住一般异常",catch(T tex)处理程序永远不会工作.无论我抛出T()还是显式抛出ArgumentException()都没关系.任何想法为什么会这样?实际上我有点惊讶我甚至能够在catch子句中使用T,但是因为那可能不应该这样做吗?或者至少给出一个编译器警告/错误,说明这个处理程序永远不会工作?
我的环境是Visual Studio 2008,3.5是目标框架.
更新:我现在直接从命令提示符尝试它,然后打印出"Caught传递异常类型".因此看起来这仅限于在Visual Studio中运行.也许Visual Studio托管过程的特殊性?
我有一个div位置:固定这是我的容器div为一些菜单.我把它设置为顶部:0px,底部:0px以始终填充视口.在div里面我想要另外两个div,其中较低的一行包含很多行并且有溢出:auto.我希望它将包含在容器div中,但如果有太多行,它只是扩展到固定div之外.下面是我的代码和截图,以澄清:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>MyPlan</title>
<meta name="X-UA-COMPATIBLE" value="IE=8" />
<style type="text/css">
#outerfixed { position:fixed; width:200px; background-color:blue; padding:5px; top:0px; bottom:30px;}
#innerstatic1 { width:100%; background-color:yellow; height:100px;}
#innerstatic2 { overflow:auto; background-color:red; width:100%;}
</style>
</head>
<body>
<div id="outerfixed">
<h3>OUTERFIXED</h3>
<div id="innerstatic1">
<h3>INNERSTATIC1</h3>
</div>
<div id="innerstatic2">
<h3>INNERSTATIC2</h3>
line<br />
...lots of lines
line<br />
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我有什么方法可以做到这一点吗?同样,我想#innerstatic2进行适当包含#outerfixed内,并得到滚动条,如果它变得比它里面#outerfixed空间较大.
我知道有一些possibilites也通过固定#innerstatic2破解解决这个问题,但我真的很喜欢它是流中可能的话里面#outerfixed,所以如果我搬到什么地方#outerfixed,内部元件会随之而来.
编辑:我知道我可以设置溢出:在#outerfixed汽车,并获得整个事情的滚动条,但我特别希望只是#innerstatic2一个滚动条,这是一个网格,我想滚动只是电网.
任何人?可能?
我们有一个MongoDB集群,客户端通过Mongos实例连接到它.群集中的各个mongo都在运行--auth
,并且Mongo --keyfile
在与它们通信时使用.我们正在分析慢速查询,但没有获取通过Mongo的查询的用户名.
为了更清楚:
如果我直接连接到其中一个Mongo,进行身份验证并运行查询,那么我可以在system.profile
之后查看该集合,并且该user
字段将填充我的用户名.
如果我通过mongos连接,验证并运行查询,则system.profile集合包含有关查询的分析信息,但用户字段为空.
身份验证是必需的,我无法在没有首先进行身份验证的情况下通过Mongo运行查询,但用户名似乎似乎没有包含在性能分析信息中,我们真的希望能够看到它.
有任何想法吗?我可以对配置进行任何更改吗?
我需要使用Python调整jpg图像的大小,而不会丢失原始图像的EXIF数据(关于日期的元数据,相机模型等).关于python和图像的所有谷歌搜索指向我正在使用的PIL库,但似乎无法保留元数据.我到目前为止的代码(使用PIL)是这样的:
img = Image.open('foo.jpg')
width,height = 800,600
if img.size[0] < img.size[1]:
width,height = height,width
resized_img = img.resize((width, height), Image.ANTIALIAS) # best down-sizing filter
resized_img.save('foo-resized.jpg')
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?或者我可以使用的其他图书馆?
模块初始值设定项是CLR的一项功能,无法在C#或VB.NET中直接使用.它们是名为的全局静态方法.cctor
,保证在执行程序集中的任何其他代码(类型初始化程序,静态构造函数)之前运行.我最近想在一个项目中使用它并使用Mono.Cecil 将我自己的解决方案(控制台程序/ msbuild任务)一起攻击,但我想知道:
有没有办法欺骗C#编译器发射模块初始化器?任何属性(例如CompilerGenerated,SpecialName)或其他可以使用的技巧?
C#/ VB.NET是否会出于某种目的自己发出这些初始化器?从我所看到的它们被托管C++用于某些互操作目的,但我找不到任何引用它们用于其他目的.有任何想法吗?
我在C#中创建一个小实用程序,当按下全局热键时,它会向活动文本框添加一些文本,这是一种自动完成功能.我有我的全局热键工作,但现在我不知道如何在活动文本框中获取当前文本(如果活动窗口是一个文本框).到目前为止我尝试过的是使用
一个.GetForegroundWindow然后使用该句柄调用GetWindowText.这给了我活动窗口的窗口标题,而不是文本框内容.
湾 GetActiveWindow并使用该句柄调用GetWindowText.这根本不给我任何文字.
这是我所做的一个例子
[DllImport("user32.dll")]
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
[ DllImport("user32.dll") ]
static extern int GetForegroundWindow();
[ DllImport("user32.dll") ]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);
[DllImport("user32.dll")]
static extern int GetActiveWindow();
public static void TestA() {
int h = GetForegroundWindow();
StringBuilder b = new StringBuilder();
GetWindowText(h, b, 256);
MessageBox.Show(b.ToString());
}
public static void TestB() {
int h = GetActiveWindow();
StringBuilder b = new StringBuilder();
GetWindowText(h, b, 256);
MessageBox.Show(b.ToString());
}
Run Code Online (Sandbox Code Playgroud)
那么,关于如何实现这一点的任何想法?
编辑28.01.2009: 所以,我发现了如何做到这一点.这是我用过的:
using …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的进程中获取子窗口上的窗口句柄,我唯一的信息是窗口类名称.我可以使用任何win32函数吗?我是用C#做的.
更详细一点:这是一个用C#编写的Visual Studio插件.所以我的过程是visual studio,它有很多窗口.其中一个有一个窗口类"VsTipWindow".我不知道那个窗口的直接父窗口,我只有类名.有没有办法让我从那个窗口处理?
是否可以在SQL服务器中进行连接,将表A中的每一行连接到另一行中的n个随机行?例如,假设我有一个Customer表,一个Product表和一个Order表.我想将每个客户加入5个随机产品,并将这些行插入订单表.(并且每个客户应该加入他自己的5个随机行,我不希望所有客户加入相同的5行).
这可能吗?我正在使用SQL Server 2005,如果解决方案特定于此,那就没关系.
这是一个奇怪的要求,但我基本上是在制作一个小型数据生成器来生成一些随机数据.
前段时间我创建了一个小卡片游戏网页应用程序,以获得乐趣.播放器与电脑对战,大多数情况下都能正常工作.有时虽然电脑玩家进入了一个循环,但游戏的目的是失去你所有的牌,如果你没有一张牌可以玩,你就可以获得一堆牌.有时候电脑会播放x,y,z,拍桩,玩x,yz,拍桩等.
我跟踪我所做的动作,所以在任何时候我都有一个看起来像这样的数组:[C2,D5,H2,S4,C5,H2,S4,C5,H2,S4,C5 ]
在这种情况下,我可以看到我已经进入了玩H2,S4,C5的循环,然后进行了堆积然后重复.
那么,广义问题是,检测列表中重复模式的最佳方法是什么?我可能用一个简单的for循环来鞭打一些东西,试图找到我要玩的卡片,如果我在x位置找到那个,那么我可以检查x到n的模式是否在位置x-(nx)重复到x,但这似乎是一种可以有一个很好的算法的问题.鉴于以下函数签名,您将如何编写代码:
function findLoops(previousMoves, nextMove, maxPatternLength) {
//Return [loopLength, loopCount] or null if there are no loops
}
Run Code Online (Sandbox Code Playgroud)
ps这不是家庭作业,游戏存在,如果有人有兴趣,请访问http://www.idiot-cardgame.com :)