小编Bri*_*ian的帖子

正则表达式 - 范围(2-16)?

我想做的就是匹配2-16之间的数字,跨越1位数到2位数

根据http://www.regular-expressions.info/numericranges.html,他们有1或2位数范围的例子,但不是跨越两者的例子......如果有意义的话.

The regex [0-9] matches single-digit numbers 0 to 9. [1-9][0-9] matches double-digit numbers 10 to 99.
Run Code Online (Sandbox Code Playgroud)

像"^ [2-9] [1-6] $"这样的东西匹配21或甚至96 lol.任何帮助,将不胜感激.

regex

19
推荐指数
2
解决办法
4万
查看次数

在C#2.0中使用HashSet,与3.5兼容

我真的想在我的程序中使用hashsets.使用字典感觉很难看.我可能有一天会开始使用VS2008和.Net 3.5,所以我的理想是即使我不能(或者我可以?)在VS2005中使用hashsets,当我开始使用.NET 3.5时,我不想要必须改变很多,如果有的话,以便切换到使用这些hashsets.

我想知道是否有人知道为此设计的现有hashset实现,或者在VS2005中使用3.5 hashset的方法.

.net c# visual-studio-2005

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

依赖注入框架:我为什么关心?

我正在阅读手工注射注射(以及为什么使用Ninject).我遇到了两个混乱:

  1. 我已经熟悉手工注射技术,但我不熟悉Ninjection,因此不确定完整的程序是如何工作的.也许它有助于提供一个完整的程序,而不是像在该页面上所做的那样,显示一个分解为程序的程序

  2. 我仍然不知道如何让事情变得更容易.我想我错过了一些重要的事情.我可以看一下注入框架如何帮助你创建一组注射,然后同时在两个大组之间切换(这对于模拟等很有用),但我认为它还有更多功能.比起那个来说.但我不确定是什么.或许我只需要更多的例子说明为什么这一点令人兴奋.

c# dependency-injection ninject

18
推荐指数
1
解决办法
1483
查看次数

IE7正在剪辑我的文字.我该如何调整态度?

几天前,我重新涂了我的网站.这个皮肤的开发主要是使用safari进行的,正如预期的那样,使用firefox和opera都可以很好地完成.我不得不为IE7做一些小调整,但没什么,除了一个问题......

在IE中,帖子的日期指示符被截断.这个问题似乎只发生在左浮动div内的嵌套span标签上.我想我需要浮动div来布局屏幕左侧和右侧的文本.

你们中的任何人都知道如何阻止IE7剪辑我的文字吗?

编辑:我有点放弃这个问题.我的脚本现在检查IE7并提供它有限的引擎可以处理的简化HTML.它适用于IE8,所以,就目前而言,只有IE7的特殊情况才能做到......

html css internet-explorer-7

17
推荐指数
3
解决办法
7744
查看次数

为什么我不能在调试器中使用新字符串?

以下代码成功编译:

string foo = new string(new char[] { 'b', 'a', 'r' });
Run Code Online (Sandbox Code Playgroud)

如果粘贴到监视窗口或立即窗口中,则无法评估以下代码:

new string(new char[] { 'b', 'a', 'r' });
Run Code Online (Sandbox Code Playgroud)

错误消息是:

'new string(new char[] { 'b', 'a', 'r' })' threw an exception of type 'System.ArgumentException'
    base {System.SystemException}: {"Only NewString function evaluation can create a new string."}
    Message: "Only NewString function evaluation can create a new string."
    ParamName: null
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

c# debugging visual-studio

16
推荐指数
1
解决办法
1191
查看次数

C/C++使用公钥加密/解密

我正在寻找两个在概念上类似于这些的功能:

// returns the encrypted text
string encrypt( string public_key, string pass_phrase, string text );
// returns the original text
string decrypt( string private_key, string pass_phrase, string encrypted_text );
Run Code Online (Sandbox Code Playgroud)

哪里string可以是a char*,a std::string或者易于转换为这两者的东西.且其中public_keyprivate_key可以是基本上什么,从与某些命令(GPG/SSL东西或任何)生成的密钥,与其它生成的密钥简单功能.

我已经研究了一些加密库(libgcrypt,libgpgme,openssl ...),但用这些库实现这些函数看起来并不容易:它们需要非表面的非对称加密知识和很多代码

无论如何,这项任务似乎并不罕见.如何实现上述两个功能?

c c++ encryption-asymmetric

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

在.NET应用程序中删除不必要的命名空间的方法

有没有办法从类中删除不必要的"使用"语句?

