小编Rng*_*bus的帖子

OSX应用程序通常在哪里存储用户配置数据?

我注意到在OSX上,安装经常拖放一个文件有点交易.我假设该文件是所有应用程序必需位的存档,并且应用程序直接从它运行.应用程序存储配置数据的位置,特别是当有多个用户时,每个用户设置?在Windows上,这种类型的东西可能会在HKLU或HKLM下的注册表中,或者在用户或所有用户的Application Data文件夹中.

macos installer

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

为什么我的C#数组在转换为对象时会丢失类型符号信息?

调查一个bug,我发现这是由于c#中的这种奇怪:

sbyte[] foo = new sbyte[10];
object bar = foo;
Console.WriteLine("{0} {1} {2} {3}",
        foo is sbyte[], foo is byte[], bar is sbyte[], bar is byte[]);
Run Code Online (Sandbox Code Playgroud)

输出为"True False True True",而我希望" bar is byte[]"返回False.显然酒吧既是一个byte[]又是一个sbyte[]?同样的情况对于其他符号/无符号类型,如Int32[]VS UInt32[],但不是说Int32[]VS Int64[].

谁能解释这种行为?这是在.NET 3.5中.

c# arrays types command-line-interface

42
推荐指数
3
解决办法
2361
查看次数

c#正则表达式匹配字符串中的特定索引?

我想测试一个正则表达式是否匹配特定索引处的字符串的一部分(并且仅从该特定索引开始).例如,给定字符串"one two 3 4 five",我想知道,在索引8处,正则表达式[0-9] +将匹配"3".RegularExpression.IsMatch和Match都采用起始索引,但是如果需要,它们都将搜索字符串的其余部分以进行匹配.

string text="one two 3 4 five";
Regex num=new Regex("[0-9]+");

//unfortunately num.IsMatch(text,0) also finds a match and returns true
Console.WriteLine("{0} {1}",num.IsMatch(text, 8),num.IsMatch(text,0));
Run Code Online (Sandbox Code Playgroud)

显然,我可以检查结果匹配是否从我感兴趣的索引开始,但是我会在大字符串上执行此操作很多次,所以我不想浪费时间在字符串中搜索匹配项.另外,我不会事先知道我将实际测试字符串的正则表达式.

我不想:

  1. 将字符串分割成某些边界就像空白一样,因为在我的情况下,我不会事先知道合适的边界是什么
  2. 必须以任何方式修改输入字符串(比如在索引8处获取子字符串然后在正则表达式中使用^)
  3. 搜索字符串的其余部分以查找匹配项,或执行其他任何对大字符串进行大量测试无法执行的操作.

我想使用任意用户提供的语法解析潜在的大型用户提供的文本正文.语法将以BNF或类似PEG的语法定义,终端将是字符串文字或正则表达式.因此,我需要检查字符串的下一部分是否与语法驱动的任何潜在终端匹配.

c# regex

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

标签 统计

c# ×2

arrays ×1

command-line-interface ×1

installer ×1

macos ×1

regex ×1

types ×1