小编hac*_*sid的帖子

正则表达式搜索替换Sublime Text 2

我想在Sublime Text 2中用正则表达式进行搜索替换.关于这个文档相当贫乏.具体来说,我想对组进行替换,所以像转换这个文本:

Hello my name is bob

这个搜索词:

找什么: my name is (\w)+

用...来代替: my name used to be $(1)

搜索词工作正常,但我无法找到一种方法来实际使用regexp组进行替换.

regex replace sublimetext2

422
推荐指数
5
解决办法
28万
查看次数

"注册COM Interop"实际上做了什么?

VS项目选项"注册COM互操作"到底是做什么的?因为当我使用此选项构建我的库时,我可以从VBScript上调用我的库中的CreateObject.但如果我没有这个构建然后手动运行regasm CreateObject失败.所以我想知道 - VS2010做了什么,我没做什么?

com-interop visual-studio-2010 visual-studio

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

我可以从HttpContext获取控制器吗?

给定一个HttpContext(或HttpContextBase),有没有办法获取Controller的实例?

asp.net-mvc asp.net-mvc-2

44
推荐指数
2
解决办法
3万
查看次数

为什么我需要内存屏障?

Nutshell中的C#4(强烈推荐的btw)使用以下代码来演示MemoryBarrier的概念(假设A和B在不同的线程上运行):

