小编Ham*_*jan的帖子

VS2010(较旧)安装程序项目 - 两个或多个对象具有相同的目标位置

这个安装程序项目于2004年创建,并从那时起升级.

有两个有问题的DLL文件,总共产生4个错误.

我在网上搜索了这条警告消息,并没有找到永久修复(我确实设法让它消失一次,直到我做了类似干净,内置版本,然后在调试中).

我也尝试过清理,然后刷新依赖项.重复的条目仍在那里.

我也没有找到这个错误意味着什么的好解释.

其他警告属于这种性质:

警告36 .NET Framework启动条件".NET Framework 4"的版本与选定的.NET Framework引导程序包不匹配.更新.NET Framework启动条件以匹配在"先决条件"对话框中选择的.NET Framework版本.

那么,这个先决条件框在哪里?我想让两者都同意.Net 4.0,只是很难找到它们.

windows-installer visual-studio-2010 compiler-warnings

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

计算联合和交集的这种编程方法的官方名称

当我想要同时计算两个集合(存储为列表)的并集和交集以及差异时,我[当然重新]发明了这个[wheel].初始代码(不是最严格的):

dct = {}
for a in lst1:
  dct[a] = 1
for b in lst2:
  if b in dct:
    dct[b] -= 1
  else:
    dct[b] = -1

union = [k for k in dct]
inter = [k for k in dct if dct[k] == 0]
oneminustwo = [k for k in dct if dct[k] ==  1]
twominusone = [k for k in dct if dct[k] ==  -1]
Run Code Online (Sandbox Code Playgroud)

然后我意识到我应该使用00,01,10和11而不是-1,1,0,......所以,位置n处的位表示集合n中的成员资格.

这可以使用32位int推广到最多32个集合,或使用bitarray或字符串推广到任意数量的集合.因此,您预先计算此字典一次,然后使用非常快速的O(n)查询来提取感兴趣的元素.例如,所有1都表示所有集合的交集.所有0都是特殊的 - 不会发生.

无论如何,这不是为了自己的号角.这肯定是以前发明的并且有一个名字.这叫什么?这种方法是在数据库中使用的吗?

python language-agnostic algorithm set bit-fields

8
推荐指数
2
解决办法
542
查看次数

帮我完成Python 3.x的自我挑战

这不是功课.

我看到这篇文章赞扬了Linq库以及组合工具的优点,我想我自己:Python可以用更易读的方式来做.

用Python轻拍半小时后,我失败了.请在我离开的地方完成.另外,请以最恐怖和最有效的方式来做.

from itertools import permutations
from operator import mul
from functools import reduce
glob_lst = []
def divisible(n): return (sum(j*10^i for i,j in enumerate(reversed(glob_lst))) % n == 0)
oneToNine = list(range(1, 10))
twoToNine = oneToNine[1:]
for perm in permutations(oneToNine, 9):
    for n in twoToNine:
        glob_lst = perm[1:n]
        #print(glob_lst)
        if not divisible(n):
            continue
    else:
        # Is invoked if the loop succeeds
        # So, we found the number
        print(perm)
Run Code Online (Sandbox Code Playgroud)

谢谢!

python puzzle combinatorics python-3.x

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

C#中的属性是否应该执行大量工作?

当从中读取或分配属性时,人们不会期望它执行大量工作.当setSomeValue(...)getSomeValue(...)方法来代替,人们不应该感到惊讶的东西不平凡的可能引擎盖下回事.但是,现在C#给了世界属性,使用getter和setter方法似乎很愚蠢.你对此有什么看法?我应该将此Q标记为社区维基吗?

谢谢.

编辑:

在我的情况下,调用并不昂贵,但它触发在另一个类中设置相关属性,并可能将短消息写入日志文件(如果URL为空).这对房产来说太过分了吗?有什么选择.

c# properties

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

在C#中我可以通过属性帮助自动属性执行一些额外的工作吗?

这个问题是相关的,但不一样:你如何给C#Auto-Property一个默认值?

我喜欢自动属性,但有时我必须做这样的事情:

private string someName;

