Tag: C#的

做c ++ 11 lambdas捕获他们不使用的variables?

当我使用[=]来指示我希望所有局部variables被lambda中的值捕获时,会导致被复制的函数中的所有局部variables,还是lambda使用的所有局部variables? 所以,例如,如果我有: vector<int> my_huge_vector(100000); int my_measly_int; some_function([=](int i){ return my_measly_int + i; }); 即使我不在lambda中使用它,是否会复制my_huge_vector?

为什么每个人都使用标准的Ctypes进行input?

如果你想使用Qt ,你必须拥抱quint8 , quint16等等。 如果你想使用guint8 ,你必须欢迎guint8 , guint16等等。 在Linux上有u32 , s16等等。 uC / OS定义SINT32 , UINT16等等。 如果你必须使用这些东西的组合,你最好准备好麻烦。 因为在你的机器上, quint32会被long typedef ,并且quint32将会被int ,编译器会报错 。 为什么每个人都这样做,如果有<stdint.h> ? 这是图书馆的某种传统吗?

垃圾收集器在这里如何避免无限循环?

考虑下面的C#程序,我在codegolf上提交它作为创build一个没有循环的循环的答案: class P{ static int x=0; ~P(){ System.Console.WriteLine(++x); new P(); } static void Main(){ new P(); } } 这个程序在我的检查中看起来像一个无限循环,但似乎运行了几千次迭代,然后程序成功终止,没有错误(没有错误抛出)。 这是一个规范侵犯,最终的P终结者不被称为? 显然这是愚蠢的代码,应该永远不会出现,但我很好奇程序如何完成。 原码高尔夫球杆:: https://codegolf.stackexchange.com/questions/33196/loop-without-looping/33218#33218

如何在c中的多个文件使用的头中声明结构?

如果我有一个结构的source.c文件: struct a { int i; struct b { int j; } }; 这个结构如何在另一个文件(即func.c )中使用? 我应该创build一个新的头文件,声明在那里的结构,并在func.c包含该头func.c ? 或者我应该在头文件中定义整个结构,并将其包含在source.c和func.c ? 这两个文件中的struct如何声明为extern ? 我应该typedef它吗? 如果是这样,怎么样?

阅读后数据提交到ASP.Net窗体

我有一个在asp.net应用程序工作login表单。 标准的东西,用户名和密码文本框和一个button来处理login。 工作正常。 我有一个新的要求,允许用户从一个单独的纯HTML页面input用户名和密码,这是不属于我的asp.net应用程序的一部分。 我打算实现这个使用标准的HTML表单,input,提交button等。表单动作将是我的asp.netlogin页面的URL,其方法将是POST。 我想在asp.netlogin表单的页面背后的C#代码,大概是在Page_Load事件,是要检查页面的请求是否包含一个用户名和密码值被传入。如果这样做,那么我需要读取这些值并处理login,就像有人点击了asp.net页面上的loginbutton一样。 如果不是的话,我会照常显示login表单。 如何检查页面请求中是否存在并读取用户名和密码值。

如何将单个对象传递给params对象

我有一个方法,它采用参数对象[],如: void Foo(params object[] items) { Console.WriteLine(items[0]); } 当我传递两个对象数组到这个方法,它工作正常: Foo(new object[]{ (object)"1", (object)"2" }, new object[]{ (object)"3", (object)"4" } ); // Output: System.Object[] 但是,当我传递一个单一的对象[]时,它并不把我的对象[]作为第一个参数,而是将所有元素都像我想要的一样传递给它们: Foo(new object[]{ (object)"1", (object)"2" }); // Output: 1, expected: System.Object[] 如何将单个对象[]作为第一个parameter passing给params数组?

nameof()是在编译时计算的吗?

在C#6中,可以使用nameof()运算符来获取包含variables或types名称的string。 这是评估在编译时,或在运行时通过一些Roslyn API? 您可以在接受的答案中指出的官方讨论或我博客上的专门post中阅读有关nameof()运算符的信息 。 在2000things.com上 ,你可以find它的描述和使用的例子。

.NET核心与单声道

.NET Core和Mono有什么区别? 我在官方网站上发现了一个声明:“为它编写的代码也可以跨应用程序堆栈移植,如Mono。” 我的目标是使用C#,LINQ,EF7和Visual Studio创build一个可以在Linux上运行/托pipe的网站。 有人告诉我,他希望它是“单声道”,但我不知道这是什么意思。 我知道我想用我上面列出的技术来使用.NET Core 1.0。 他还表示,他想用“快速CGI”。 我也不知道这是什么意思。 你能帮我理解一下这些条款吗?如果我的期望是现实的话?

为什么我的应用程序花费24%的生命做空检查?

我有一个性能重要的二叉决策树,我想把这个问题集中在一行代码上。 二叉树迭代器的代码如下,运行性能分析的结果。 public ScTreeNode GetNodeForState(int rootIndex, float[] inputs) { 0.2% ScTreeNode node = RootNodes[rootIndex].TreeNode; 24.6% while (node.BranchData != null) { 0.2% BranchNodeData b = node.BranchData; 0.5% node = b.Child2; 12.8% if (inputs[b.SplitInputIndex] <= b.SplitValue) 0.8% node = b.Child1; } 0.4% return node; } BranchData是一个字段,而不是一个属性。 我这样做是为了防止不被内联的风险。 BranchNodeData类如下所示: public sealed class BranchNodeData { /// <summary> /// The […]

BestPractice – 将string的首字符转换为小写字母

我想有一个方法,将string的第一个字符转换为小写。 我的方法: 1。 public static string ReplaceFirstCharacterToLowerVariant(string name) { return String.Format("{0}{1}", name.First().ToString().ToLowerInvariant(), name.Substring(1)); } 2。 public static IEnumerable<char> FirstLetterToLowerCase(string value) { var firstChar = (byte)value.First(); return string.Format("{0}{1}", (char)(firstChar + 32), value.Substring(1)); } 你会怎么做?