小编Ant*_*t P的帖子

Java 中实数的好的正则表达式是什么?

Java 中实数的好的正则表达式是什么?

我创建了正则表达式([-]?[\\d]*\\.[\\d]*)并针对以下预期输出对其进行了测试:

in                  out        works?
--------------------------------------
qwerty34.34abcd     34.34       yes
qwe-34.34.34abcd    -34.34      no
+17.-9abc           17.0        yes
-.abc0              0.0         no
Run Code Online (Sandbox Code Playgroud)

我必须准确地找出列(出)的内容。请提供通过所有这些测试的正则表达式。

java regex

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

创建列表的副本

我需要存储两个变量,然后检查它们是否没有改变.

List<CatalogInfo> list_catalogs = new List<CatalogInfo>();
List<FileInfo> list_files = new List<FileInfo>(); 
List<CatalogInfo> list_catalogs_for_check_changed = new List<CatalogInfo>();
List<FileInfo> list_files_check_changed = new List<FileInfo>();
Run Code Online (Sandbox Code Playgroud)

当我做:

list_catalogs_for_check_changed = list_catalogs;
list_files_check_changed = list_files;
Run Code Online (Sandbox Code Playgroud)

但是当我添加到list_catalogs或list_files项目时,我在debager中看到Items添加到list_catalogs_for_check_changed或list_files_check_changed.为什么???我没有用变量添加项目.

  list_catalogs.Add(new CatalogInfo() { Action = "Create", Path = folderBrowserDialog1.SelectedPath });
Run Code Online (Sandbox Code Playgroud)

.net c# winforms

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

访问参数的属性时使用ArgumentNullException

假设我有一个Foo具有复杂属性的类Bar.然后,假设我在其他类中有类似以下的方法:

public void DoSomething(Foo foo)
{
    if (foo == null)
        throw new ArgumentNullException("foo");
    if (foo.Bar == null)
        throw new ArgumentNullException("bar");
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下使用是否ArgumentNullException适当,严格来说,foo.Bar在这种情况下不是一个论据?我已经阅读并且可以理解,NullReferenceException手动抛出是不合适的.这告诉我我需要抽象吗?

public void DoSomething(Foo foo)
{
    if (foo == null)
        throw new ArgumentNullException("foo");
    DoSomethingElse(foo.Bar);
}

private void DoSomethingElse(Bar bar)
{
    if (bar == null)
        throw new ArgumentNullException("bar");
}
Run Code Online (Sandbox Code Playgroud)

我的第一个代码片段是"正确"用法ArgumentNullException吗?处理这种情况的传统方法是什么?

谢谢.

c# exception-handling exception conventions

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

在c#中,是否可以将两个不同的类作为返回类型从一个层传递到另一个层?

我的应用程序有n层架构.我有不同的层(业务逻辑和数据链接和GUI).我正在使用一些常见的类将数据从一个层传递到另一个层.我有一个类(比如说RetrnValueCls),只有两个变量Return value和Return Message.当我将数据从一个层传递到另一个层时,我需要将此类Return Value与其他MasterItemsCls具有其他变量的类(例如)一起返回.

以下是方法

public MasterItemsCls GetMasterItemsMDL()
{
    /* Does some computations and assign them to
    attributes of MasterItemsCls and pass it other methods in other layers. */
}

public ReturnValueCls GetMasterItemsMDL()
{
    /* Does some computations and assign them to
    attributes of ReturnValueCls and pass it other methods in other layers. */
}
Run Code Online (Sandbox Code Playgroud)

我想同时返回上述类(MasterItemsCls&ReturnValueCls)作为方法的返回类型,GetMasterItemsMDL我也不想将这两个类组合在一起.如果有任何办法我可以告诉我.

c# n-tier-architecture

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

在Page_Init上设置Page.EnableEventValidation

我有一个用户控件,我在代码隐藏中成功设置Page.EnableEventValidation = false了Page_Init事件(为了将页面标记呈现为字符串):

MyControl.ascx.cs

protected void Page_Init(object sender, EventArgs e)        
{  
    if (Request.Form["__EVENTTARGET"] != null
        && Request.Form["__EVENTTARGET"] == btnPrint.ClientID.Replace("_", "$"))
    {
        Page.EnableEventValidation = false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试在单独的页面上复制此功能时(这次是在runat=server脚本标记中)...

MyPage.aspx

<script runat="server">
    protected void Page_Init(object sender, EventArgs e)        
    {  
        if (Request.Form["__EVENTTARGET"] != null
            && Request.Form["__EVENTTARGET"] ==
            btnDownloadPDF.ClientID.Replace("_", "$"))
        {
            Page.EnableEventValidation = false;
        }
    }
</script>
Run Code Online (Sandbox Code Playgroud)

...我收到以下错误:

'EnableEventValidation'属性只能在页面指令或配置部分中设置.

现在,在我的第一个例子中,我在最初尝试执行此操作时收到此错误Page_Load; 但是,似乎您可以通过编程方式禁用事件验证,只要它在(或之前)完成Page_Init.不幸的是,在我的第二个例子中,这不起作用.

为什么这种情况在一种情况下有效而另一种情况无效?它与代码不在代码隐藏的事实有关吗?

c# asp.net webforms

0
推荐指数
1
解决办法
5258
查看次数

自动修剪表单输入中的空白

我有一个包含许多输入的表单,每个表单Trim在处理之前都需要是med.在每次使用值时修剪这些都是费力的 - 而且不是很强大 - 因为每个在表单的代码隐藏中使用它们.

我想为我的每个属性做这样的事情:

private string _surname
public string Surname
{
    get
    {
        return _surname.Trim();
    }
    set
    {
        _surname = value;
    }
}

protected void Page_Load(object sender, EventArgs e)
{
    Surname = txtSurname.Text;
}
Run Code Online (Sandbox Code Playgroud)

尽管如此,这看起来还是相当冗长.特别是对于具有大量输入的表格.也许只是:

private string _txtSurname;

protected void Page_Load(object sender, EventArgs e)
{
    _txtSurname = txtSurname.Text.Trim();
}
Run Code Online (Sandbox Code Playgroud)

但是这与第一个例子没有相同的鲁棒性,如果我在其他地方分配相同的属性,我可能会忘记我需要先修剪.我觉得应该有一个更简洁的方法来处理这个问题.在那儿?

c# asp.net-2.0

0
推荐指数
1
解决办法
4110
查看次数

有没有cmd回调?

显然,我可以使用cmd控制台执行某些操作 Process.Start();

有没有办法获得该过程的输出?例如,我可能会有...

Process.Start("sample.bat");
Run Code Online (Sandbox Code Playgroud)

...在我的C#winforms应用程序中,sample.bat将包含以下内容:

echo sample loaded 
Run Code Online (Sandbox Code Playgroud)

第一个问题:有没有办法sample loaded在蝙蝠执行后检索它?第二个问题:有没有办法在没有弹出控制台窗口的情况下使用它?

c#

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