Tag: C#的

是“结构黑客”技术上未定义的行为?

我所问的是众所周知的“结构的最后一个成员具有可变长度”的技巧。 它是这样的: struct T { int len; char s[1]; }; struct T *p = malloc(sizeof(struct T) + 100); p->len = 100; strcpy(p->s, "hello world"); 由于结构在内存中的布局方式,我们可以将结构覆盖在一个大于所需块的地方,并将最后一个成员视为大于指定的1 char 。 所以问题是: 这种技术在技术上是不确定的行为? 。 我希望是这样,但是很奇怪这个标准是怎么说的。 PS:我知道C99的方法,我希望答案专门针对上面列出的技巧的版本。

立即检测客户端从服务器插座断开连接

如何检测客户端与我的服务器断开连接? 我的AcceptCallBack方法中有以下代码 static Socket handler = null; public static void AcceptCallback(IAsyncResult ar) { //Accept incoming connection Socket listener = (Socket)ar.AsyncState; handler = listener.EndAccept(ar); } 我需要找到一种方法来尽快发现客户端与handler Socket断开连接。 我试过了: handler.Available; handler.Send(new byte[1], 0, SocketFlags.None); handler.Receive(new byte[1], 0, SocketFlags.None); 当你连接到一个服务器并想要检测服务器什么时候断开,但是当你是服务器并且想要检测客户端断开时它们不工作时,上述方法是有效的。 任何帮助将不胜感激。

将外部库添加到Qt Creator项目中

如何将外部库添加到由Qt Creator RC1(版本0.9.2)构建的项目中? 例如,win32函数EnumProcesses()需要将Psapi.lib添加到要构建的项目中。

“包含()”解决方法使用Linq到实体?

我试图创建一个查询使用where子句中的id列表,使用Silverlight ADO.Net数据服务客户端api(因此Linq To Entities)。 有谁知道的解决方法包含不被支持? 我想要做这样的事情: List<long?> txnIds = new List<long?>(); // Fill list var q = from t in svc.OpenTransaction where txnIds.Contains(t.OpenTransactionId) select t; 试过这个: var q = from t in svc.OpenTransaction where txnIds.Any<long>(tt => tt == t.OpenTransactionId) select t; 但是得到了“方法”Any“不被支持”。

比较c#中的对象属性

这就是我在许多其他类继承的类上提出的方法。 这个想法是,它允许简单地比较相同类型的对象的属性。 现在,这是行得通的 – 但为了提高我的代码质量,我想我会抛出审查。 如何更好/更有效率等? /// <summary> /// Compare property values (as strings) /// </summary> /// <param name="obj"></param> /// <returns></returns> public bool PropertiesEqual(object comparisonObject) { Type sourceType = this.GetType(); Type destinationType = comparisonObject.GetType(); if (sourceType == destinationType) { PropertyInfo[] sourceProperties = sourceType.GetProperties(); foreach (PropertyInfo pi in sourceProperties) { if ((sourceType.GetProperty(pi.Name).GetValue(this, null) == null && […]

获取连接的USB设备列表

如何获得Windows电脑上所有连接的USB设备的列表?

枚举“继承”

我有一个枚举在低级别的命名空间。 我想提供一个中级别名称空间的类或枚举“继承”低级枚举。 namespace low { public enum base { x, y, z } } namespace mid { public enum consume : low.base { } } 我希望这是可能的,或者也许某种类可以取代枚举消费,这将为枚举提供一个抽象层,但仍然让该类的一个实例访问枚举。 思考? 编辑:其中一个原因,我不是刚刚在类中切换到常量是低级枚举是必需的服务,我必须使用。 我已经获得了WSDLs和XSDs,它们将结构定义为一个枚举。 该服务无法更改。

使用##和__LINE__创建C宏(与定位宏连接的令牌)

我想创建一个C宏,根据行号创建一个名字的函数。 我以为我可以做一些事情(真正的功能将有大括号内的声明): #define UNIQUE static void Unique_##__LINE__(void) {} 我希望能扩展到如下的东西: static void Unique_23(void) {} 这是行不通的。 通过令牌连接,定位宏被字面处理,最终扩展为: static void Unique___LINE__(void) {} 这可能吗? (是的,有一个真正的原因,我想要做到这一点,不管这看起来多么无用)。

什么是uintptr_t数据类型

什么是uintptr_t,它可以用来做什么?

如何将WPF DataGrid绑定到可变数量的列?

我的WPF应用程序会生成一组数据,每次可能有不同数量的列。 在输出中包含将用于应用格式的每一列的描述。 输出的简化版本可能是这样的: class Data { IList<ColumnDescription> ColumnDescriptions { get; set; } string[][] Rows { get; set; } } 这个类被设置为WPF DataGrid上的DataContext,但我实际上是以编程方式创建列: for (int i = 0; i < data.ColumnDescriptions.Count; i++) { dataGrid.Columns.Add(new DataGridTextColumn { Header = data.ColumnDescriptions[i].Name, Binding = new Binding(string.Format("[{0}]", i)) }); } 有没有办法用XAML文件中的数据绑定代替这个代码?