[CheckId] CA1045 [Warning] CA1045: Do not pass types by reference [Description] 
Passing types by reference (using out or ref) requires experience with pointers, understanding how value types and reference types differ, and handling methods that have multiple return values. Library architects who design for a general audience should not expect users to master working with out or ref parameters.