Dlaczego operatorów przypisania (+ =, - =, * =,/=) nie można przeciążać w VB.NET?Dlaczego operatory przypisania nie są przeciążane w VB.NET?
Odpowiedz
Może this jest ich rozumowanie:
Dzięki za sugestię! Nie zezwalamy na przeciążanie operatora przypisania dla typu, ponieważ obecnie nie ma sposobu, aby zapewnić, że inne języki lub sama platforma .NET będą honorować operatora przypisania. Jedyną alternatywą jest ograniczenie typów przeciążających operatora przypisania, ale uznaliśmy, że jest to zbyt ograniczające, aby było ogólnie użyteczne.
Dzięki! Paul Vick Lead Technical, VB
Jest coś o nazwie „zwężenie” i „Rozszerzenie”, który pozwala na definiowanie jawnych i ukrytych konwertery z jednego typu na inny, tzn
Dim y as MyClass1
Dim x as MyClass2 = y
ale to nie Zmodyfikuj operator przypisania, aby przypisać instancję tej samej klasy, tylko konwertując inne klasy.
Patrz How to: Define a Conversion Operator
Class MyClass1
Public Shared Widening Operator CType(ByVal p1 As MyClass1) As MyClass2
End Operator
End Class
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
operatorów przypisania nie może być przeciążona, a + = na przykład ocenia się stosując +, które mogą być przeciążone .
=, ., ?:, ??, ->, =>, f(x), as, checked, unchecked, default, delegate, is, new, sizeof, typeof
podmioty te nie mogą być przeciążone.
Z tej samej conversion operators:
struct MyType1
{
...
public static explicit operator MyType1(MyType2 src) //explicit conversion operator
{
return new MyType1 { guts = src.guts };
}
}
Bilet zamknięty jako "Nie naprawi" w 2004 r. - rofl. Mam nadzieję, że od tamtej pory przeszli do tej sugestii. – Alain
Czy to? http://stackoverflow.com/questions/292676/is-there-a-workaround-for-overloading-tass-operators-operator-in-c – Alain
C# nie obsługuje przeciążania operatorów: http://msdn.microsoft. com/en-us/library/8edha89s.aspx.Rozwiązaniem ish jest przeciążenie operatora '+', ponieważ + = używa go, ale nadal nie można przeciążać '='. – Alain
- 1. warunkowe egzystencjalne operatory przypisania w coffeescript
- 2. Dlaczego nie błąd w VB.NET
- 3. Dlaczego operatory pinów są niezbędne w zapytaniach Ecto?
- 4. Jakie operatory matematyczne są dostępne w metaprogramowaniu
- 5. Dlaczego jshint nie rozpoznaje przypisania jako wyrażenia?
- 6. Gdzie są operatory liter Pythona * i ** poprawne?
- 7. Dlaczego pliki kodu źródłowego nie są widoczne w projekcie aplikacji sieci Web VB.NET?
- 8. Jakie są dostępne operatory domen w Openerp/Odoo?
- 9. Jakie są obsługiwane operatory i polecenia w języku FQL?
- 10. Dlaczego domyślny operator przypisania domyślnie nie wywołuje destruktora?
- 11. Czy operatory inkrementacji są w trybie atomowym na x86?
- 12. Operatory przeciążające w C++
- 13. W jaki sposób operatory relacyjne nie są zgodne z umową compareTo z wartościami zmiennoprzecinkowymi?
- 14. Operatory przypisania złożonego, co się stanie, jeśli wartość zostanie zmieniona (w międzyczasie)?
- 15. Dlaczego "ELSE:" kompiluje się w vb.net?
- 16. Konwencje w kodzie przypisania?
- 17. Operatory konwersji w C++
- 18. Operatory szablonów nie działają pozornie na niejednoznaczność.
- 19. Tensorflow: Kiedy są wykonywane przypisania zmiennych w sess.run z listą?
- 20. Dlaczego iteratory nie są kopiowalne?
- 21. Dlaczego właściwości nie są deklarowane w interfejsach
- 22. Dlaczego operatory porównania std :: vector i std :: string są zdefiniowane jako funkcje szablonu?
- 23. Cel pojedynczego przypisania
- 24. Operatory Java interesujący problem
- 25. Jak niewiarygodne są wartości zmiennoprzecinkowe, operatory i funkcje?
- 26. Przejrzyste operatory operatorów
- 27. Obiekt nie obsługuje błędu przypisania pozycji.
- 28. vb.net - Dlaczego operator + = nie jest dozwolony dla ULong (UInt64)?
- 29. TypeError: Obiekt 'int' nie obsługuje przypisania elementu
- 30. Dlaczego operator przypisania zwraca przypisaną wartość w języku C#?
@ Mr.Disappointment - Tak, okazało się, że ja. Czy możesz wskazać, gdzie w tym artykule jest napisane, dlaczego operatorzy przypisania nie są przeciążeni? – user1351569
@ Mr.Disappointment - Pomyślałem, że przeczytałeś coś, co przegapiłem. – user1351569
Dodano pewne informacje na temat niejawnych/jawnych konwerterów, które mogą pomóc w przypadku jakichkolwiek prób wykonania. – Alain