问题列表 - 第17986页

VS2008 c ++编译器会优化以下if语句吗?

if (false == x) { ...}
Run Code Online (Sandbox Code Playgroud)

而不是:

if (!x) { ... }
Run Code Online (Sandbox Code Playgroud)

if (false == f1()) { ...}
Run Code Online (Sandbox Code Playgroud)

而不是:

if (!f1()) { ... }
Run Code Online (Sandbox Code Playgroud)

我认为if(假= = ......版本更具可读性.你同意,或者你可以提出另一个技巧吗?它会一样快吗?谢谢.

这就是我不喜欢的原因!x:

if (25 == a->function1(12345, 6789) &&
    45 == b->function1(12345, 6789) &&
    !c->someOtherFunction(123)) { ... }
Run Code Online (Sandbox Code Playgroud)

以下似乎更好:

if (25 == a->function1(12345, 6789) &&
    45 == b->function1(12345, 6789) &&
    false == c->someOtherFunction(123)) { ... }
Run Code Online (Sandbox Code Playgroud)

c++ compiler-construction optimization coding-style code-readability

0
推荐指数
2
解决办法
517
查看次数

将List添加到List <bool?>作为IList抛出异常

使用.NET 3.5和C#3.0,

IList list = new List<bool?>();
list.Add(null);
Run Code Online (Sandbox Code Playgroud)

抛出一个ArgumentException,只是感觉不对.

List<bool?> list = new List<bool?>();
list.Add(null);
Run Code Online (Sandbox Code Playgroud)

完美的工作.

这是微软代码中的错误吗?

在现实生活中如何产生这种错误的一个例子:

new JavaScriptSerializer().Deserialize<List<bool?>>("[true, false, null]");
Run Code Online (Sandbox Code Playgroud)

.net c#

12
推荐指数
1
解决办法
5896
查看次数

使用WPF WebBrowser显示内容来阻止滚动条

我正在使用WPF WebBrowser组件来显示一些非常简单的HTML内容.但是,由于我事先并不知道内容大小,因此当我加载某些数据集时,我正在获取控件上的滚动条.

基本上,我如何强制(或以其他方式影响相当于强制)WebBrowser扩展大小,以便显示所有内容而不需要滚动条?

c# wpf scrollbar webbrowser-control

10
推荐指数
2
解决办法
8122
查看次数

Tcl Starkit和MySql

有谁知道MySql使用Tcl Starkit需要哪些文件?目前,我有libmySQL.dll,libmysqltcl.dll和pkgIndex.tcl.pkgIndex.tcl具有以下代码:

proc loadmysqltcl {dir} {
   set oldcwd [pwd]
   cd $dir
   load libmysqltcl[info sharedlibextension]
   cd $oldcwd
  }

package ifneeded mysqltcl 3.03 [list loadmysqltcl $dir]
Run Code Online (Sandbox Code Playgroud)

这些文件位于我的Tcl应用程序li​​b文件夹中.到目前为止,在我包装我的应用程序并运行exe之后.文件,我收到一个错误:

无法加载库"C:/ ... TCL1055.tmp":执行"load libmysqltcl [info sharedlibextension]"时,在库路径中找不到此库或从属库

此外,我注意到每次尝试运行我的应用程序时,丢失的.tmp文件都会更改.

有人用Tcl/MySql starkit(对于Windows)有成功吗?

谢谢,

DFM

mysql tcl

2
推荐指数
1
解决办法
782
查看次数

设计模式问题的可维护性

我不确定是否应该使用这种模式但是情况如下:

我有许多实现接口的具体类:

public interface IPerformAction
{
   bool ShouldPerformAction();
   void PerformAction();
}
Run Code Online (Sandbox Code Playgroud)

我有另一个类检查输入以确定是否应该执行ShouldPerformAction.问题是新检查会相当频繁地添加.检查类的接口定义如下:

public interface IShouldPerformActionChecker
{
   bool CheckA(string a);
   bool CheckB(string b);
   bool CheckC(int c);
   // etc...
}
Run Code Online (Sandbox Code Playgroud)

最后,我目前有具体的类使用特定于该具体类的数据调用每个检查器方法:

public class ConcreteClass : IPerformAction
{
   public IShouldPerformActionCheck ShouldPerformActionChecker { get; set; }

   public string Property1 { get; set; }
   public string Property2 { get; set; }
   public int Property3 { get; set; }

   public bool ShouldPerformAction()
   {
      return 
         ShouldPerformActionChecker.CheckA(this.Property1) ||
         ShouldPerformActionChecker.CheckB(this.Property2) ||
         ShouldPerformActionChecker.CheckC(this.Property3);
   }

   public void PerformAction()
   {
      // do …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns

6
推荐指数
1
解决办法
532
查看次数

套接字关闭问题 - 最后一部分数据丢失

我有一个Java程序接受连接,接收HTTP请求并发送HTTP回复和一些存储在文件中的数据(这是缓存代理的一部分).删除所有不相关的内容,我的代码如下所示:

FileInputStream fileInputStream = new FileInputStream(file);
OutputStream outputStream = socket.getOutputStream();
byte[] buf = new byte[BUFFER_SIZE];
int len = 0;
while ((len = fileInputStream.read(buf)) > 0) {
    outputStream.write(buf, 0, len);
}
outputStream.flush();
socket.close();
Run Code Online (Sandbox Code Playgroud)

此代码在每个连接的客户端的特定线程中执行.

当我处理小文件(.htm,.gif,.swf等)时,一切正常(但是,我没有看到浏览器中的任何错误).但是当我下载大文件(.iso),特别是同时下载几个文件时,当系统处于负载状态时,有时我会遇到很奇怪的行为.浏览器下载99.99%的文件,当下载的字节少于BUFFER_SIZE时,下载停止几秒钟,然后浏览器说出错.我无法理解会发生什么,因为所有数据都已成功读取,甚至所有数据都成功写入outputStream.正如你所看到的,我甚至做了flush(),但它没有结果.

谁能解释一下会发生什么?

编辑
上传项目到filehosting.org.
下载源文件.有zip源存档,包含源代码,Build.xml和Readme.txt.使用ant构建解决方案.在ClientManager.java中发生了所描述的问题,您可以在那里找到评论.

java sockets http

5
推荐指数
1
解决办法
2166
查看次数

使用Django存储数据库设置的最佳方法是什么?

我正在尝试使用Django编写一个浏览器游戏,但我对如何存储游戏设置有点困惑.例如,游戏是基于刻度的,我想存储当前的刻度.我已经决定每个数据库只需要一个游戏来避免内置用户授权系统的问题(例如,我不想说用户名X不可用,因为它已经在不同的游戏中使用).据我所知,我仍然需要将这些信息存储在数据库表中,但我不知道如何做到最好.我似乎有两个选择:

A)将游戏作为其他表格引用的普通模型(例如我的用户个人资料),并忽略可能存在多个游戏的可能性.这意味着在技术上可以有2个游戏行,但如果有的话会很容易破坏.

B)我有一个模型,我总是假设有一个且只有一行存储游戏的所有配置数据.此模型仅包含静态方法,其他模型都没有引用它.例如:

class Game(models.Model):
    current_slot = models.PositiveIntegerField(default=0)

    @staticmethod
    def slots_per_day(self):
        Genre.objects.get(id=1).current_slot
Run Code Online (Sandbox Code Playgroud)

这些选项对我来说似乎都不对,但任何人都可以告诉我一个人是否比另一个更好?或者,如果还有其他选项,我还没有看到呢?

python django

4
推荐指数
1
解决办法
754
查看次数

ASP.Net MVC:我可以使用FormCollection来确定选择了哪个单选按钮吗?

我正在使用FormCollection在ASP.Net MVC视图上获取客户端输入.我正在使用一个复选框,我只是检查FormCollection的AllKeys列表是否包含我正在检查的复选框的名称.我现在需要切换到单选按钮,但由于输入需要具有相同的名称(这对我来说有点傻),我无法确定选择了哪个单选按钮.

或者我可以吗?

html asp.net-mvc

0
推荐指数
1
解决办法
6722
查看次数

10
推荐指数
1
解决办法
1万
查看次数

与Paramiko嵌套的SSH会话

我正在重写我写入Python的Bash脚本.那个剧本的关键是

ssh -t first.com "ssh second.com very_remote_command"
Run Code Online (Sandbox Code Playgroud)

我在使用paramiko进行嵌套身份验证时遇到问题.我无法找到任何处理我的确切情况的例子,但我能够在远程主机上找到sudo的例子.

第一种方法写入stdin

ssh.connect('127.0.0.1', username='jesse', password='lol')
stdin, stdout, stderr = ssh.exec_command("sudo dmesg")
stdin.write('lol\n')
stdin.flush()
Run Code Online (Sandbox Code Playgroud)

第二个创建一个通道并使用类似socket的sendrecv.

我能够让stdin.writesudo一起工作,但它不能与远程主机上的ssh一起使用.

import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('first.com', username='luser', password='secret')
stdin, stdout, stderr = ssh.exec_command('ssh luser@second.com')
stdin.write('secret')
stdin.flush()
print '---- out ----'
print stdout.readlines()
print '---- error ----'
print stderr.readlines()

ssh.close()
Run Code Online (Sandbox Code Playgroud)

... ...打印

---- out ----
[]
---- error ----
['Pseudo-terminal will not be allocated …
Run Code Online (Sandbox Code Playgroud)

python ssh paramiko

32
推荐指数
3
解决办法
4万
查看次数