¿Por qué los operadores de asignación (+ =, - =, * =,/=) no se pueden cargar en VB.NET?¿Por qué los operadores de asignación no se pueden cargar en VB.NET?
Respuesta
Quizás this es su razonamiento:
Gracias por la sugerencia! No le permitimos sobrecargar el operador de asignación para un tipo porque actualmente no hay manera de asegurarse de que otros lenguajes o .NET Framework cumplan con el operador de asignación. La única alternativa es restringir los tipos de que sobrecarguen al operador de asignación, pero creemos que sería demasiado restrictivo para ser útil en general.
Gracias! Paul Vick responsable técnico, VB
Hay algo que se llama 'El estrechamiento' y 'Ampliación', que le permite definir convertidores explícitos e implícitos de un tipo a otro, es decir
Dim y as MyClass1
Dim x as MyClass2 = y
Pero eso no cambie el operador de asignación para asignar una instancia de la misma clase, solo convierta otras clases.
Ver How to: Define a Conversion Operator
Class MyClass1
Public Shared Widening Operator CType(ByVal p1 As MyClass1) As MyClass2
End Operator
End Class
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
operadores de asignación no puede sobrecargarse, pero + =, por ejemplo, se evalúa usando +, que puede ser sobrecargado .
=, ., ?:, ??, ->, =>, f(x), as, checked, unchecked, default, delegate, is, new, sizeof, typeof
Estos operadores no pueden ser sobrecargados.
Con el mismo conversion operators:
struct MyType1
{
...
public static explicit operator MyType1(MyType2 src) //explicit conversion operator
{
return new MyType1 { guts = src.guts };
}
}
Boleto cerrado como "No se arregla" en 2004 - rofl. Aquí está la esperanza de que hayan revisado la sugerencia. – Alain
¿Lo tiene? http://stackoverflow.com/questions/292676/is-there-a-workaround-for-overloading-the-assignment-operator-in-c – Alain
C# no admite sobrecargas del operador: http://msdn.microsoft. com/en-us/library/8edha89s.aspx.Una solución alternativa es sobrecargar al operador '+', ya que + = lo usa, pero aún así no puede sobrecargar '='. – Alain
- 1. ¿Pueden los operadores de asignación de C++ ser funciones gratuitas?
- 2. ¿Por qué los operadores de división (/) se comportan de manera diferente en VB.NET y C#?
- 3. ¿Por qué los nombres de usuario no se pueden cambiar?
- 4. ¿Por qué no se pueden sincronizar los constructores de Java?
- 5. ¿Por qué los operadores no pueden estar sobrecargados dentro de una clase estática?
- 6. ¿Por qué no se pueden inferir los tipos genéricos anidados?
- 7. ¿Por qué no hay operadores || = o && = en C#?
- 8. ¿Por qué los operadores de asignación (=) son inválidos en un bucle foreach?
- 9. ¿Pueden los operadores en Smalltalk estar sobrecargados?
- 10. ¿Qué son los operadores levantados?
- 11. "No se pueden cargar los símbolos" al intentar leer volcado
- 12. No se pueden cargar varias piezas MEF
- 13. ¿Por qué operadores de asignación de clase padre no son accesibles desde clase derivada objetos
- 14. ¿Qué operadores lógicos de C++ usa: y, o, no, y los operadores de estilo il o C? ¿por qué?
- 15. ¿Por qué los nulables no pueden declararse const?
- 16. ¿Por qué los generadores no pueden ser en escabeche?
- 17. operadores de asignación CComBSTR Comprensión
- 18. ¿Por qué no se pueden inferir estos argumentos de tipo?
- 19. Algunas imágenes no se pueden cargar en Windows Server 2008
- 20. ¿Por qué no hay operadores de cortocircuito elevados en `bool?`?
- 21. Extensiones de la GUI: recursos que no se pueden cargar
- 22. ¿Qué significan los operadores% op% en R? Por ejemplo, "% en%"
- 23. Si los operadores de Ascii son definibles, ¿por qué no los Símbolos Unicode?
- 24. ¿Por qué los campos de clase no pueden ser var?
- 25. ¿Por qué no puedes desarrollar juegos XNA en VB.Net?
- 26. XCode 4 (Assembla) Repositorio SVN "No se pueden cargar revisiones"
- 27. ¿Por qué los archivos no pueden manipularse mediante inode?
- 28. ¿Por qué no se puede usar una función no miembro para sobrecargar el operador de asignación?
- 29. ¿Por qué las estructuras no se pueden asignar directamente?
- 30. ¿Por qué no se pueden salpicar Ellipsis y NotImplemented?
@ Mr.Disappointment - Sí, encontraron que a mí mismo. ¿Podría indicarnos en qué parte de ese artículo dice por qué los operadores de asignación no son sobrecargados? – user1351569
@ Mr. Disppointment - Pensé que tal vez leerías algo que me había perdido. – user1351569
Se agregaron algunas cosas sobre los convertidores implícitos/explícitos que pueden ayudar con lo que sea que intente hacer. – Alain