Cześć Wam! Próbuję przepisać na C# program wypisujący permutacje danego stringa
np. "ABC" na podstawie algorytmu pokazanego na stronie:
https://www.geeksforgeeks.org/write-a-c-program-to-print-all-permutations-of-a-given-string/
Tutaj mój kod:
https://paste.ofcode.org/38rZqSVc5bRCZ2JswxdThJ7
Niestety problem pojawił się gdy chciałem podmieniać pojedyncze elementy stringu, np. "a[l]" z użyciem "ref"
Komunikat w kompilatorze: "Właściwości, indeksatora ani dynamicznego wyrażenia dostępu do elementu członkowskiego nie można przekazać jako parametru out ani ref."
#naukaprogramowania #csharp
np. "ABC" na podstawie algorytmu pokazanego na stronie:
https://www.geeksforgeeks.org/write-a-c-program-to-print-all-permutations-of-a-given-string/
Tutaj mój kod:
https://paste.ofcode.org/38rZqSVc5bRCZ2JswxdThJ7
Niestety problem pojawił się gdy chciałem podmieniać pojedyncze elementy stringu, np. "a[l]" z użyciem "ref"
Komunikat w kompilatorze: "Właściwości, indeksatora ani dynamicznego wyrażenia dostępu do elementu członkowskiego nie można przekazać jako parametru out ani ref."
#naukaprogramowania #csharp
zapomnialam_loginu
2018-06-29 11:35:21
+2
@MarceloFerro: problemem jest to, że próbujesz pracować ze stringiem jak z tablicą znaków, zastąp string char[] i powinno być dobrze, tu masz też wątek ze stacka w tórym jest chyba wszystko czego potrzebujesz : https://stackoverflow.com/questions/756055/listing-all-permutations-of-a-string-integer
zapomnialam_loginu
2018-06-29 11:53:08
+2
@MarceloFerro: super :) pamiętaj, że w .Net strinngi są niezmienne (immutable) więc każda zmiana to tak naprawdę tworzenie nowego obiektu, https://msdn.microsoft.com/pl-pl/library/system.string%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396#Immutability - tutaj masz trochę więcej o tym, może Ci się przydać na przyszlość jesli planujesz coś więcej robić w .Net
MarceloFerro
[OP]
2018-06-29 11:34:55
+0
MarceloFerro
[OP]
2018-06-29 11:37:19
+0
@zapomnialam_loginu: Dziękuję bardzo!
MarceloFerro
[OP]
2018-06-29 11:40:35
+0
@zapomnialam_loginu: Działa!
Dopisałem:
string moj1 = "ABC";
char[] moj = moj1.ToCharArray();
oraz zmieniłem argumenty funkcji ze string na char[]
Dopisałem:
string moj1 = "ABC";
char[] moj = moj1.ToCharArray();
oraz zmieniłem argumenty funkcji ze string na char[]
