ref говорит компилятору что объект был проинициализирован до выполнения метода.
static void Method(ref int x) {
x++;
}
out говорит компилятору что объект будет проинициализирован в ходе выполнения метода.
static void Method(out int x) {
x=0;