关于Random.NET Framework 4.6中的类的实现,我有两个问题(此处提供的代码):
在构造函数的末尾设置Seed参数的基本原理是什么1?它似乎是从C(第二版)中的Numerical Recipes复制粘贴的,它有一定意义,但它在C#中没有.
在书中(Numerical Recipes in C(2nd Ed.))中直接说明该inextp字段被设置为值,31因为:
常数31是特殊的; 见Knuth.
但是,在.NET实现中,此字段设置为value 21.为什么?代码的其余部分似乎严格遵循书中的代码,除了这个细节.
是否可以选择在Tig的状态视图中还原来自单个块的更改?
我的意思是与u或相反的功能1.我知道!操作,但是这个会恢复整个文件 - 而不仅仅是一次更改.
我有两种方法,它们都正确编译:
public int A()
{
int i;
if(!int.TryParse("0", out i))
{
return -1;
}
// do sth
return i;
}
public int B()
{
int i;
if(true)
{
return -1;
}
return i;
}
Run Code Online (Sandbox Code Playgroud)
在第二种情况(方法B)中,编译器足够聪明,可以检测到该变量i从未被使用过,所以它不会抱怨不分配它.
但是,我有另一个例子(两者的组合)似乎等同于方法B:
public int C()
{
int i;
if (true || !int.TryParse("0", out i))
{
return -1;
}
return i;
}
Run Code Online (Sandbox Code Playgroud)
在VisualStudio 2012(.NET Framework 4.6.01055)下在Windows上进行编译时,会抛出错误:Use of unassigned local variable 'i'.解决方案是:
i用任何值初始化,或| …我试图捕捉串的片段,看起来像%a,%b等,并与一些值替换它们.另外,我希望能够%通过输入来逃避角色%%.
在示例中的字符串%d%%f%x%%%g我想匹配(,,).%d%%f%x%%%g%d%x%g
我的正则表达式如下所示:
(?:[^%]|^)(?:%%)*(%[a-z])
Run Code Online (Sandbox Code Playgroud)
(?:[^%]|^) - 匹配行的开头或不同的字符 %(?:%%)*- 匹配0次或多次出现%%(转义%)(%[a-z])-正确的匹配%a,%b等模式添加前两个元素以支持转义%字符.
但是,在示例字符串上运行regexp时,%g找不到最后一个片段():
>>> import re
>>> pat = re.compile("(?:[^%]|^)(?:%%)*(%[a-z])")
>>> pat.findall("%d%%f%x%%%g")
['%d', '%x']
Run Code Online (Sandbox Code Playgroud)
但之前添加一个字符后%%%g,它开始正常工作:
>>> pat.findall("%d%%f%x %%%g")
['%d', '%x', '%g']
Run Code Online (Sandbox Code Playgroud)
匹配到组后看起来似乎x不再匹配.如何更改正则表达式以强制它再次检查上一个匹配的最后一个字符?我读到了,但没有帮助.[^%](%[a-z])\G
在用 C# 编写一些代码处理程序集时,我注意到Assembly对象的字段值不一致(System程序集示例):
> typeof(string).Assembly.FullName
"mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
Run Code Online (Sandbox Code Playgroud)
但是当直接访问对象的CultureName字段时AssemblyName,它的值为空字符串:
> typeof(string).Assembly.GetName().CultureName
""
Run Code Online (Sandbox Code Playgroud)
当我在 Linux ( mono 3.99)上运行相同的测试时,我得到了另一个结果:
> typeof(string).Assembly.GetName().CultureName
"neutral"
Run Code Online (Sandbox Code Playgroud)
为什么 .NET 会这样?我在 msdn 上找不到关于类中CultureName字段的默认值AssemblyName或空字符串含义的任何信息。空字符串是否总是指“中性”文化名称?
在我的配置中,我有两个在线 IMAP 帐户,例如A和B。我的简化配置文件如下所示:
## Account A settings
source ~/.mutt/a/config
folder-hook 'a.com' 'source ~/.mutt/a/config'
## Account B settings
folder-hook 'b.com' 'source ~/.mutt/b/config'
macro index <f2> '<sync-mailbox><enter-command>source ~/.mutt/a/config<enter><change-folder>!<enter>'
macro index <f3> '<sync-mailbox><enter-command>source ~/.mutt/b/config<enter><change-folder>!<enter>'
Run Code Online (Sandbox Code Playgroud)
两个帐户的配置文件相似,如下所示:
set imap_user = usera
set imap_pass = userasecret
unset folder
set folder = "imaps://mail.a.com/"
set spoolfile = "+INBOX"
mailboxes "+INBOX"
Run Code Online (Sandbox Code Playgroud)
和
set imap_user = userb
set imap_pass = userbsecret
unset folder
set folder = "imaps://mail.b.com/"
set spoolfile = "+INBOX"
mailboxes "+INBOX"
Run Code Online (Sandbox Code Playgroud)
我可以使用F2nad …