我正在尝试使用visual studio 2010创建一个XML模式进行序列化/去保护,但是看起来非常复杂,有一个xml文件和另一个xml模式文件,我没有得到它应该如何完成.我记得在visual studio 2005中,通过创建xml文件然后用xml设计器打开然后绘制模式,然后从模式中生成可序列化代码,它变得更加简单.任何有助于使用Visual Studio 2010专业人员执行相同操作的提示/链接.
有没有办法迫使C#编译器,visual studio 2010,只要用户关闭控制台就调用一个方法?我知道这可以通过某种事件处理或使用dispose方法在Windows窗体中完成,但是关于控制台,是否有任何类似的方法可以在关闭它时调用方法?
我花了大约三个小时试图了解如何"(?<!^)(?=[A-Z])"根据大写字母在 tring 上进行分割,即
string[] s = Regex.Split("TheWorldWithoutStrangers", "(?<!^)(?=[A-Z])");
Run Code Online (Sandbox Code Playgroud)
它是如何工作的 !!我确实明白上面表达式中每个字符的含义是什么,但我不明白它是如何一起工作的。为什么"(? < !^)([A-Z])"不起作用?这意味着每当你发现一个大写字母不在换行之后,然后拆分,我是对的吗?
我试图用我的C#代码创建DLL,我发现一些链接指导我创建我的DLL文件并在我想要的Excel中使用它.其中一个步骤是检查项目的Build选项卡中的"Register COM interop"复选框.
不幸的是,这个复选框总是被禁用!有谁知道如何启用它?我正在使用VS 2010.
为什么我不能运行以下代码?
static int num = 0;
static void Main(string[] args)
{
(num == 0) ? inc() : dec();
}
public static void inc()
{
num++;
}
public static void dec()
{
num--;
}
Run Code Online (Sandbox Code Playgroud)
为什么C#不允许我使用三元"?:"运算符来检查条件然后相应地运行一个方法而不需要返回任何值?与此等效:
if (num == 0) inc();
else dec();
Run Code Online (Sandbox Code Playgroud)
我不确定是否在其他语言中应用了相同的规则,例如Java,C++等...
我想知道为什么C#会提供lambda表达式,如果它是一个性能杀手?
试图运行以下内容:
Stopwatch sw = new Stopwatch();
sw.Start();
x = x.Select((int i) => i += 1).ToArray();
sw.Stop();
Console.WriteLine(sw.ElapsedTicks);
Run Code Online (Sandbox Code Playgroud)
和
Stopwatch sw = new Stopwatch();
sw.Start();
for (int j = 0; j < 1000; j++) y[j] += 1;
sw.Stop();
Console.WriteLine(sw.ElapsedTicks);
Run Code Online (Sandbox Code Playgroud)
对于x = 1000,我们会发现巨大的差异.
是否有适合lambda的用例?
可能重复:
什么是最好的正则表达式生成器/解释器
有没有办法从正则表达式转变为什么意思?例如,我在旧代码中找到以下表达式:
.*[^a-zA-Z0-9_].*
Run Code Online (Sandbox Code Playgroud)
...但我不知道这是100%正确还是包含任何不必要的字符?是否有任何在线工具进行正则表达式翻译?