我在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) 就最佳做法而言,哪个更好:
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的争论.
我试图在输入字符串中找到每个"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.不是这样吗?
我正在使用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必须是数字.
如何对这些非属性验证消息进行本地化?
是否有可用的这些消息的完整列表,以便我可以确保它们都已本地化?
我希望创建一个支持iPhone和iPad的应用程序.该应用程序可根据需要在两个设备的模拟器中运行.现在我正在尝试构建和部署它.我将plist中的"Icon File"设置为57x57 .png图像,当我构建并尝试提交应用程序时,ItunesConnect抱怨需要为iPad安装72x72 .png图像.如果我指定72x72 .png ItunesConnect的"图标文件"抱怨需要一个57x57的iPhone图像.如何在单个plist中指定两个图标?
我们组织中有许多混合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文件本身不是模块但仍需要编译.同样在"集成"方案中,您如何处理多个模块使用的标头和文件?把它们放在一个共同的顶级目录中?
我有兴趣知道其他人正在使用什么,或者是否有任何已建立的最佳实践.
我有这个,但我收到一个错误:
-- test if a list contains exactly three characters
test :: [Char] -> Bool
test xs | [_ , _ , _] = True
| otherwise = False
Run Code Online (Sandbox Code Playgroud) 当我们的服务器启动时,我们需要检查文件以查看服务器的配置方式.
我们想在/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) 我在 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 调用成为一个选项?