我最近注意到,当我创建私有方法,在传递给它们的对象中设置几个字段时,Resharper会提示一个提示,说明该方法可以是静态的.
这是我可能拥有的一种方法的大大简化的例子.
private void MakeStatusTheSame(MyClass mc, MySecondClass msc)
{
mc.Status = msc.Status;
}
Run Code Online (Sandbox Code Playgroud)
当我有这样的方法时,Resharper建议该方法可以是静态的.
我试图避免使公共方法静态,因为它们破坏了单元测试...但我不确定这同样适用于私有方法.
Resharper的建议是否是有效的最佳做法,还是应该将其关闭?
有没有人知道部署本机(没有COM,没有.NET)ANSI C Windows共享库的最佳实践指南?
我们的产品使用zlib,我们在下载页面上分发预先构建的二进制文件,这些文件与官方zlib页面上的不同.我猜这是因为避免混合C运行时.官方版本是使用VC++ 6.0针对msvcrt构建的,而VS.NET/2005/2008将使用msvcrt71/80/90.
我想要做的是创建VS2005/8解决方案和项目,这些解决方案和项目将为我们正确构建zlib并将它们分配到我们现在所拥有的位置.我想仔细地做这件事,并分发一个适当的有用的包,然后我也可以发送给zlib的策展人,以包含在他们的源代码发行版中.但是,找到可靠的信息已被证明是麻烦的.我有很多关于Win32编程的书籍,我在网上发现了很多文章,但这些文章似乎没有完全描述你真正需要分发的内容.
例如,zlib分发.exp,.lib存根和.def文件,其中fftw分发.def文件,但不分发.lib存根和.exp文件.我想我可以直接转储那些看起来很有用的东西(或者只是反映官方zlib目前的内容),但我想知道为什么它必须存在于它所属的目录中.
是否有很好的例子来源于unix世界的维护良好的Windows发行版?
澄清:
我们分发一个库并向(大多数)Windows用户提供zlib,因为他们通常没有它.我希望我们的zlib构建作为一般组件非常有用,而不仅仅是我们的产品消耗的.dll.我们是开源的并且被广泛使用,因此我们希望使我们的整个构建环境可用并且易于适应您想要使用的任何编译器.
我想在Django中执行一个半复杂的查询.例如,我想要的东西是这样的:
SELECT
b.*,
(SELECT count(id) FROM comments c WHERE c.blog_id = b.id) AS number_of_comments
FROM blog b
WHERE 1
Run Code Online (Sandbox Code Playgroud)
从我的PHP背景来看,Code Igniter和Zend Framework都有"查询构建器".您可以使用框架中的方法构建SQL查询.这有点像Django吗?
在Django中构建和执行复杂查询的最佳方法是什么?有没有推荐的方法/最佳做法来进行这些类型的查询?
更新:
由于下面的mherren代码,我得到了很少的改动.这是代码的更新版本.
在我的views.py中我有这个:
def index(request):
blog_posts = Blog.objects.all().annotate(Count('comment')).order_by('-pub_date')[:5]
return render_to_response('blog/index.html',
{'blog_posts': blog_posts})
Run Code Online (Sandbox Code Playgroud)
在我的模板文件(index.html)中,我有这个:
Welcome...
{% if blog_posts %}
<ul>
{% for post in blog_posts %}
<li>
<b>
<a href="/blog/post/{{ post.id }}">{{ post.title }}</a>
</b> ({{ post.pub_date }})<br/>
{{ post.content }}<br/>
{{ post.comment__count }} comment(s)<br/>
by: {{ post.author }}<br/><br/>
</li>
{% endfor %}
</ul>
{% else %}
<p>No …Run Code Online (Sandbox Code Playgroud) 我想将此代码更改为汇编代码,在mac上工作,如何做到这一点?
while (a --)
{
*pDest ++ += *pSrc ++;
}
Run Code Online (Sandbox Code Playgroud) 我不明白为什么这个查询不起作用.我用a msgbox来显示我的strSQL,但它对我来说看起来很完美.
Dim strSQL As String
strSQL = "INSERT INTO Jobs (Date, RefNo, ProjectID, PManager, PDesc, PONo, Src_Qty, WC_Qty, Rate, Total, Note, Company) "
strSQL = strSQL & "VALUES (" & JobDate.Value & ", '" _
& Text41.Value & "', '" _
& ProjectID.Value & "', '" _
& PManager.Value & "', '" _
& PDesc.Value & "', " _
& Text43.Value & ", " _
& Src_Qty.Value & ", " _
& WC_Qty.Value & ", " …Run Code Online (Sandbox Code Playgroud) 我只想从当前目录中获取文件,只输出.mp4 .mp3 .exe文件.所以我想我可以这样做:
ls | grep \.mp4$ | grep \.mp3$ | grep \.exe$
Run Code Online (Sandbox Code Playgroud)
但是不,因为第一个grep只输出mp4,因此不会使用其他2个grep.
有任何想法吗?PS,在Slow Leopard上运行此脚本.
我一直在寻找一个简单的答案,这是一个非常漫长的时间,似乎这一点非常明显和简单,因为没有人有一个简单的,白痴证明教程.
无论如何,我想做的就是有一个单独的404.html静态页面,无论何时抛出任何错误都会加载.理想情况下,这应该仅在生产和分期中发生.
我觉得这应该是最简单的事情......但我无法弄明白.
任何帮助深表感谢.
我的目标是start_tag_handler(见下文)在找到/ tag 时获取apps/ titlecontent (请参阅下面的示例XML).appstitle
并
end_tag_handler在找到/ tag 时获取apps/ logscontent .appslogs
但相反,此代码返回null并退出.
#!/usr/local/bin/perl -w
use XML::Twig;
my $twig = XML::Twig->new(
start_tag_handlers =>
{ 'apps/title' => \&kicks
},
twig_roots =>
{ 'apps' => \&app
},
end_tag_handlers =>
{ 'apps/logs' => \&bye
}
);
$twig -> parsefile( "doc.xml");
sub kicks {
my ($twig, $elt) = @_;
print "---kicks--- \n";
print $elt -> text;
print …Run Code Online (Sandbox Code Playgroud) 以下适用于IEnumerable类型,但有没有办法得到这样的东西使用IQueryable类型对sql数据库?
class Program
{
static void Main(string[] args)
{
var items = new[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, };
foreach (var item in items.Where(i => i.Between(2, 6)))
Console.WriteLine(item);
}
}
static class Ext
{
public static bool Between<T>(this T source, T low, T high) where T : IComparable
{
return source.CompareTo(low) >= 0 && source.CompareTo(high) <= 0;
}
}
Run Code Online (Sandbox Code Playgroud) 我想将数值转换为文本字符串.我正在用window.open()命令打开几个窗口,我希望这些窗口不要在彼此之上.
为此,我在windows.open命令中使用参数"left"和"top",但这些参数需要是文本实体.
for (var i = 0; i < final_number; ++i )
{
left_value=50+(50*i);
list[i]=window.open(url[i],"","height=500,left=left_value,width=1000");
};
Run Code Online (Sandbox Code Playgroud)
计算时left_value=50+(50*i),结果是数字.
问题是该window.open()命令需要一个文本参数left_value.
因此我想将left_value转换X为"X"