I have a powershell class that I need pass in a reference to a UInt64 Variable and return a value from the Method. I'm trying to do something like in the code below but it gives me a syntax error.
Maybe I don't need to add ?[ref]? because all variables are references by default in powershell including uint64? but i just wasn't sure if this is true.... If I follow normal C-language convention then the method gets a copy of the argument not the actual reference to the variable. I seem to recall something in C# about boxing and unboxing int types... boxing and unboxing c# int type How does it work for boxing Int for Powershell class methods?
class PowerHe11 {
    # Constructor
    PowerHe11() {
    }
    [void]AccessChannel(
        [UInt64]$ichan,
        [UInt64]$idata,
        [UInt64]$isize,
        [UInt64]$ireal,    
        [ref][UInt64]$otimeout,
        [ref][UInt64]$odata,
        [ref][UInt64]$ochan,
        [ref][UInt64]$osize
    ) {                  
        $osize = 64;  #Return this value to caller of method
    }
}
Error message is:
At C:\Users\wmoore\Documents\fpga\zynq_pl\run_ps1\Untitled1.ps1:13 char:11
+         [ref][UInt64]$otimeout,
+              ~~~~~~~~
Multiple type constraints are not allowed on a method parameter.
At C:\Users\wmoore\Documents\fpga\zynq_pl\run_ps1\Untitled1.ps1:14 char:14
+         [ref][UInt64]$odata,
+              ~~~~~~~~
Multiple type constraints are not allowed on a method parameter.
At C:\Users\wmoore\Documents\fpga\zynq_pl\run_ps1\Untitled1.ps1:15 char:14
+         [ref][UInt64]$ochan,
+              ~~~~~~~~
Multiple type constraints are not allowed on a method parameter.
At C:\Users\wmoore\Documents\fpga\zynq_pl\run_ps1\Untitled1.ps1:16 char:14
+         [ref][UInt64]$osize
+              ~~~~~~~~
Multiple type constraints are not allowed on a method parameter.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : MultipleTypeConstraintsOnMethodParam