public string SomeName
{
    get
    {
       return someName;
    }

    set
    {
        someName = value.Trim();
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我必须多次做同样的事情,我开始希望我不需要输入这么多行/代码的代码.我希望能够拦截值并改变它类似:

public string Somename
{
    get;

    [Trim]
    set;
}
Run Code Online (Sandbox Code Playgroud)

有没有办法做这样的事情?它会是愚蠢的吗?有没有更好的办法?还有其他一般评论吗?我承认,我给出的例子有点假设,我现在找不到确切的代码,这让我想到了这一点.

谢谢.

c# custom-attributes automatic-properties

8
推荐指数
2
解决办法
1192
查看次数

如何使C#Enum与数据库中的表保持同步

这是一个有点简化的例子(我改变它来隐藏实际的代码).我有一个数据库驱动的应用程序和一个单独开发的小工具,可以与应用程序一起使用.有一个表定义了枚举,但它可能会随着时间的推移而发生变化.假设某些app(医疗?)需要相当精确地追踪一个人的性别.

select * from sex order by id;

id | mnemonic | description
0  | U        | Unknown sex
1  | M        | Male
2  | F        | Female
3  | T        | Trans-gender
Run Code Online (Sandbox Code Playgroud)

我的C# enum:

public enum SexType
{
    /// <summary>Unknown sex.</summary>
    [Description("U")]
    Unknown = 0,

    /// <summary>Male sex.</summary>
    [Description("M")]
    Male = 1,

    /// <summary>Female sex.</summary>
    [Description("F")]
    Female = 2

    /// <summary>Trans-gender sex.</summary>
    [Description("T")]
    TransGender = 3,
}
Run Code Online (Sandbox Code Playgroud)

在这里,我不应该假设id是一个连续的序列; 这些枚举标志都不能组合,即使它看起来像那样.

一些逻辑是在SQL中完成的; 一些是在C#代码中完成的.例如,我可能有一个功能:

// Here we …
Run Code Online (Sandbox Code Playgroud)

c# reflection enums .net-3.5

8
推荐指数
4
解决办法
6335
查看次数

在C#中超过100k +字符串的快速动态模糊搜索

假设它们是预加载的股票代码,键入文本框.我正在寻找可以复制的代码,而不是要安装的库.

这是受这个问题的启发:

是否有为C#编写的模糊搜索或字符串相似性函数库?

Levenstein距离算法似乎运行良好,但计算需要时间.当用户输入额外的字母时,是否需要重新运行查询这一事实是否有任何优化?我有兴趣最多显示每个输入的前10个匹配项.

c# algorithm fuzzy-search .net-4.0 text-search

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

.NET Windows窗体 - 拦截Close X事件

这一定是个愚蠢的问题,但我无法弄清楚.我也不能使用设计器,因为在我之前的编码器设法将GUI和逻辑全部集中在一起,所以现在它很困惑.我必须按照旧学校的方式去做.

我有一个表格,可以通过3种方式关闭:关闭按钮,文件/关闭菜单和X图标.我希望他们都做同样的事情.拦截按钮和菜单事件很容易.事实上,两者都与一种onCloseConfig方法联系在一起.顺便问一下,这种方法有更好的名称吗?

private void onCloseConfig(object sender, System.EventArgs e)
{
    if (! m_configControl.Modified)
    {
        Application.Exit(); // Or should it be this.Close();
    }
    ....
    // Else present a dialog, ask if they want to save.
}
Run Code Online (Sandbox Code Playgroud)

所以,拦截X我试过的:this.FormClosing +=new FormClosingEventHandler(this.onCloseConfig);我相信这是导致无限循环的原因.我不希望:) FormClosed是另一种选择,但似乎为时已晚.我只想拦截点击X的事实,而不是表格正在关闭的事实.

.net winforms

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

.net评论应该以大写字母开头并以句点结束吗?

根据我得到的反馈,我可能会与同事一起提出这个"标准".这可能会成为自定义StyleCop规则.有没有写过?

因此,已经StyleCop的这一规定为summary,paramreturn文档标签.

您是否认为从评论中要求相同的内容是否有意义?

相关说明:如果评论已经很长,那么它应该写成正确的句子吗?

例如(也许我试图说明不好的评论):

//if exception quit
Run Code Online (Sandbox Code Playgroud)

// If an exception occurred, then quit.
Run Code Online (Sandbox Code Playgroud)

如果想的话 - 大部分时间,如果一个人不愿写评论,那么它也可能是提供信息的.考虑这两个样本:

//if exception quit
if (exc != null)
{
    Application.Exit(-1);
}
Run Code Online (Sandbox Code Playgroud)

// If an exception occurred, then quit.
if (exc != null)
{
    Application.Exit(-1);
}
Run Code Online (Sandbox Code Playgroud)

可以说,根本不需要评论,但是由于提供了一个,我认为第二个更好.

请备份你的意见.您是否对评论艺术有很好的参考,特别是如果它与.Net有关?

谢谢.

.net coding-style code-comments

7
推荐指数
3
解决办法
1047
查看次数

可以将MsTest单元测试按类别分组

MbUnit一个人可以做这样的事情:

[Test]
[TestCategory("Bad Arguments")]
[TestCategory("Fast")]
[ExpectedException(typeof(ArgumentNullException))]
public void TestCopyWithBadHref()
{
   . . . 
}
Run Code Online (Sandbox Code Playgroud)

注意这两个:

[TestCategory("Bad Arguments")]
[TestCategory("Fast")]
Run Code Online (Sandbox Code Playgroud)

由于TeamBuild可以与MsTest集成以执行gated check-ins和/或在晚上运行,因此它是一个很棒的功能!但是,考虑到某些测试可以运行很长时间,可以方便地将它们分成在每次签到确认之前应该运行的测试,以及应该在晚上运行的测试,因为它们的持续时间以及其他因素.

实现这一目标的一种方法可能是创建几个项目 - 一个用于慢速测试,一个用于快速测试等.但是,这种分离是不方便的.项目依赖性不会那么自然,加上一些测试可以在多个逻辑类别中.

如果MsTest有类似于MbUnit长期以来的东西,那将是很棒的.例如,可以运行MbUnit.Cons.exe并指定要与命令行开关一起使用的类别.

我怎样才能实现相同的使用MsTest?我们是MSFT商店,我没有向我的同事出售MbUnit.

mbunit unit-testing mstest

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