泛型交換方法

2021-08-28 16:18:03 字數 894 閱讀 6826

void swap(ref t x,ref t y)

static void main()

加上ref 關鍵字 就可以按址傳遞了,ref可出可進,out只進不出。都是按址傳遞;意思就是out傳進方法裡的時候,需要初始化;

foreach迭代:一般foreach迭代器需要有迭代的物件繼承 ienumerable/ienumerable ,而list 是繼承 ienumerable的,因次可以進行foreach;迭代,比如要統計乙個list裡面的所有賬目;

public inte***ce iaccount

;decimal balance;

}public class account:iaccount

public decimal balance

public account(string name, decimal balance)

}public static class algorithmswhere t:iaccount

return sum;

}//使用泛型委託 func

public static t2 accumulate(ienumerablesource,funcfunc)

return sum;

}}static void main()

; decimal amount = algorithms.accumulate******(accounts);

//呼叫 泛型方法

decimal amount = algorithms.accumulate(accounts,(item,sum)=> sum+=item.balance);

}

加了泛型約束 方便擴充套件;

泛型 泛型類 泛型方法 泛型擦除

1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...

泛型類,泛型方法,泛型介面

泛型,就是一種不確定的資料型別。如果在類後面加上 這個類就變成了泛型類。這個 t可以使用任意的字母代替。表示定義了一種不確定的資料型別,這種不確定的資料型別必須在使用這個類 比如建立物件 的時候才能確定下來。如果希望縮小泛型的範圍,延後泛型的確定時間,讓泛型在呼叫方法的時候確定,那麼我們可以使用泛型...

泛型討論 泛型方法

泛型不經可以用在整個類上,同樣也可以用在雷中包含引數化的方法,而這個方法所在的類可以是泛型,也可以不是泛型,也就是說,是否擁有泛型方法,與其所在的類是否是泛型沒有關係。乙個基本的原則,優先使用泛型方法,然後才是泛型類,另外對於static方法而言,無法訪問泛型類的型別引數,所以,如果static方法...