Class StdLibByAddressAttribute
States that a standard-library parameter declared with a type of its own is given where its argument is - its address in the session's memory - rather
than what it holds: StrPtr's, which is the address of the characters of the very String it is passed.
[AttributeUsage(AttributeTargets.Parameter)]
public sealed class StdLibByAddressAttribute : Attribute
- Inheritance
-
StdLibByAddressAttribute
- Inherited Members
Remarks
The parameter is declared as a VBLongLongValue, whatever the width of the environment's pointers, and is declared to
the language as DeclaredAs says, ByVal: it takes what a parameter of that type takes. What it is given is
- the address of a variable of that type, an element of an array of it, or a field of a record of it, passed to it - and of a
Variantthat holds a value of that type; - the address of a temporary holding the argument let-coerced to the type, for anything else, which is freed when the statement that passes it is over.
Unlike StdLibAsAnyAttribute, a ByVal argument passes no bytes in place of an address: it is a value, passed in a temporary.
Constructors
StdLibByAddressAttribute(Type)
States that a standard-library parameter declared with a type of its own is given where its argument is - its address in the session's memory - rather
than what it holds: StrPtr's, which is the address of the characters of the very String it is passed.
public StdLibByAddressAttribute(Type declaredAs)
Parameters
declaredAsTypeThe type of the intrinsic value the parameter is declared as, such as VBStringValue.
Remarks
The parameter is declared as a VBLongLongValue, whatever the width of the environment's pointers, and is declared to
the language as DeclaredAs says, ByVal: it takes what a parameter of that type takes. What it is given is
- the address of a variable of that type, an element of an array of it, or a field of a record of it, passed to it - and of a
Variantthat holds a value of that type; - the address of a temporary holding the argument let-coerced to the type, for anything else, which is freed when the statement that passes it is over.
Unlike StdLibAsAnyAttribute, a ByVal argument passes no bytes in place of an address: it is a value, passed in a temporary.
Properties
DeclaredAs
The type of the intrinsic value the parameter is declared as.
public Type DeclaredAs { get; }