以下面的课程为例:
class Sometype
{
int someValue;
public Sometype(int someValue)
{
this.someValue = someValue;
}
}
Run Code Online (Sandbox Code Playgroud)
然后我想使用反射创建这种类型的实例:
Type t = typeof(Sometype);
object o = Activator.CreateInstance(t);
Run Code Online (Sandbox Code Playgroud)
通常这会起作用,但是由于SomeType没有定义无参数构造函数,调用Activator.CreateInstance将抛出类型异常,MissingMethodException并带有消息" 没有为此对象定义无参数构造函数. "是否还有另一种方法可以创建此类型的实例?将无参数构造函数添加到我的所有类中会有点麻烦.
昨晚我试图解决Project Euler挑战赛#15:
从2×2网格的左上角开始,右下角有6条路线(没有回溯).
alt text http://projecteuler.net/project/images/p_015.gif
通过20×20网格有多少条路线?
我认为这不应该这么难,所以我写了一个基本的递归函数:
const int gridSize = 20;
// call with progress(0, 0)
static int progress(int x, int y)
{
int i = 0;
if (x < gridSize)
i += progress(x + 1, y);
if (y < gridSize)
i += progress(x, y + 1);
if (x == gridSize && y == gridSize)
return 1;
return i;
}
Run Code Online (Sandbox Code Playgroud)
我确认它适用于较小的网格,如2×2或3×3,然后将其设置为运行20×20网格.想象一下,当5小时之后,程序仍然愉快地处理数字,并且只完成了大约80%(基于检查其在网格中的当前位置/路线),这让我感到惊讶.
显然,我正在以错误的方式解决这个问题.你会如何解决这个问题?我认为它应该使用方程而不是像我的方法来解决,但不幸的是,这不是我的强项.
更新:
我现在有一个工作版本.基本上它缓存了在仍然需要遍历×m块之前获得的结果.以下是代码以及一些注释:
// the size of our grid
static int gridSize = 20; …Run Code Online (Sandbox Code Playgroud) 按字符数发布您的最短代码,以检查玩家是否赢了,如果是,那么.
假设你在变量b(board)中有一个整数数组,它包含Tic Tac Toe板,以及玩家的移动:
所以,鉴于阵列b = [ 1, 2, 1, 0, 1, 2, 1, 0, 2 ]将代表董事会
X|O|X
-+-+-
|X|O
-+-+-
X| |O
Run Code Online (Sandbox Code Playgroud)
对于这种情况,您的代码应该输出1以指示玩家1赢了.如果没有人赢了你可以输出0或false.
我自己的(Ruby)解决方案即将推出.
编辑:对不起,忘了将其标记为社区维基.您可以假设输入格式正确,不必进行错误检查.
更新:请以函数的形式发布您的解决方案.大多数人已经这样做了,但有些人没有,这不完全公平.电路板作为参数提供给您的功能.结果应该由函数返回.该函数可以具有您选择的名称.
我有一个MySQL查询,我想在其中包含另一个表中的ID列表.在网站上,人们可以添加某些项目,然后人们可以将这些项目添加到他们的收藏夹中.我基本上想要获得那些喜欢该项目的人的ID列表(这有点简化,但这就是它归结为).
基本上,我做这样的事情:
SELECT *,
GROUP_CONCAT((SELECT userid FROM favourites WHERE itemid = items.id) SEPARATOR ',') AS idlist
FROM items
WHERE id = $someid
Run Code Online (Sandbox Code Playgroud)
通过这种方式,我可以通过在我的代码中进一步将id列表转换为PHP中的数组来显示谁喜欢某个项目,但是我收到以下MySQL错误:
1242 - 子查询返回超过1行
我认为这有点使用GROUP_CONCAT而不是,例如,CONCAT?我是以错误的方式来做这件事的吗?
好的,感谢到目前为止的答案,这似乎有效.然而,有一个问题.如果该项目由该用户添加,则该项目也被视为最受欢迎.所以我需要额外的检查以检查creator = userid.有人可以帮我提出一个聪明(并希望有效)的方法吗?
谢谢!
编辑:我只是试图这样做:
SELECT [...] LEFT JOIN favourites ON (userid = itemid OR creator = userid)
Run Code Online (Sandbox Code Playgroud)
而IDLIST是空的.请注意,如果我使用INNER JOIN而不是LEFT JOIN我得到一个空的结果.即使我确信有些行符合ON要求.
在我的网站上有一个按钮,用于调用一个调用的函数window.open,但是,最近在弹出窗口打开之前需要进行调整以进行服务器端检查.
自从添加了代码进行AJAX调用之后,浏览器就会阻止弹出窗口,这是在successAJAX调用的回调中打开的.我读过,如果没有用户点击事件调用,浏览器可能会阻止弹出窗口,所以我尝试将AJAX请求设置为async: false,这解决了Firefox中的问题,但谷歌Chrome仍然阻止我的弹出窗口.有没有办法解决这个问题?
我可以将服务器端检查移动到弹出窗口中打开的页面,但是如果可能的话,我想在打开弹出窗口之前执行此操作.
码:
<a id="attackButton" href="#">Attack Base!</a>
<script type="text/javascript">
$(function() {
$('#attackButton').click(function() {
$.ajax({
url: baseurl + '/index.php?option=com_pbbgs&format=raw&getinfo=goingame',
data: { 'gameid': 618 },
dataType: 'text',
async: false,
type: 'POST',
success: function(data) {
eval(data);
if (window.gameURL) {
goingameRaw();
}
}
});
return false;
});
});
function goingameRaw()
{
window.open(window.gameURL,'test','left=20,top=20,width=1024,height=640,toolbar=0,resizable=0,location=0');
}
</script>
Run Code Online (Sandbox Code Playgroud)
响应体示例:
window.gameURL="http://mydomain.com/index.php?option=com_pbbgs&format=raw&startgame=618&width=1024&height=640";checktutorial('js','attack');
Run Code Online (Sandbox Code Playgroud) 我有一个页面,其中包含iframe使用Javascript加载的页面:
的index.html
<iframe id="myFrame" width="800" height="600" style="display: none;"></iframe>
<div id="loader"><!-- some loading indicator --></div>
<script type="text/javascript">
function someFunction() {
var myFrame = document.getElementById('myFrame');
var loader = document.getElementById('loader');
loader.style.display = 'block';
myFrame.src = 'myFrame.html';
myFrame.onload = function() {
myFrame.style.display = 'block';
loader.style.display = 'none';
};
}
</script>
Run Code Online (Sandbox Code Playgroud)
加载的页面iframe包含一些Javascript逻辑,用于计算某些元素的大小,以便添加JS驱动的滚动条(jScrollPane + jQuery Dimensions).
myFrame.html
<div id="scrollingElement" style="overflow: auto;">
<div id="several"></div>
<div id="child"></div>
<div id="elements"></div>
</div>
<script type="text/javascript">
$(document).load(function() {
$('#scrollingElement').jScrollPane();
});
</script>
Run Code Online (Sandbox Code Playgroud)
这适用于Chrome(可能还有其他Webkit浏览器),但在Firefox和IE中失败,因为在jScrollPane调用时,所有元素仍然是隐形的,jQuery Dimensions无法确定任何元素的维度.
有没有办法确保在被叫 …
在XNA中,什么时候使用多个spritebatch渲染你的游戏内容?到目前为止,我从未使用过多个,并且从未注意到这种方法有任何缺点.
在什么情况下会建议使用多个spritebatches甚至是必要的?
假设你有一个Unix时间戳,那么检查该时间戳是否是昨天某个时间的简单和/或优雅的方法是什么?
我主要在Javascript,PHP或C#中寻找解决方案,但也欢迎伪代码和语言无关的解决方案(如果有的话).
我<div>在一个网页上有一个 633px 的计算高度属性。这未在任何级联样式表中设置,无论是否内联,也未在 javascript 中设置。我在我的代码中到处搜索,但数字 633 没有出现在任何地方。我可以通过设置style="height: 420px;"我想要的高度来解决这个问题,但 IE 似乎将其覆盖为 633px,我也会在其他浏览器中默认设置。我已经在 Google Chrome 和 Firefox/Firebug 中验证了 div 的实际内容远不及 633 像素高。有什么办法可以找出这个计算高度的原因吗?为完整起见,以下是 Google Chrome 报告的<div>.
Computed Style
background-color: white;
display: block;
float: left;
height: 633px;
margin-left: 30px;
margin-top: 20px;
padding-bottom: 0px;
padding-left: 0px;
padding-right: 0px;
padding-top: 0px;
width: 830px;
Inline Style Attribute
margin-left: 30px;
margin-top: 20px;
#overview
background-color: white;
float: left;
padding: 0px;
width: 830px;
#overview, #overviewempty
margin-top: 9px; (is crossed out)
div
display: block;
Run Code Online (Sandbox Code Playgroud)
提前致谢。 …
出于某种原因,我在jquery.js(版本1.4.3,非压缩版本)的第3156行的Internet Explorer 8中收到以下Javascript错误:Object doesn't support this property or method.Firefox和谷歌浏览器中没有错误.
这是错误发生的行:
if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
Run Code Online (Sandbox Code Playgroud)
Investigation(console.log(Expr.leftMatch[type]))产生以下有趣结果:在谷歌浏览器中输出
/(^(?:.|\r|\n)*?):((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\3\))?(?![^\[]*\])(?![^\(]*\))/
Run Code Online (Sandbox Code Playgroud)
但是在Internet Explorer中,这是输出:
function() {
var p = this;
do p = p.previousSibling;
while (p && p.nodeType != 1);
return p;
}
Run Code Online (Sandbox Code Playgroud)
其中exec无法调用(未定义).jquery.js中不存在引用的函数.有没有人知道为什么会发生这种情况,或者我能做些什么来解决它?
遗憾的是,我还没有能够创建一个简单的脚本来重现这个问题,虽然我确实找到了这个有同样问题的帖子,但它没有提供解决方案(最后一篇文章建议该页面应该运行标准模式,但我的已经是).
javascript ×4
c# ×3
code-golf ×1
css ×1
group-concat ×1
html ×1
iframe ×1
jquery ×1
jscrollpane ×1
math ×1
mysql ×1
php ×1
popup ×1
reflection ×1
sizzle ×1
sql ×1
tic-tac-toe ×1
xna ×1