为什么SomeClass.ClassField.StructField财产不会改变propertyGrid?看来,实例改变后propertyGrid不会调用.但是相同的代码可以很好地代替.SomeClass.ClassField.setSomeStructPointSomeStruct
[TypeConverter(typeof(ExpandableObjectConverter))]
public struct SomeStruct
{
private int structField;
public int StructField
{
get
{
return structField;
}
set
{
structField = value;
}
}
public override string ToString()
{
return "StructField: " + StructField;
}
}
[TypeConverter(typeof(ExpandableObjectConverter))]
public sealed class SomeClass
{
public SomeStruct ClassField
{
get;
set;
}
}
...
var someClass = new SomeClass
{
ClassField = new SomeStruct
{
StructField = 42
}
};
propertyGrid.SelectedObject = …Run Code Online (Sandbox Code Playgroud) 根据这篇文章,CRT使用单独的堆(它是私有堆吗?),但是这个小例子表明CRT堆和默认堆是相同的:
HANDLE heaps[64];
DWORD heapCount = GetProcessHeaps(64, heaps);
for (int i = 0; i<heapCount; i++)
printf("heap %d : [0x%x]\n", i, heaps[i]);
printf("crt heap[0x%x], default heap[0x%x]\n", _get_heap_handle(), GetProcessHeap());
Run Code Online (Sandbox Code Playgroud)
在什么情况下GetProcessHeap和_get_heap_handle返回不同的句柄?
//使用VS2012编译(平台工具集v110)