问题列表 - 第23501页

是否可以使用只读自动实现属性?

我在MSDN上发现了一个话题,是的,这是可能的.

我做了一个似乎打破了这个声明的测试:

using System;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Foo f = new Foo("1");
            Console.WriteLine(f.Bar); // prints 1
            f.Test("2");
            Console.WriteLine(f.Bar);// successfully prints 2
        }
    }

    class Foo
    {
        public Foo(string b)
        {
            this.Bar = b;
        }

        public string Bar { get; private set; }

        public void Test(string b)
        {
            // this would be impossible for readonly field!
            // next error would be occur: CS0191 or CS0191
            // A readonly field cannot be …
Run Code Online (Sandbox Code Playgroud)

.net c# msdn properties readonly

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

字符串参数的ArgumentException或ArgumentNullException?

就最佳做法而言,哪个更好:

public void SomeMethod(string str) 
{
    if(string.IsNullOrEmpty(str))
    {
        throw new ArgumentException("str cannot be null or empty.");
    }

    // do other stuff
}
Run Code Online (Sandbox Code Playgroud)

要么

public void SomeMethod(string str) 
{
    if(str == null) 
    {
        throw new ArgumentNullException("str");
    }

    if(str == string.Empty)
    {
        throw new ArgumentException("str cannot be empty.");
    }

    // do other stuff
}
Run Code Online (Sandbox Code Playgroud)

第二个版本似乎更精确,但也比第一个更麻烦.我通常选择#1,但我想我会检查是否有#2的争论.

c# exception

33
推荐指数
2
解决办法
9971
查看次数

EOL特别字符不匹配

我试图在输入字符串中找到每个"a - > b,c,d"模式.我使用的模式如下:

"^[ \t]*(\\w+)[ \t]*->[ \t]*(\\w+)((?:,[ \t]*\\w+)*)$"
Run Code Online (Sandbox Code Playgroud)

这种模式是一个C#模式,"\ t"指的是一个制表(它是一个单独的逃逸的litteral,由.NET String API解释),"\ w"指的是众所周知的正则表达式的预定义类,双重转义为由.NET STring API解释为"\ w",然后由.NET Regex API解释为"WORD CLASS".

输入是:

a -> b
b -> c
c -> d
Run Code Online (Sandbox Code Playgroud)

功能是:

private void ParseAndBuildGraph(String input) {
    MatchCollection mc = Regex.Matches(input, "^[ \t]*(\\w+)[ \t]*->[ \t]*(\\w+)((?:,[ \t]*\\w+)*)$", RegexOptions.Multiline);
    foreach (Match m in mc) {
        Debug.WriteLine(m.Value);
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

c -> d
Run Code Online (Sandbox Code Playgroud)

实际上,以"$"特殊字符结尾的行存在问题.如果我在"$"之前插入"\ r",它可以工作,但我认为"$"将匹配任何行终止(使用Multiline选项),尤其是Windows环境中的\ r \n.不是这样吗?

c# regex

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

构建向导的好模式?

我通常使用a TabControl并以某种方式隐藏选项卡并浏览它们.

我很好奇其他方法这样做!

c# wizard winforms

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

在ASP.Net MVC 2中为非属性模型验证提供本地化错误消息?

我正在使用DataAnnotations属性和ASP.Net MVC 2为我的ViewModel提供模型验证:

public class ExamplePersonViewModel {
    [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
    [StringLength(128, ErrorMessageResourceName = "StringLength", ErrorMessageResourceType = typeof(Resources.Validation))]
    [DataType(DataType.Text)]
    public string Name { get; set; }

    [Required(ErrorMessageResourceName = "Required", ErrorMessageResourceType = typeof(Resources.Validation))]
    [DataType(DataType.Text)]
    public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这似乎按预期工作(尽管它非常冗长).我遇到的问题是,正在执行的幕后模型验证与任何特定属性无关.上述模型中的一个例子是该Age属性需要是一个int.如果您尝试在表单上输入非整数值,则会出现以下(非本地化)消息时出错:

字段Age必须是数字.

如何对这些非属性验证消息进行本地化?

是否有可用的这些消息的完整列表,以便我可以确保它们都已本地化?

asp.net-mvc localization data-annotations

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

如何为通用iPhone/iPad应用程序指定两个图标?

我希望创建一个支持iPhone和iPad的应用程序.该应用程序可根据需要在两个设备的模拟器中运行.现在我正在尝试构建和部署它.我将plist中的"Icon File"设置为57x57 .png图像,当我构建并尝试提交应用程序时,ItunesConnect抱怨需要为iPad安装72x72 .png图像.如果我指定72x72 .png ItunesConnect的"图标文件"抱怨需要一个57x57的iPhone图像.如何在单个plist中指定两个图标?

iphone ipad

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

具有C扩展模块的Python项目的目录布局

我们组织中有许多混合Python/C的项目.目前,我们正在尝试为我们的项目标准化目录布局,并试图提出一个方便的方案.争论的一个方面是将C扩展模块放在树中的位置.

我们正在抛弃几个选项(相对于项目根目录):

./src/package/subpackage/module.c
Run Code Online (Sandbox Code Playgroud)

或者与包树中的python模块一起:

./package/subpackage/module.c
Run Code Online (Sandbox Code Playgroud)

或者在src子包中的目录中:

./package/subpackage/src/module.c
Run Code Online (Sandbox Code Playgroud)

将它们排除在包目录之外的一个原因可能是因为它会导致混乱,特别是如果有其他.c和.h文件本身不是模块但仍需要编译.同样在"集成"方案中,您如何处理多个模块使用的标头和文件?把它们放在一个共同的顶级目录中?

我有兴趣知道其他人正在使用什么,或者是否有任何已建立的最佳实践.

c python module

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

如何检测列表中Haskell中是否有3个项目?

我有这个,但我收到一个错误:

-- test if a list contains exactly three characters
test :: [Char] -> Bool
test xs   | [_ , _ , _] = True
          | otherwise = False
Run Code Online (Sandbox Code Playgroud)

syntax haskell list

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

如何在bash if/else语句中使用文件grep比较?

当我们的服务器启动时,我们需要检查文件以查看服务器的配置方式.

我们想在/etc/aws/hosts.conf文件中搜索以下字符串:

MYSQL_ROLE=master
Run Code Online (Sandbox Code Playgroud)

然后,我们要测试该字符串是否存在,并使用if/else语句运行两个选项之一,具体取决于字符串是否存在.

if语句的BASH语法是什么?

if [ ????? ]; then
  #do one thing
else
  #do another thing
fi
Run Code Online (Sandbox Code Playgroud)

bash

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

如何手动处置 RSACryptoServiceProvider?

我在 MSDN 上读到(请参阅重要说明)必须处置 RSACryptoServiceProvider。他们举了这样的例子:

using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
Run Code Online (Sandbox Code Playgroud)

现在我尝试将 RSACryptoServiceProvider 包含到 MyClass 中,并在多个方法中使用它。通过此设置,我无法使用 using 语句。

相反,我尝试在合适的时间调用 RSACryptoServiceProvider 对象的 .Dispose() 方法,但随后收到编译错误消息:

`System.Security.Cryptography.AsymmetryAlgorithm.Dispose(bool)' 由于其保护级别而无法访问

RSACryptoServiceProvider 的使用时间是否不应超过一次函数调用(使用 using 语句)?

我该如何解决这个问题,不让 Dispose 调用成为一个选项?

c# dispose rsacryptoserviceprovider

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