Tag: C#的

.Contains()在自定义类对象的列表上

我正在尝试在自定义对象列表上使用.Contains()函数 这是名单: List<CartProduct> CartProducts = new List<CartProduct>(); CartProduct : public class CartProduct { public Int32 ID; public String Name; public Int32 Number; public Decimal CurrentPrice; /// <summary> /// /// </summary> /// <param name="ID">The ID of the product</param> /// <param name="Name">The name of the product</param> /// <param name="Number">The total number of that product</param> /// <param name="CurrentPrice">The […]

什么时候应该在C#中使用“使用”块?

是否有特定情况下我应该(或不应该)使用“使用”块: using(SomeType t = new SomeType()){ … }

列表通过ref传递 – 帮我解释一下这个行为

看看下面的程序: class Test { List<int> myList = new List<int>(); public void TestMethod() { myList.Add(100); myList.Add(50); myList.Add(10); ChangeList(myList); foreach (int i in myList) { Console.WriteLine(i); } } private void ChangeList(List<int> myList) { myList.Sort(); List<int> myList2 = new List<int>(); myList2.Add(3); myList2.Add(4); myList = myList2; } } 我假设myList会通过ref ,输出会 3 4 该列表确实是“通过ref传递”,但只有sortfunction生效。 下面的语句myList = myList2; 没有效果。 所以输出结果实际上是: 10 […]

如何返回错误消息或exceptionNotFound()IHttpActionResult?

当我的WebApi GET操作中找不到某个东西时,我返回一个NotFound IHttpActionResult 。 随着这个回应,我想发送一个自定义消息和/或exception消息(如果有的话)。 当前ApiController的NotFound()方法不会提供重传消息。 有没有办法做到这一点? 或者我将不得不写我自己的自定义IHttpActionResult ?

使用LINQ将string转换为int数组

可能重复: C#:是否有一个LINQ的方式来创build一个给定的数组构造函数参数的对象数组? 我有一个函数(tointarray)将string转换为一个int数组,但我不是很满意。 它完成了这项工作,但必须有一个更优雅的方式来做到这一点,也许LINQ可以在这里帮助。 不幸的是我在LINQ中不是很好。 有没有更好的办法? 我的function: { string s1 = "1;2;3;4;5;6;7;8;9;10;11;12"; int[] ia = tointarray(s1, ';'); } int[] tointarray(string value, char sep) { string[] sa = value.Split(sep); int[] ia = new int[sa.Length]; for (int i = 0; i < ia.Length; ++i) { int j; string s = sa[i]; if (int.TryParse(s, out j)) { ia[i] […]

为什么在Web开发中不使用C ++?

很多人看到Java和C ++的相似之处。 但是当涉及到web开发时,JavaEE正在被使用。 而C ++几乎没有支持呢? C ++很快。 那么为什么它不被用在web开发中呢?

为什么C()中的main()不能被内联?

我正在阅读C ++常见问题,我注意到一句话。 main()不能内联。 为什么是这样?

一个C ++优化器重新sorting调用clock()是否合法?

C ++编程语言第4版(第225页)表示: 只要结果与简单的执行顺序相同,编译器就可以对代码进行重新sorting以提高性能 。 一些编译器,例如发布模式下的Visual C ++,将重新排列这个代码: #include <time.h> … auto t0 = clock(); auto r = veryLongComputation(); auto t1 = clock(); std::cout << r << " time: " << t1-t0 << endl; 进入这种forms: auto t0 = clock(); auto t1 = clock(); auto r = veryLongComputation(); std::cout << r << " time: " << t1-t0 […]

在头文件中使用lambda是否违反了ODR?

以下内容可以写在一个头文件中: inline void f () { std::function<void ()> func = [] {}; } 要么 class C { std::function<void ()> func = [] {}; C () {} }; 我猜在每个源文件中,lambda的types可能是不同的,因此在std::function ( target_type的结果将不同)中包含的types。 这是否违反ODR( 一个定义规则 ),尽pipe看起来像一个共同的模式和合理的事情? 第二个示例是否每次都违反了ODR,或者只有至less一个构造函数在头文件中?

这个元组创作成语有没有名字?

在Boost邮件列表中 ,@LouisDionne最近发布了下面这个聪明的技巧来创build一个元组实体: #include <iostream> auto list = [](auto …xs) { return [=](auto access) { return access(xs…); }; }; auto length = [](auto xs) { return xs([](auto …z) { return sizeof…(z); }); }; int main() { std::cout << length(list(1, '2', "3")); // 3 } 现场示例 。 巧妙的是, list是一个lambda采用可变参数列表作为input,并返回一个lambda作为输出,将采取另一个lambda作用于其input。 类似地, length是一个lambdaexpression式,它将向列表的原始input参数提供variadic sizeof…操作符。 sizeof…运算符被封装在一个lambda中,以便它可以传递给list 。 问题 :这个元组创作习惯有没有名字? 也许从函数式编程语言中,更高阶的函数更常用。