Ben böyle bir şey yapmak kolaydır C++ geliyorum:Jenerik Takas zorluk
template<class T>
void Swap(T &a, T &b)
{
T temp = a;
a = b;
b = temp;
}
ve daha sonra bir kap içinde değerlerini takas için kullanabilirsiniz: denemeden sonra,
std::vector<int> someInts;
someInts.push_back(1);
someInts.push_back(2);
Swap(someInts[0], someInts[1]);
Ancak C# aynı şeyi yapmak
void Swap<T>(ref T a, ref T b)
{
T temp = a;
a = b;
b = temp;
}
hatasını "mülkiyet veya dizin dışı bir veya ref parametresi olarak geçmedi olsun "
Neden ve nasıl üstesinden gelebilirim?
Teşekkürler
Özellikleri ve indeksleyiciler tanıtıldı, ancak bu nedenlerden biridir Onları sevmiyorum. En azından, çalışmak istediğiniz şeyi yapmanın bir yolu olmalıydı, ama şu anda, yeni dillerin çoğu bu noktada emiyor. – comco