呵呵,@取得的不是简简单单的Pointer阿
The @ operator returns the address of a variable, or of a function, procedure, or method
that is, @ constructs a pointer to its operand. For more information about pointers, see Pointers and pointer types . The following rules apply to @.
If X is a variable, @X returns the address of X. (Special rules apply when X is a procedural variable
see Procedural types in statements and expressions .) The type of @X is Pointer if the default {$T} compiler directive is in effect. In the {$T+} state, @X is of type ^T, where T is the type of X (this distinction is important for assignment compatibility, see Assignment-compatibility).
If F is a routine (a function or procedure), @F returns F's entry point. The type of @F is always Pointer.
When @ is applied to a method defined in a class, the method identifier must be qualified with the class name. For example,
@TMyClass.DoSomething
points to the DoSomething method of TMyClass. For more information about classes and methods, see Classes and objects.
Note:
When using the @ operator, it is not possible to take the address of an interface method as the address is not known at compile time and cannot be extracted at runtime.