Tag: C#的

确定导致分段错误的C代码行?

我们如何确定导致分段错误的代码中的错误? 在编写一些代码之后,为了确定哪里出现了分段错误,gcc可以告诉我在特定的行号中有一个错误(或input错误) – 因为该行导致了分段错误?

在NSArray中放置一个c-struct的最好方法是什么?

在NSArray存储c结构的常用方法是什么? 内存处理的优点,缺点? 值得注意的是, valueWithBytes和valueWithPointer什么区别 – 由下面的justin和catfish引发。 下面是苹果公司关于valueWithBytes:objCType:的讨论的链接 valueWithBytes:objCType:面向未来的读者 对于一些横向思考和更多的performance,Evgen提出了在C ++中使用STL::vector的问题。 (这提出了一个有趣的问题:是否有一个快速的C库,与STL::vector不同,但是要轻得多,可以对数组进行最小的“整齐处理”…) 所以原来的问题… 例如: typedef struct _Megapoint { float w,x,y,z; } Megapoint; 那么,在NSArray如何存储自己的结构的正常,最好,惯用的方法是什么,以及如何处理这个习惯用法中的记忆? 请注意,我特意寻找常用的习惯来存储结构。 当然,可以通过做一个新的小class来避免这个问题。 不过,我想知道如何将数组结构放入数组中,谢谢。 顺便说一句,这可能是NSData方法吗? 不是最好的… Megapoint p; NSArray *a = [NSArray arrayWithObjects: [NSData dataWithBytes:&p length:sizeof(Megapoint)], [NSData dataWithBytes:&p length:sizeof(Megapoint)], [NSData dataWithBytes:&p length:sizeof(Megapoint)], nil]; 顺便说一句,作为一个参考点,并感谢Jarret Hardie,以下是如何在NSArray存储CGPoints和类似: NSArray *points = [NSArray arrayWithObjects: [NSValue valueWithCGPoint:CGPointMake(6.9, 6.9)], [NSValue […]

如何在C ++中为同一类定义不同的types

我想有几种types共享相同的实现,但在C ++中仍然是不同的types。 为了用一个简单的例子来说明我的问题,我想为苹果,橘子和香蕉开设一个class级,他们都有相同的操作和相同的实施。 我希望他们有不同的types,因为我想避免types安全性的错误。 class Apple { int p; public: Apple (int p) : p(p) {} int price () const {return p;} } class Banana { int p; public: Banana (int p) : p(p) {} int price () const {return p;} } class Orange … 为了不重复的代码,它看起来像我可以使用基类水果,并从它inheritance: class Fruit { int p; public: Fruit (int p) […]

我如何实现IEnumerable <T>

我知道如何实现非genericsIEnumerable,像这样: using System; using System.Collections; namespace ConsoleApplication33 { class Program { static void Main(string[] args) { MyObjects myObjects = new MyObjects(); myObjects[0] = new MyObject() { Foo = "Hello", Bar = 1 }; myObjects[1] = new MyObject() { Foo = "World", Bar = 2 }; foreach (MyObject x in myObjects) { Console.WriteLine(x.Foo); Console.WriteLine(x.Bar); } Console.ReadLine(); […]

如何在没有加载内容的情况下在EntityFramework中COUNT行?

我试图确定如何使用EntityFramework来统计表上的匹配行。 问题是每行可能有很多兆字节的数据(在二进制字段中)。 当然,SQL会是这样的: SELECT COUNT(*) FROM [MyTable] WHERE [fkID] = '1'; 我可以加载所有的行, 然后find计数: var owner = context.MyContainer.Where(t => t.ID == '1'); owner.MyTable.Load(); var count = owner.MyTable.Count(); 但是这是非常低效的。 有一个更简单的方法吗? 编辑:谢谢,所有。 我已经从一个私人连接移动数据库,所以我可以运行分析; 这有助于但却导致我没有想到的混乱。 而且我的真实数据会更深一些,我会用卡车运载物品的 货盘 – 而且我不想卡车离开,除非至less有一个物品在里面。 我的尝试如下所示。 我没有得到的部分是CASE_2不能访问数据库服务器(MSSQL)。 var truck = context.Truck.FirstOrDefault(t => (t.ID == truckID)); if (truck == null) return "Invalid Truck ID: " + […]

WebAPI 2中的DefaultInlineConstraintResolver错误

我正在使用Web API 2,当我在本地盒子上使用IIS 7.5发送POST到我的API方法时,出现以下错误。 The inline constraint resolver of type 'DefaultInlineConstraintResolver' was unable to resolve the following inline constraint: 'string'. Line 21: GlobalConfiguration.Configuration.EnsureInitialized(); 我的API都不能使用IIS。 不过,我可以使用IIS Express在Visual Studio中运行我的API项目,并成功地向我的loginAPI发出POST,但是当我尝试向另一个API调用发出GET请求时,我收到约束parsing器错误。 为了解决这个问题,我在Visual Studio中创build了一个全新的Web API 2项目,并开始将现有的API导入到新的项目中,并运行它们以确保它们正常工作。 使用这个新项目的IIS Express,我得到了和我现有的API项目一样的结果。 我在这里错过了什么? 即使有一个全新的项目,我不能进行GET请求,而不会遇到这个约束parsing器问题。

将枚举绑定到WinFormscombobox,然后进行设置

很多人已经回答了如何将枚举绑定到WinForms中的combobox的问题。 就像这样: comboBox1.DataSource = Enum.GetValues(typeof(MyEnum)); 但是,如果不能设置显示的实际值,那就没用了。 我努力了: comboBox1.SelectedItem = MyEnum.Something; // Does not work. SelectedItem remains null 我也试过了: comboBox1.SelectedIndex = Convert.ToInt32(MyEnum.Something); // ArgumentOutOfRangeException, SelectedIndex remains -1 有没有人有任何想法如何做到这一点?

将IList或IEnumerable转换为Array的最佳方法

我有一个HQL查询可以生成一个IList的结果,或IEnumerable的结果。 但是,我希望它返回一个我select的实体数组,那么完成这个的最好方法是什么? 我可以通过它枚举并构build数组,或者使用CopyTo()定义的数组。 有没有更好的办法? 我采用了CopyTo方法。

C标准是否明确指出真值为0或1?

我们知道任何不等于0数字在C中都被视为true ,所以我们可以这样写: int a = 16; while (a–) printf("%d\n", a); // prints numbers from 15 to 0 然而,我想知道在C中是否将true / false定义为1/0,所以我尝试了下面的代码: printf("True = %d, False = %d\n", (0 == 0), (0 != 0)); // prints: True = 1, False = 0 C标准是否明确地将真假的真值分别表示为1和0 ?

什么是1.0最接近的两倍,那不是1.0?

有没有一种方法来编程获得最接近1.0,但实际上不是1.0的双? 一个不好的方法就是把double加memcpy到一个相同大小的整数,然后减去一个。 IEEE754浮点格式的工作方式是,将小数部分从全零(1.000000000000)改为全1(1.111111111111),指数减1。 但是,存在整数以小端存储,而浮点以大端存储的机器,所以并不总是工作。