我希望实现简单的等式:
i,j = -Q±√(Q 2 -4PR)/ 2P
为此,我有以下代码(注意:P = 10. Q = 7. R = 10):
//Q*Q – 4PR = -351 mod 11 = -10 mod 11 = 1, ?1 = 1
double test = Math.sqrt(modulo(((Q*Q) - ((4*P)*R))));
// Works, but why *-10 needed?
i = (int)(((-Q+test)/(P*2))*-10); // i = 3
j = (int)(((-Q-test)/(P*2))*-10); // j = 4
Run Code Online (Sandbox Code Playgroud)
简单地说,测试采用等式的第一部分并将其修改为介于0和11之间的非零整数,然后写入i和j.i和j返回正确的数字,但由于某种原因,需要*-10才能使它们正确(我想要获得正确值的数字).
如果可能的话,我想找到一种更好的方法来执行上面的等式,因为我这样做的方式似乎是错误的,只是有效.我希望按照等式所暗示的方式来做,而不是破解它的工作.
我有一个ac#code snippets,我正在创建一个自定义类对象的列表.当我计算它的数量时,它在快速监视窗口显示一个十六进制值.
替代文字http://img509.imageshack.us/img509/434/morrisissueinvs2008.jpg
但是,如果我输入listItemCount.ToStrin(),我得到正确的值作为输出(即:50061)
知道怎么纠正这个吗?
我注意到每次我尝试访问同一个表时,hibernate会为相同的列生成不同的别名:
Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Hibernate: select person0_.id as id4_0_, person0_.nam as nam4_0_, person0_.fam as fam4_0_, person0_.otc as otc4_0_ from web_db.Person person0_ where person0_.id=?
Run Code Online (Sandbox Code Playgroud)
有没有办法让hibernate为相同的查询生成相同的别名?例如:
Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Hibernate: select person0_.id as id0_0_, person0_.nam as nam0_0_, person0_.fam as fam0_0_, person0_.otc as otc0_0_ from web_db.Person person0_ where person0_.id=?
Run Code Online (Sandbox Code Playgroud) 我注意到当我使用shell函数打开它时应用程序处理.然后我使用该句柄稍后关闭应用程序.但是,用户也可以自己关闭其他应用程序.那个句柄可以被windows重用,这样当我使用该句柄时,我会关闭一个不同的进程.如果可能的话可能吗?
每次点击链接时,我都会尝试向div添加内容.但是,添加的文本在添加后立即消失.我究竟做错了什么?
<html>
<head>
<script type="text/javascript" src="/files/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("a").click(function() {
$("#questions").prepend("A question<br />");
});
});
</script>
</head>
<body>
<a href="">Add</a>
<p id = "questions"> </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有一个泛型类,我想强制类型参数的实例始终从String"cast-able"/ convertible.没有例如使用接口可以做到这一点吗?
可能的实施:
public class MyClass<T> where T : IConvertibleFrom<string>, new()
{
public T DoSomethingWith(string s)
{
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
理想的实施:
public class MyClass<T>
{
public T DoSomethingWith(string s)
{
// CanBeConvertedFrom would return true if explicit or implicit cast exists
if(!typeof(T).CanBeConvertedFrom(typeof(String))
{
throw new Exception();
}
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢这种"理想"实现的原因主要是为了不强迫所有Ts实现IConvertibleFrom <>.
我的程序显示一个水平滚动表面,从左到右平铺UIImageViews.代码在UI线程上运行,以确保新显示的UIImageViews分配了一个新加载的UIImage.加载发生在后台线程上.
一切都很好,除了每个图像变得可见时都有口吃.起初我以为我的后台工作者在UI线程中锁定了一些内容.我花了很多时间查看它,并最终意识到UIImage在UI线程第一次变得可见时正在做一些额外的延迟处理.这让我很困惑,因为我的工作线程有明确的解压缩JPEG数据的代码.
无论如何,在预感上,我写了一些代码,以渲染到后台线程上的临时图形上下文中 - 当然,口吃也消失了.UIImage现在正在我的工作线程上预先加载.到现在为止还挺好.
问题是我的新"强力懒惰的图像"方法是不可靠的.它会导致间歇性的EXC_BAD_ACCESS.我不知道UIImage在幕后实际上在做什么.也许它正在解压缩JPEG数据.无论如何,方法是:
+ (void)forceLazyLoadOfImage: (UIImage*)image
{
CGImageRef imgRef = image.CGImage;
CGFloat currentWidth = CGImageGetWidth(imgRef);
CGFloat currentHeight = CGImageGetHeight(imgRef);
CGRect bounds = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f);
CGAffineTransform transform = CGAffineTransformIdentity;
CGFloat scaleRatioX = bounds.size.width / currentWidth;
CGFloat scaleRatioY = bounds.size.height / currentHeight;
UIGraphicsBeginImageContext(bounds.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextScaleCTM(context, scaleRatioX, -scaleRatioY);
CGContextTranslateCTM(context, 0, -currentHeight);
CGContextConcatCTM(context, transform);
CGContextDrawImage(context, CGRectMake(0, 0, currentWidth, currentHeight), imgRef);
UIGraphicsEndImageContext();
}
Run Code Online (Sandbox Code Playgroud)
并且EXC_BAD_ACCESS发生在CGContextDrawImage行上.问题1:我是否允许在UI线程以外的线程上执行此操作?问题2:什么是UIImage实际上"预加载"?问题3:解决这个问题的官方方法是什么?
感谢阅读所有这些,任何建议将不胜感激!
为什么,当我做我的代码时:
"Land Location \\r\\n Roundoff (C)"
Run Code Online (Sandbox Code Playgroud)
我\\r\\n 在输出端看到了 而不是新的线路馈线?
知道怎么做吗?
正如我所说,我必须只有一个字符串,而不使用"&".我可以把它vbCrLf放在我的弦内吗?
我们正在研究C#中的编码模式,我们希望在其中使用带有特殊类的"using"子句,Dispose()根据"using"主体是正常退出还是异常退出,其方法会有不同的含义.
据我所知,CLR会跟踪当前正在处理的异常,直到它被"catch"处理程序占用为止.但是,这些信息是否以任何方式公开以供代码访问并不完全清楚.你知道它是否,如果是,如何访问它?
例如:
using (var x = new MyObject())
{
x.DoSomething();
x.DoMoreThings();
}
class MyObject : IDisposable
{
public void Dispose()
{
if (ExceptionIsBeingHandled)
Rollback();
else
Commit();
}
}
Run Code Online (Sandbox Code Playgroud)
这几乎看起来像System.Transactions.TransactionScope,除了成功/失败不是通过调用确定x.Complete(),而是基于using身体是否正常退出.
当你想递归枚举一个分层对象,根据一些标准选择一些元素时,有许多技术的例子,如"展平",然后使用Linq进行过滤:如下所示:
但是,当您枚举类似Form的Controls集合或TreeView的Nodes集合时,我一直无法使用这些类型的技术,因为它们似乎需要一个参数(对于扩展方法),这是一个IEnumerable集合:传入SomeForm.Controls不编译.
我发现最有用的是:
哪个为您提供Control.ControlCollection的扩展方法,其中包含IEnumerable结果,然后您可以使用Linq.
我修改了上面的例子来解析TreeView的节点没有问题.
public static IEnumerable<TreeNode> GetNodesRecursively(this TreeNodeCollection nodeCollection)
{
foreach (TreeNode theNode in nodeCollection)
{
yield return theNode;
if (theNode.Nodes.Count > 0)
{
foreach (TreeNode subNode in theNode.Nodes.GetNodesRecursively())
{
yield return subNode;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我现在使用扩展方法编写的代码:
var theNodes = treeView1.Nodes.GetNodesRecursively();
var filteredNodes =
(
from n in theNodes
where n.Text.Contains("1")
select n
).ToList();
Run Code Online (Sandbox Code Playgroud)
而且我认为在传递约束的地方可能会有更优雅的方法.
我想知道是否可以一般性地定义这样的过程,以便:在运行时我可以将集合类型以及实际集合传递给泛型参数,因此代码与是否无关它是TreeNodeCollection或Controls.Collection.
我还有兴趣知道是否有任何其他方式(更便宜?fastser?)比第二个链接(上面)中所示,以获得Linq可用的形式的TreeNodeCollection或Control.ControlCollection.
Leppie关于'在第一个(上图)链接的SO帖子中的SelectMany的评论似乎是一个线索.
我对SelectMany的实验是:好吧,称之为"灾难".:)
感谢任何指针.我已经花了几个小时阅读我发现的那些触及这些区域的SO帖子,然后漫无目的地进入像"y-combinator"这样的exotica.一个"谦卑"的经历,我可能会补充:)