小编hou*_*uen的帖子

.NET中Random类实现的质量如何?

关于Random.NET Framework 4.6中的类的实现,我有两个问题(此处提供的代码):

  1. 在构造函数的末尾设置Seed参数的基本原理是什么1?它似乎是从C(第二版)中的Numerical Recipes复制粘贴的,它有一定意义,但它在C#中没有.

  2. 在书中(Numerical Recipes in C(2nd Ed.))中直接说明该inextp字段被设置为值,31因为:

常数31是特殊的; 见Knuth.

但是,在.NET实现中,此字段设置为value 21.为什么?代码的其余部分似乎严格遵循书中的代码,除了这个细节.

.net c# random

32
推荐指数
2
解决办法
1365
查看次数

Tig revert(checkout)单行/块

是否可以选择在Tig的状态视图中还原来自单个块的更改?

我的意思是与u或相反的功能1.我知道!操作,但是这个会恢复整个文件 - 而不仅仅是一次更改.

tig

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

未分配的局部变量和短路评估

我有两种方法,它们都正确编译:

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用任何值初始化,或
  • 使用| …

c#

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

Python正则表达式中的上一组匹配

我试图捕捉串的片段,看起来像%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

python regex

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

.NET 中系统程序集的 CultureName

在用 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或空字符串含义的任何信息。空字符串是否总是指“中性”文化名称?

.net c# mono

5
推荐指数
0
解决办法
510
查看次数

IMAP 帐户切换后邮箱目录未更改

在我的配置中,我有两个在线 IMAP 帐户,例如AB。我的简化配置文件如下所示:

## 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 …

mutt

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

标签 统计

c# ×3

.net ×2

mono ×1

mutt ×1

python ×1

random ×1

regex ×1

tig ×1