这个安装程序项目于2004年创建,并从那时起升级.
有两个有问题的DLL文件,总共产生4个错误.
我在网上搜索了这条警告消息,并没有找到永久修复(我确实设法让它消失一次,直到我做了类似干净,内置版本,然后在调试中).
我也尝试过清理,然后刷新依赖项.重复的条目仍在那里.
我也没有找到这个错误意味着什么的好解释.
其他警告属于这种性质:
警告36 .NET Framework启动条件".NET Framework 4"的版本与选定的.NET Framework引导程序包不匹配.更新.NET Framework启动条件以匹配在"先决条件"对话框中选择的.NET Framework版本.
那么,这个先决条件框在哪里?我想让两者都同意.Net 4.0,只是很难找到它们.
当我想要同时计算两个集合(存储为列表)的并集和交集以及差异时,我[当然重新]发明了这个[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都是特殊的 - 不会发生.
无论如何,这不是为了自己的号角.这肯定是以前发明的并且有一个名字.这叫什么?这种方法是在数据库中使用的吗?
这不是功课.
我看到这篇文章赞扬了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)
谢谢!
当从中读取或分配属性时,人们不会期望它执行大量工作.当setSomeValue(...)和getSomeValue(...)方法来代替,人们不应该感到惊讶的东西不平凡的可能引擎盖下回事.但是,现在C#给了世界属性,使用getter和setter方法似乎很愚蠢.你对此有什么看法?我应该将此Q标记为社区维基吗?
谢谢.
编辑:
在我的情况下,调用并不昂贵,但它触发在另一个类中设置相关属性,并可能将短消息写入日志文件(如果URL为空).这对房产来说太过分了吗?有什么选择.
这个问题是相关的,但不一样:你如何给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)
有没有办法做这样的事情?它会是愚蠢的吗?有没有更好的办法?还有其他一般评论吗?我承认,我给出的例子有点假设,我现在找不到确切的代码,这让我想到了这一点.
谢谢.
这是一个有点简化的例子(我改变它来隐藏实际的代码).我有一个数据库驱动的应用程序和一个单独开发的小工具,可以与应用程序一起使用.有一个表定义了枚举,但它可能会随着时间的推移而发生变化.假设某些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) 假设它们是预加载的股票代码,键入文本框.我正在寻找可以复制的代码,而不是要安装的库.
这是受这个问题的启发:
Levenstein距离算法似乎运行良好,但计算需要时间.当用户输入额外的字母时,是否需要重新运行查询这一事实是否有任何优化?我有兴趣最多显示每个输入的前10个匹配项.
这一定是个愚蠢的问题,但我无法弄清楚.我也不能使用设计器,因为在我之前的编码器设法将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的事实,而不是表格正在关闭的事实.
根据我得到的反馈,我可能会与同事一起提出这个"标准".这可能会成为自定义StyleCop规则.有没有写过?
因此,已经StyleCop的这一规定为summary,param和return文档标签.
您是否认为从评论中要求相同的内容是否有意义?
相关说明:如果评论已经很长,那么它应该写成正确的句子吗?
例如(也许我试图说明不好的评论):
//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有关?
谢谢.
在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.
c# ×4
.net ×2
algorithm ×2
python ×2
.net-3.5 ×1
.net-4.0 ×1
bit-fields ×1
coding-style ×1
enums ×1
fuzzy-search ×1
mbunit ×1
mstest ×1
properties ×1
puzzle ×1
python-3.x ×1
reflection ×1
set ×1
text-search ×1
unit-testing ×1
winforms ×1