问题列表 - 第9076页

等于方法实现助手(C#)

每次我写一些数据类时,我通常会花很多时间编写IEquatable实现.

我写的最后一堂课是这样的:

public class Polygon
{
    public Point[] Vertices { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

实现IEquatable是非常有用的.当然C#3.0/LINQ有很多帮助,但顶点可以移位和/或以相反的顺序移动,这给Equals方法增加了很多复杂性.在经过多次单元测试和相应的实现后,我放弃了,并将我的应用程序更改为仅接受三角形,其中IEquatable实现只需要完全覆盖11个单元测试.

有什么工具或技术可以帮助实现Equals和GetHashCode吗?

.net c# equals iequatable gethashcode

8
推荐指数
1
解决办法
2762
查看次数

Python:在运行时更改方法和属性

我希望在Python中创建一个可以添加和删除属性和方法的类.我该怎么做呢?

哦,请不要问为什么.

python reflection runtime

72
推荐指数
5
解决办法
6万
查看次数

SQL Server管理工作室Projects文件夹

有没有简单的方法来更改SQL Server Management Studio默认的"Project"文件夹?我在互联网上找到了一个注册表黑客,但我宁愿不打扰它.

我正在使用SQL Server 2005 Express.

sql-server

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

在WPF中向鼠标旋转图形(如模拟转盘)

在WPF/C#中,如何旋转"图形"以面向当前鼠标位置?

基本上我想要的是一个"轮"UI控件(如模拟音量表盘).我希望能够单击并拖动拨盘,它将旋转以跟随鼠标.然后,当我释放鼠标时,它将停止跟随(显然!).

我该如何创建其中一个?一个人已经存在吗?

c# wpf user-interface controls

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

如何回应MySQLi预处理语句?

我现在正在玩MySQLi,试图找出它是如何工作的.在我目前的项目中,我总是喜欢在编码时回显一个查询字符串,只是为了确保一切正确,并快速调试我的代码.但是......我怎么能用准备好的MySQLi语句做到这一点?

例:

$id = 1;
$baz = 'something';

if ($stmt = $mysqli->prepare("SELECT foo FROM bar WHERE id=? AND baz=?")) {
  $stmt->bind_param('is',$id,$baz);
  // how to preview this prepared query before acutally executing it?
  // $stmt->execute();
}
Run Code Online (Sandbox Code Playgroud)

我一直在浏览这个清单(http://www.php.net/mysqli)但没有任何运气.


编辑

好吧,如果从MySQLi内部不可能,也许我会坚持这样的事情:

function preparedQuery($sql,$params) {
  for ($i=0; $i<count($params); $i++) {
    $sql = preg_replace('/\?/',$params[$i],$sql,1);
  }
  return $sql;
}

$id = 1;
$baz = 'something';

$sql = "SELECT foo FROM bar WHERE id=? AND baz=?";

echo preparedQuery($sql,array($id,$baz));

// outputs: SELECT foo …
Run Code Online (Sandbox Code Playgroud)

php mysqli

46
推荐指数
3
解决办法
5万
查看次数

使用string.format和List <T> .Count()进行动态字符串格式化

我必须为工作中的项目打印一些PDF.是否有提供动态填充的方法,IE.不使用格式字符串中的硬编码代码.而是基于List的计数.

防爆.

如果我的列表长度为1000个元素,我希望这样:

Part_0001_Filename.pdf ... Part_1000_Filename.pdf

如果我的列表长500个元素,我想要这个格式:

Part_001_Filename.pdf ... Part_500_Filename.PDF

原因是Windows如何命令文件名.它按字母顺序从左到右或从右到左对它们进行排序,所以我必须使用前导零,否则文件夹中的排序会混乱.

c# string formatting

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

使用boost映射包含的结构

考虑到这两个结构:

struct point {
    int x,y;
};

struct pinfo {
    struct point p;
    unsigned long flags;
};
Run Code Online (Sandbox Code Playgroud)

还有一个改变观点的功能:

void p_map(struct point &p);
Run Code Online (Sandbox Code Playgroud)

是否可以使用boost(例如boost :: bind或boost :: lambda)创建一个等效的函数:

void pi_map(struct pinfo &pi) { p_map(pi.p); }
Run Code Online (Sandbox Code Playgroud)

-edit:更新以获取更多信息:

这个函数的初衷是在for_each中使用它.例如,给定此功能:

void p_map(struct point &p)
{
    p.x += 1;
    p.y += 1;
}
Run Code Online (Sandbox Code Playgroud)

我可以写:

void foreach(std::vector<struct pinfo> &pi_vec)
{
    for_each(pi_vec.begin(), pi_vec.end(), pi_map);
}
Run Code Online (Sandbox Code Playgroud)

正如在答案中建议的那样,可以使用boost :: lambda绑定成员变量,并创建替代的for_each版本:

void foreach2(std::vector<struct pinfo> &pi_vec)
{
     boost::function<void (pinfo&)> pi_map2 = bind(&p_map, bind(&pinfo::p, _1));
     for_each(pi_vec.begin(), pi_vec.end(), pi_map2);
}
Run Code Online (Sandbox Code Playgroud)

我对这种方法的问题是,gcc(v.4.3.2)没有内联foreach2版本的pi_map和p_map函数.

为foreach1函数生成的x86代码是:

0000000000400dd0 …
Run Code Online (Sandbox Code Playgroud)

c++ performance gcc boost

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

对包含时间或距离的字符串进行排序

我已经为自定义字符串实现了排序算法,该字符串表示田径事件的时间或距离数据.以下是格式

'10:03.00 - 10分3秒或10英尺3英寸

排序的结果是,对于场事件,最长的投掷或跳跃将是第一个元素,而对于运行事件,最快的时间将是第一个.以下是我目前用于现场活动的代码.我没有发布,running_event_sort因为它与大于/小于交换的逻辑相同.虽然它有效,但它看起来过于复杂,需要重构.我愿意接受建议.任何帮助都会很棒.

event_participants.sort!{ |a, b| Participant.field_event_sort(a, b) }

class Participant
def self.field_event_sort(a, b)
  a_parts = a.time_distance.scan(/'([\d]*):([\d]*).([\d]*)/)
  b_parts = b.time_distance.scan(/'([\d]*):([\d]*).([\d]*)/)

  if(a_parts.empty? || b_parts.empty?)
    0
  elsif a_parts[0][0] == b_parts[0][0]
    if a_parts[0][1] == b_parts[0][1]
      if a_parts[0][2] > b_parts[0][2]
        -1
      elsif a_parts[0][2] < b_parts[0][2]
        1
      else
        0
      end
    elsif a_parts[0][1] > b_parts[0][1]
      -1
    else
      1
    end  
  elsif a_parts[0][0] > b_parts[0][0] 
    -1
  else
    1
  end
end
end
Run Code Online (Sandbox Code Playgroud)

ruby sorting algorithm refactoring

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

Javac无法找到apache commons config的jar

我正在尝试使用Apache Commons Config jar在Ubuntu Jaunty上编译一个非常简单的Java 1.6程序.我一直得到"包org.apache.commons.configuration不存在"错误,即使jar在同一目录中.有任何想法吗?

  • 目录列表
~/source/UpdateStockHistory$ ll
total 304
-rw-r--r-- 1 crosse crosse 298829 2009-06-07 17:36 commons-configuration-1.6.jar
-rw-r--r-- 1 crosse crosse    149 2009-06-07 17:16 UpdateStockHistory.config.xml
-rw-r--r-- 1 crosse crosse    531 2009-06-07 17:46 UpdateStockHistory.java
  • Java版本
~/source/UpdateStockHistory$ javac -version
javac 1.6.0_13
  • 操作系统版本
~/source/UpdateStockHistory$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 9.04
Release:        9.04
Codename:       jaunty
  • 编译器版本
~/source/UpdateStockHistory$ javac UpdateStockHistory.java
UpdateStockHistory.java:2: package org.apache.commons.configuration does not exist
import org.apache.commons.configuration.*;
^
UpdateStockHistory.java:8: cannot find symbol
symbol  : class …

java linux command-line compilation

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

在发布时修改GWT的user.agent

开发时,我将user.agent属性设置为单个值,以减少编译时间.发布时,我有一个为所有用户代理构建的WAR文件.

遗憾的是,我似乎一直忘记切换财产:

  • 浪费开发时间等待编译,或
  • 准备一个不完整浏览器支持的WAR文件(尚未部署,谢天谢地).

我希望自动执行此操作,最好使用maven-release-plugin.

gwt maven-2

9
推荐指数
1
解决办法
7809
查看次数