Esto aparentemente es un término a prueba de Google, ya que no puedo conseguir que los motores de búsqueda no tiren los caracteres "extra". También miré en MSDN en la referencia de C++, pero parece que no puedo encontrar la referencia de C++/CLI porque no hay nada en la sección de declaraciones sobre ella.¿Qué significa la declaración Objeto C++/CLI ^% (signo de porcentaje de cuidado)?
Respuesta
%
es una tracking reference.
Es similar a una referencia nativa (Object&
), pero una referencia de seguimiento puede hacer referencia a un objeto CLR mientras que una referencia nativa no. La distinción es necesaria porque el recolector de basura puede mover objetos CLR, por lo que la dirección de memoria de un objeto CLR puede cambiar.
El ^
simplemente significa que se gestiona. Ver MSDN y también this SO post.
Básicamente, es la versión "administrada" de Object*&
, y equivalente a ref
o out
en un tipo de referencia en C#.
Esta es una C++/CLI Tracking Reference. Esto es algo así como una referencia de C++, pero a un objeto administrado.
Significa "el paso por referencia":
void bar::foo(Object^% arg) {
arg = gcnew Object; // Callers argument gets updated
}
Lo mismo en C++:
void foo(Object** arg) {
*arg = new Object;
}
o C#:
void foo(out object arg) {
arg = new Object();
}
C++/CLI no distingue entre ref y fuera, no hace t tiene la asignación definida característica de control que el lenguaje C# tiene, así que no hay necesidad de distinguir entre los dos. Lo mismo en VB.NET, ByRef vs ByVal.
Este es un puntero administrado por referencia. Así que si había algo como:
void DoSomething(System::String^% stringObject)
en C# que se vería así:
void DoSomething(ref System.String stringObject)
- 1. C++ ¿Qué significa el signo de porcentaje?
- 2. ¿Qué significa el signo de porcentaje en Python 3.1
- 3. ¿Qué significa el signo de porcentaje en PHP?
- 4. ¿Qué significa @! significa en un De declaración
- 5. ¿Qué significa un signo de interrogación después de una declaración de variable?
- 6. ¿Qué significa "declaración implícita de la función"?
- 7. ¿Qué significa la declaración de función "subfunción ($$)"?
- 8. ¡Qué hace! (doble signo de exclamación) significa?
- 9. Declaración de variables signo de interrogación
- 10. Eclipse Autocompletar (signo de porcentaje, en Juno)
- 11. ¿Qué significa un "?" significa símbolo (signo de interrogación) en Scala?
- 12. ¿Qué significa el signo de exclamación en una declaración de Haskell?
- 13. Signo de porcentaje de escape DB2 SQL
- 14. Erlang: ¿Qué significa la sintaxis del signo de interrogación?
- 15. ¿Qué significa esta declaración C?
- 16. ¿Qué significa `* &` en una declaración de función?
- 17. ¿Qué significa el signo "|" en Python?
- 18. ¿Qué significa "@" en esta declaración de CSS?
- 19. ¿Qué significa esta declaración de Python?
- 20. ¿Qué significa poner un signo de exclamación (!) Delante de una variable de referencia de objeto?
- 21. ¿Qué significa el signo '#' en JavaScript?
- 22. ¿Qué significa @object objeto
- 23. ¿Qué significa "%" en Fortran?
- 24. ¿Qué significa una declaración "CALLBACK" en C?
- 25. ¿Qué significa el signo de interrogación en esta función?
- 26. ¿qué significa un doble signo de interrogación en C#
- 27. ¿qué significa el signo de dólar en objetivo-c?
- 28. ¿Qué significa el signo de interrogación en GSP/Grails?
- 29. ¿Qué significa el selector de CSS ">" (signo más grande)?
- 30. ¿Qué significa el operador del signo de interrogación en Ruby?
MSDN: http://msdn.microsoft.com/en-us/library/8903062a%28VS.80 % 29.aspx Vea también: http://stackoverflow.com/questions/202463/what-does-the-caret-mean-in-c-cli –
@BlueRaja, si responde, lo marcaré como correcto. Acabo de encontrar ese enlace y la sección CLI adicional en los documentos. Gracias. –
posible duplicado de [lo que hace el símbolo^media% en C++ proyecto] (http://stackoverflow.com/questions/4999575/what-does-the-symbol-mean-in-c-project) –