例如,我可能有一个复杂的类,我可以在其中添加自己的命名空间,但也有一些由Visual Studio自动添加的命名空间,我也可能使用它们:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Windows.Navigation;
using System.IO.IsolatedStorage;
using Microsoft.Phone.Shell;
using System.Net.NetworkInformation;
using System.ServiceModel.Syndication;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Xml;
using System.Xml.Linq;
using Microsoft.Phone.Controls;
using Telerik.Windows.Controls;
using MyApp.Models;
using MyApp.Services;
Run Code Online (Sandbox Code Playgroud)

有没有办法检测哪些名称空间正在使用哪些名称空间不被删除?

注意:我相信这个问题适用于任何平台(桌面,电话,Web等).

.net c# visual-studio-2010

13
推荐指数
3
解决办法
4560
查看次数

C#代码简化查询:Null容器和Foreach循环

我经常有类似这样的代码:

if (itm != null)
{
    foreach (type x in itm.subItems())
    {
        //dostuff
    }
}
//do more stuff
Run Code Online (Sandbox Code Playgroud)

//do more stuff省略的情况下,很容易避免额外的foreach循环.通过使用适当的命令来扩展范围(取决于正在发生的事情,这通常意味着return声明或a continue statement).

这种类型的东西倾向于产生箭头代码.我目前有几种方法可以解决这个问题:

  • 使用像 itm = itm == null ? itm.subItems() : emptyArray
  • 允许箭头代码
  • 使用 goto
  • 使用邪恶的范围黑客(包括整个事物,如果声明在一个范围内,然后突破它).在我看来,邪恶的范围黑客基本上等同于goto丑陋和难以阅读,所以我不认为这是一个有效的解决方案.
  • 将一些块重构为新方法.实际上有一些情况下这可能一个很好的解决方案,但大多数情况下它并不合适,因为空引用主要是来自MS函数的错误条件.

有人关心哪些方法被认为更可取?

c#

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

命名空间中的模糊引用

我有一个服务器控件作为我的MySite程序集中的类(即,我的站点的项目不仅包含aspx文件,还包含那些aspx文件引用的服务器控件).我在aspx文件中使用以下代码:

<%@ Register Assembly="MySite" Namespace="MySite.misc" TagPrefix="TAC" %>
...
<TAC:CustomACM ID="myID" runat="server" />
Run Code Online (Sandbox Code Playgroud)

该类的代码如下:

namespace MySite.misc
{
    public class CustomACM : AutoCompleteExtender, INamingContainer
    {
        //...
    }
}
Run Code Online (Sandbox Code Playgroud)

该网站工作和编译完美,但智能感知在myID的孩子中打破.更改类和register指令中的命名空间以MySiteSC.misc修复此问题,尽管使用MySite.miscSC没有帮助.我的解决方案中的其他地方都MySiteSC没有miscSC使用也没有,并且CustomACM任何命名空间中都不存在其他类.

ReSharper使用工具提示将"MySite"(即寄存器指令中命名空间的一部分)用红色标记为"注册指令未使用且可以安全删除\n模糊引用".禁用ReSharper可防止此错误显示,但无法解决问题.

我是否可以在不更改CustomACM控件的命名空间的情况下解决此问题(并且不将CustomACM控件移动到其他程序集)?

asp.net resharper servercontrols

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

离散匿名方法共享一个类?

我在这里和Eric Lippert的Ref<T>班级玩了一下.我注意到在IL中看起来两个匿名方法都使用相同的生成类,即使这意味着类有一个额外的变量.

虽然只使用一个新的类定义似乎有点合理,但我觉得只<>c__DisplayClass2创建一个实例非常奇怪.这似乎暗示两个实例Ref<T>都引用相同的<>c__DisplayClass2 意思并不意味着y在收集之前无法vart1收集,这可能比joik返回之后发生得晚得多?毕竟,不能保证一些白痴不会写一个直接y通过vart1aftrer joik返回的函数(直接在IL中).也许这甚至可以通过反射而不是疯狂的IL来完成.

sealed class Ref<T>
{
    public delegate T Func<T>();
    private readonly Func<T> getter;
    public Ref(Func<T> getter)
    {
        this.getter = getter;
    }
    public T Value { get { return getter(); } }
}

static Ref<int> joik()
{
    int[] y = new int[50000];
    int x = 5;
    Ref<int> vart1 = new Ref<int>(delegate() { return x; });
    Ref<int[]> vart2 …
Run Code Online (Sandbox Code Playgroud)

c# delegates anonymous-methods

10
推荐指数
2
解决办法
830
查看次数