class Foo{
  int _answer;
  bool complete;
  void A(){
    _answer = 123;
    Thread.MemoryBarrier(); // Barrier 1
    _complete = true;
    Thread.MemoryBarrier(); // Barrier 2
  }
  void B(){
    Thread.MemoryBarrier(); // Barrier 3;
    if(_complete){
      Thread.MemoryBarrier(); // Barrier 4;
      Console.WriteLine(_answer);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

他们提到障碍1和4阻止这个例子写0和障碍2和3提供新鲜度保证:他们确保如果B在A之后运行,读_complete将评估为.

我不是真的得到它.我想我明白为什么壁垒1和4是必要的:我们不想在写_answer进行优化,并放置在写后_complete(屏障1),我们需要确保_answer没有被缓存(光栅4) .我也认为我理解为什么Barrier 3是必要的:如果A在写完_complete = true之后才运行,B仍然需要刷新_complete以读取正确的值.

我不明白为什么我们需要障碍2!我的一部分说这是因为可能线程2(运行B)已经运行直到(但不包括)if(_complete),因此我们需要确保_complete被刷新.

但是,我不知道这有多大帮助.是不是仍然可以在A 中将_complete设置为true但是B方法会看到_complete的缓存(错误)版本?即,如果线程2运行方法B直到第一个MemoryBarrier之后,然后线程1运行方法A直到_complete = true但没有进一步,然后线程1恢复并测试是否(_complete) - 如果不导致错误 …

c# multithreading thread-safety shared-memory memory-barriers

34
推荐指数
2
解决办法
9488
查看次数

包含比StartsWith更快?

一位顾问昨天来了,不知怎的,字符串的主题出现了.他提到他已经注意到,对于长度小于一定长度的字符串,Contains实际上比它更快StartsWith.我必须用自己的两只眼睛看到它,所以我写了一个小应用程序,当然,Contains更快!

这怎么可能?

DateTime start = DateTime.MinValue;
DateTime end = DateTime.MinValue;
string str = "Hello there";

start = DateTime.Now;
for (int i = 0; i < 10000000; i++)
{
    str.Contains("H");
}
end = DateTime.Now;
Console.WriteLine("{0}ms using Contains", end.Subtract(start).Milliseconds);

start = DateTime.Now;
for (int i = 0; i < 10000000; i++)
{
    str.StartsWith("H");
}
end = DateTime.Now;
Console.WriteLine("{0}ms using StartsWith", end.Subtract(start).Milliseconds);
Run Code Online (Sandbox Code Playgroud)

输出:

726ms using Contains 
865ms using StartsWith
Run Code Online (Sandbox Code Playgroud)

我也尝试过更长的琴弦!

.net c# string performance

30
推荐指数
3
解决办法
2万
查看次数

自定义导轨配置部分

为rails应用程序创建自定义配置部分的最佳方法是什么?理想情况下,我希望最终结果是api调用,如:

Rails.configuration.foo.bar
Rails.configuration.foo.baz
Run Code Online (Sandbox Code Playgroud)

例如

Rails.configuration.stackoverflow.api_key
Rails.configuration.stackoverflow.api_secret
Run Code Online (Sandbox Code Playgroud)

我会将stackoverflow配置存储在某个.rb文件(config/initializers?)中,我显然会有其他类似命名空间的内容 Rails.configuration

ruby ruby-on-rails

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

DefaultModelBinder不绑定嵌套模型

看起来其他人有这个问题,但我似乎无法找到解决方案.

我有2个型号:Person&BillingInfo:

public class Person
{
 public string Name { get; set;}
 public BillingInfo BillingInfo { get; set; }
}

public class BillingInfo
{
 public string BillingName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用DefaultModelBinder将此直接绑定到我的Action中.

public ActionResult DoStuff(Person model)
{
 // do stuff
}
Run Code Online (Sandbox Code Playgroud)

但是,在设置Person.Name属性时,BillingInfo始终为null.

我的帖子看起来像这样:

"NAME = statichippo&BillingInfo.BillingName = statichippo"

为什么BillingInfo总是为空?

asp.net-mvc viewmodel asp.net-mvc-2

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

使用WIF创建SAML身份验证请求

似乎大多数WIF信息对于在整个应用程序中启用联合身份验证很有用.我有兴趣使用API​​创建SAML身份验证请求并接收/解释SAML响应.

我在SOL 阅读SAML令牌的SAML属性上发现了以下帖子,这使我在接收和解释SAML响应方面朝着正确的方向前进.任何人都可以向我提供有关如何使用API​​创建SAML请求的更多信息吗?

一般来说,API上的更多信息(阅读材料,视频等)将不胜感激.

.net c# saml federated-identity wif

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

F#尾递归,为什么不写while循环?

我正在学习F#(一般来说是功能编程的新手,虽然多年来使用C#的功能方面,但让我们面对它,这是非常不同的)我读过的一件事是F#编译器识别尾递归并编译它进入一个while循环(参见http://thevalerios.net/matt/2009/01/recursion-in-f-and-the-tail-recursion-police/).

我不明白的是,为什么你会写一个递归函数而不是一个while循环,如果那就是它将会变成什么.特别是考虑到你需要做一些额外的工作来使你的函数递归.

我有一种感觉,有人可能会说while循环不是特别功能,你想要所有功能和诸如此类的东西,所以你使用递归,但那么为什么编译器将它变成while循环就足够了?

谁可以给我解释一下这个?

f# tail-recursion

11
推荐指数
3
解决办法
1624
查看次数

容错JSON解析

我正在使用Data.Aeson将一些JSON解析为Record类型.有时会将数据添加到JSON中,这会破坏我的代码,因为Aeson会抱怨以下内容:

具有21个名称/值对但具有23个名称/值的预期对象

我真的更喜欢以容错的方式解析JSON - 我不在乎日后是否有更多的字段添加到JSON中,只需解析你能做的任何事情!有没有办法实现这种容错?这是我的代码:

myRecordFromJSONString :: BS.ByteString -> Maybe MyRecord
myRecordFromJSONString s = case Data.Attoparsec.parse json s of
  Done _rest res -> Data.Aeson.Types.parseMaybe parseJSON res
  _              -> Nothing
Run Code Online (Sandbox Code Playgroud)

我应该补充一点,我正在使用Data.Aeson.TH中的deriveJSON来生成解析代码.如果我手动编写FromJSON代码,它是容错的,但我不想这样做......

json haskell aeson

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