如何获得一个class类型类量的指针
貌似传统方法,只能到取结构类型的:
http://topic.csdn.net/u/20090825/16/725bc96a-33f9-4c63-85ef-01d22d6c1ed2_3.html
说明见:292楼~~
C# code
using System;
namespace ConsoleApplication9
{
public struct BofStruct { }
public class BofClass { }
class Program
{
unsafe static void Main(string[] args)
{
//--准备
BofStruct bs = new BofStruct();
BofClass bc = new BofClass();
//--测试
//Console.WriteLine("BofStruct'sizeof:{0}", sizeof(BofClass));
//无法获取托管类型(“BofClass”)的地址和大小,或无法声明指向它的指针
Console.WriteLine("BofStruct'sizeof:{0}", sizeof(BofStruct));
//BofStruct'sizeof:4
//Console.WriteLine("bc'pointer:{0:X8}", (uint)&bc);
//无法获取托管类型(“BofClass”)的地址和大小,或无法声明指向它的指针
Console.WriteLine("bc'pointer:{0:x8}", (uint)&bs);
//bc'pointer:057fecd0
//--使用
int num;
int* p;
p = #
*p = 999;
System.Console.WriteLine("p:{0}", *p);
System.Console.WriteLine("p:{0}", p->ToString());
Console.ReadKey();
}
}
}
也许也有别的方法吧~~
------解决方案--------------------进来学习~~学习
------解决方案--------------------好像不能去的吧
------解决方案--------------------up
------解决方案--------------------class类的指针==引用啊>???
为什么要绕圈子呢?
------解决方案--------------------路过
------解决方案--------------------C#里得到对象地址有什么意义?
------解决方案--------------------指针类型中,在 * 前面指定的类型称为该指针类型的目标类型 (referent type)。它表示该指针类型的值所指向的变量的类型。
与引用(引用类型的值)不同,指针不受垃圾回收器跟踪(垃圾回收器并不知晓指针和它们指向的数据)。出于此原因,不允许指针指向引用或者包含引用的结构,并且指针的目标类型必须是 unmanaged-type。
unmanaged-type 是任何不是 reference-type 并且在任何嵌套级别都不包含 reference-type 字段的类型。换句话说,unmanaged-type 是下列类型之一:
? sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal 或 bool。
? 任何 enum-type。
? 任何 pointer-type。
? 任何由用户定义的只包含 unmanaged-types 字段的 struct-type。
将指针和引用进行混合使用时的基本规则是;引用(对象)的目标可以包含指针,但指针的目标不能包含引用。
------解决方案--------------------好象没了吧。
C++多。
------解决方案--------------------
------解决方案--------------------类对象是可以移动的,所以不能获取其地址
如果你非要获取,可以参考这个方法:
fixed类中的第一字段,然后取得该字段的地址
但是我想这个类的内存布局不能是Auto,只能是按顺序或显式布局吧
------解决方案--------------------关注
------解决方案--------------------用委託~~delegate~~
------解决方案--------------------我的印象中,似乎无法获得托管类型的指针。
------解决方案--------------------up
------解决方案--------------------